diff --git a/scripts/antlr4/Cypher.g4.copy b/scripts/antlr4/Cypher.g4.copy index 6fdbf51f94..e8171a89b0 100644 --- a/scripts/antlr4/Cypher.g4.copy +++ b/scripts/antlr4/Cypher.g4.copy @@ -13,8 +13,11 @@ grammar Cypher; virtual void notifyNonBinaryComparison(antlr4::Token* startToken) {}; } +ku_Statements + : oC_Cypher ( SP? ';' SP? oC_Cypher )* SP? EOF ; + oC_Cypher - : SP ? oC_AnyCypherOption? SP? ( oC_Statement ) ( SP? ';' )? SP? EOF ; + : oC_AnyCypherOption? SP? ( oC_Statement ) ( SP? ';' )?; oC_Statement : oC_Query diff --git a/src/antlr4/Cypher.g4 b/src/antlr4/Cypher.g4 index 6fdbf51f94..e8171a89b0 100644 --- a/src/antlr4/Cypher.g4 +++ b/src/antlr4/Cypher.g4 @@ -13,8 +13,11 @@ grammar Cypher; virtual void notifyNonBinaryComparison(antlr4::Token* startToken) {}; } +ku_Statements + : oC_Cypher ( SP? ';' SP? oC_Cypher )* SP? EOF ; + oC_Cypher - : SP ? oC_AnyCypherOption? SP? ( oC_Statement ) ( SP? ';' )? SP? EOF ; + : oC_AnyCypherOption? SP? ( oC_Statement ) ( SP? ';' )?; oC_Statement : oC_Query diff --git a/src/binder/bind/bind_export_database.cpp b/src/binder/bind/bind_export_database.cpp index 14a5ec8b87..6006e22fba 100644 --- a/src/binder/bind/bind_export_database.cpp +++ b/src/binder/bind/bind_export_database.cpp @@ -64,8 +64,9 @@ ExportedTableData Binder::extractExportData(std::string selQuery, std::string ta auto parsedStatement = Parser::parseQuery(selQuery); ExportedTableData exportedTableData; exportedTableData.tableName = tableName; + KU_ASSERT(parsedStatement.size() == 1); auto parsedQuery = - ku_dynamic_cast(parsedStatement.get()); + ku_dynamic_cast(parsedStatement[0].get()); auto query = bindQuery(*parsedQuery); auto columns = query->getStatementResult()->getColumns(); for (auto& column : columns) { diff --git a/src/include/main/connection.h b/src/include/main/connection.h index 4d29b91577..d5be8bb75c 100644 --- a/src/include/main/connection.h +++ b/src/include/main/connection.h @@ -5,6 +5,7 @@ #include "client_context.h" #include "database.h" #include "function/udf_function.h" +#include "parser/statement.h" #include "prepared_statement.h" #include "query_result.h" @@ -142,11 +143,16 @@ class Connection { inline ClientContext* getClientContext() { return clientContext.get(); }; private: - std::unique_ptr query(std::string_view query, std::string_view encodedJoin); + std::unique_ptr query( + std::string_view query, std::string_view encodedJoin, bool enumerateAllPlans = true); std::unique_ptr queryResultWithError(std::string_view errMsg); - std::unique_ptr prepareNoLock(std::string_view query, + std::unique_ptr preparedStatementWithError(std::string_view errMsg); + + std::vector> parseQuery(std::string_view query); + + std::unique_ptr prepareNoLock(parser::Statement* parsedStatement, bool enumerateAllPlans = false, std::string_view joinOrder = std::string_view()); template diff --git a/src/include/main/query_result.h b/src/include/main/query_result.h index 8c3b029fc9..6bbdda83d3 100644 --- a/src/include/main/query_result.h +++ b/src/include/main/query_result.h @@ -32,6 +32,23 @@ struct DataTypeInfo { */ class QueryResult { friend class Connection; + class QueryResultIterator { + private: + QueryResult* currentResult; + + public: + explicit QueryResultIterator(QueryResult* startResult) : currentResult(startResult) {} + + void operator++() { + if (currentResult) { + currentResult = currentResult->nextQueryResult.get(); + } + } + + bool isEnd() { return currentResult == nullptr; } + + QueryResult* getCurrentResult() { return currentResult; } + }; public: /** @@ -79,11 +96,16 @@ class QueryResult { * @return whether there are more tuples to read. */ KUZU_API bool hasNext() const; + std::unique_ptr nextQueryResult; + + std::string toSingleQueryString(); /** * @return next flat tuple in the query result. */ KUZU_API std::shared_ptr getNext(); - + /** + * @return string of query result. + */ KUZU_API std::string toString(); /** diff --git a/src/include/parser/parser.h b/src/include/parser/parser.h index 986291d1ce..5ca9ef9ba8 100644 --- a/src/include/parser/parser.h +++ b/src/include/parser/parser.h @@ -2,6 +2,7 @@ #include #include +#include #include "statement.h" @@ -11,7 +12,7 @@ namespace parser { class Parser { public: - static std::unique_ptr parseQuery(std::string_view query); + static std::vector> parseQuery(std::string_view query); }; } // namespace parser diff --git a/src/include/parser/transformer.h b/src/include/parser/transformer.h index 00c7cae07e..3b50702c66 100644 --- a/src/include/parser/transformer.h +++ b/src/include/parser/transformer.h @@ -28,9 +28,9 @@ struct ParsedCaseAlternative; class Transformer { public: - explicit Transformer(CypherParser::OC_CypherContext& root) : root{root} {} + explicit Transformer(CypherParser::Ku_StatementsContext& root) : root{root} {} - std::unique_ptr transform(); + std::vector> transform(); private: std::unique_ptr transformStatement(CypherParser::OC_StatementContext& ctx); @@ -217,7 +217,7 @@ class Transformer { std::unique_ptr transformCommentOn(CypherParser::KU_CommentOnContext& ctx); private: - CypherParser::OC_CypherContext& root; + CypherParser::Ku_StatementsContext& root; }; } // namespace parser diff --git a/src/main/connection.cpp b/src/main/connection.cpp index becae41764..75d8ce8a20 100644 --- a/src/main/connection.cpp +++ b/src/main/connection.cpp @@ -44,45 +44,79 @@ uint64_t Connection::getMaxNumThreadForExec() { } std::unique_ptr Connection::prepare(std::string_view query) { + auto preparedStatement = std::unique_ptr(); std::unique_lock lck{mtx}; - return prepareNoLock(query); + auto parsedStatements = std::vector>(); + try { + parsedStatements = parseQuery(query); + } catch (std::exception& exception) { return preparedStatementWithError(exception.what()); } + if (parsedStatements.size() > 1) { + return preparedStatementWithError( + "Connection Exception: We do not support prepare multiple statements."); + } + if (parsedStatements.empty()) { + return preparedStatementWithError("Connection Exception: Query is empty."); + } + return prepareNoLock(parsedStatements[0].get()); } -std::unique_ptr Connection::query(std::string_view query) { - lock_t lck{mtx}; - auto preparedStatement = prepareNoLock(query); - return executeAndAutoCommitIfNecessaryNoLock(preparedStatement.get()); +std::unique_ptr Connection::query(std::string_view queryStatement) { + return query(queryStatement, std::string_view() /*encodedJoin*/, false /*enumerateAllPlans */); } std::unique_ptr Connection::query( - std::string_view query, std::string_view encodedJoin) { + std::string_view query, std::string_view encodedJoin, bool enumerateAllPlans) { lock_t lck{mtx}; - auto preparedStatement = prepareNoLock(query, true /* enumerate all plans */, encodedJoin); - return executeAndAutoCommitIfNecessaryNoLock(preparedStatement.get()); + // parsing + auto parsedStatements = std::vector>(); + try { + parsedStatements = parseQuery(query); + } catch (std::exception& exception) { return queryResultWithError(exception.what()); } + if (parsedStatements.empty()) { + return queryResultWithError("Connection Exception: Query is empty."); + } + std::unique_ptr queryResult; + QueryResult* lastResult = nullptr; + for (auto& statement : parsedStatements) { + auto preparedStatement = prepareNoLock( + statement.get(), enumerateAllPlans /* enumerate all plans */, encodedJoin); + auto currentQueryResult = executeAndAutoCommitIfNecessaryNoLock(preparedStatement.get()); + if (!lastResult) { + // first result of the query + queryResult = std::move(currentQueryResult); + lastResult = queryResult.get(); + } else { + lastResult->nextQueryResult = std::move(currentQueryResult); + lastResult = lastResult->nextQueryResult.get(); + } + } + return queryResult; } std::unique_ptr Connection::queryResultWithError(std::string_view errMsg) { auto queryResult = std::make_unique(); queryResult->success = false; queryResult->errMsg = errMsg; + queryResult->nextQueryResult = nullptr; return queryResult; } +std::unique_ptr Connection::preparedStatementWithError(std::string_view errMsg) { + auto preparedStatement = std::make_unique(); + preparedStatement->success = false; + preparedStatement->errMsg = errMsg; + return preparedStatement; +} + std::unique_ptr Connection::prepareNoLock( - std::string_view query, bool enumerateAllPlans, std::string_view encodedJoin) { + Statement* parsedStatement, bool enumerateAllPlans, std::string_view encodedJoin) { auto preparedStatement = std::make_unique(); - if (query.empty()) { - preparedStatement->success = false; - preparedStatement->errMsg = "Connection Exception: Query is empty."; - return preparedStatement; - } auto compilingTimer = TimeMetric(true /* enable */); compilingTimer.start(); - std::unique_ptr statement; try { - statement = Parser::parseQuery(query); - preparedStatement->preparedSummary.statementType = statement->getStatementType(); - preparedStatement->readOnly = parser::StatementReadWriteAnalyzer().isReadOnly(*statement); + preparedStatement->preparedSummary.statementType = parsedStatement->getStatementType(); + preparedStatement->readOnly = + parser::StatementReadWriteAnalyzer().isReadOnly(*parsedStatement); if (database->systemConfig.readOnly && !preparedStatement->isReadOnly()) { throw ConnectionException("Cannot execute write operations in a read-only database!"); } @@ -97,7 +131,7 @@ std::unique_ptr Connection::prepareNoLock( std::unique_ptr logicalPlan; try { // parsing - if (statement->getStatementType() != StatementType::TRANSACTION) { + if (parsedStatement->getStatementType() != StatementType::TRANSACTION) { auto txContext = clientContext->transactionContext.get(); if (txContext->isAutoTransaction()) { txContext->beginAutoTransaction(preparedStatement->readOnly); @@ -114,7 +148,7 @@ std::unique_ptr Connection::prepareNoLock( auto binder = Binder(*database->catalog, database->memoryManager.get(), database->storageManager.get(), database->vfs.get(), clientContext.get(), database->extensionOptions.get()); - auto boundStatement = binder.bind(*statement); + auto boundStatement = binder.bind(*parsedStatement); preparedStatement->parameterMap = binder.getParameterMap(); preparedStatement->statementResult = std::make_unique(boundStatement->getStatementResult()->copy()); @@ -155,6 +189,15 @@ std::unique_ptr Connection::prepareNoLock( return preparedStatement; } +std::vector> Connection::parseQuery(std::string_view query) { + std::vector> statements; + if (query.empty()) { + return statements; + } + statements = Parser::parseQuery(query); + return statements; +} + void Connection::interrupt() { clientContext->interrupt(); } diff --git a/src/main/query_result.cpp b/src/main/query_result.cpp index afe55add80..1a62e21bd4 100644 --- a/src/main/query_result.cpp +++ b/src/main/query_result.cpp @@ -54,6 +54,7 @@ QueryResult::QueryResult() = default; QueryResult::QueryResult(const PreparedSummary& preparedSummary) { querySummary = std::make_unique(); querySummary->setPreparedSummary(preparedSummary); + nextQueryResult = nullptr; } QueryResult::~QueryResult() = default; @@ -162,6 +163,16 @@ std::shared_ptr QueryResult::getNext() { } std::string QueryResult::toString() { + std::string result; + QueryResultIterator it(this); + while (!it.isEnd()) { + result += it.getCurrentResult()->toSingleQueryString() + "\n"; + ++it; + } + return result; +} + +std::string QueryResult::toSingleQueryString() { std::string result; if (isSuccess()) { // print header diff --git a/src/parser/parser.cpp b/src/parser/parser.cpp index bc9f1b7d3e..d0fab07a1f 100644 --- a/src/parser/parser.cpp +++ b/src/parser/parser.cpp @@ -16,7 +16,7 @@ using namespace antlr4; namespace kuzu { namespace parser { -std::unique_ptr Parser::parseQuery(std::string_view query) { +std::vector> Parser::parseQuery(std::string_view query) { auto inputStream = ANTLRInputStream(query); auto parserErrorListener = ParserErrorListener(); @@ -31,7 +31,7 @@ std::unique_ptr Parser::parseQuery(std::string_view query) { kuzuCypherParser.addErrorListener(&parserErrorListener); kuzuCypherParser.setErrorHandler(std::make_shared()); - Transformer transformer(*kuzuCypherParser.oC_Cypher()); + Transformer transformer(*kuzuCypherParser.ku_Statements()); return transformer.transform(); } diff --git a/src/parser/transformer.cpp b/src/parser/transformer.cpp index 4411076458..11680ba9b6 100644 --- a/src/parser/transformer.cpp +++ b/src/parser/transformer.cpp @@ -10,15 +10,21 @@ using namespace kuzu::common; namespace kuzu { namespace parser { -std::unique_ptr Transformer::transform() { - auto statement = transformStatement(*root.oC_Statement()); - if (root.oC_AnyCypherOption()) { - auto cypherOption = root.oC_AnyCypherOption(); - auto explainType = - cypherOption->oC_Explain() ? ExplainType::PHYSICAL_PLAN : ExplainType::PROFILE; - return std::make_unique(std::move(statement), explainType); +std::vector> Transformer::transform() { + std::vector> statements; + for (auto& oc_Statement : root.oC_Cypher()) { + auto statement = transformStatement(*oc_Statement->oC_Statement()); + if (oc_Statement->oC_AnyCypherOption()) { + auto cypherOption = oc_Statement->oC_AnyCypherOption(); + auto explainType = + cypherOption->oC_Explain() ? ExplainType::PHYSICAL_PLAN : ExplainType::PROFILE; + statements.push_back( + std::make_unique(std::move(statement), explainType)); + continue; + } + statements.push_back(std::move(statement)); } - return statement; + return statements; } std::unique_ptr Transformer::transformStatement(CypherParser::OC_StatementContext& ctx) { diff --git a/test/graph_test/graph_test.cpp b/test/graph_test/graph_test.cpp index 159667515f..ad3d67a7e5 100644 --- a/test/graph_test/graph_test.cpp +++ b/test/graph_test/graph_test.cpp @@ -23,7 +23,8 @@ void PrivateGraphTest::validateQueryBestPlanJoinOrder( std::string query, std::string expectedJoinOrder) { auto catalog = getCatalog(*database); auto statement = parser::Parser::parseQuery(query); - auto parsedQuery = (parser::RegularQuery*)statement.get(); + ASSERT_EQ(statement.size(), 1); + auto parsedQuery = (parser::RegularQuery*)statement[0].get(); auto boundQuery = Binder(*catalog, database->memoryManager.get(), database->storageManager.get(), database->vfs.get(), conn->clientContext.get(), database->extensionOptions.get()) diff --git a/test/main/connection_test.cpp b/test/main/connection_test.cpp index f851cd5331..d7bda29f57 100644 --- a/test/main/connection_test.cpp +++ b/test/main/connection_test.cpp @@ -93,3 +93,40 @@ TEST_F(ApiTest, TimeOut) { ASSERT_FALSE(result->isSuccess()); ASSERT_EQ(result->getErrorMessage(), "Interrupted."); } + +TEST_F(ApiTest, MultipleQueryExplain) { + auto result = conn->query("EXPLAIN MATCH (a:person)-[:knows]->(b:person), " + "(b)-[:knows]->(a) RETURN a.fName, b.fName ORDER BY a.ID; MATCH " + "(a:person) RETURN a.fName;"); + ASSERT_TRUE(result->isSuccess()); +} + +TEST_F(ApiTest, MultipleQuery) { + auto result = conn->query(""); + ASSERT_EQ(result->getErrorMessage(), "Connection Exception: Query is empty."); + + result = conn->query("MATCH (a:A)\n" + " MATCH (a)-[:LIKES..]->(c)\n" + " RETURN c.name;"); + ASSERT_FALSE(result->isSuccess()); + + result = conn->query( + "MATCH (a:person) RETURN a.fName; MATCH (a:person)-[:knows]->(b:person) RETURN count(*);"); + ASSERT_TRUE(result->isSuccess()); + + result = + conn->query("CREATE NODE TABLE N(ID INT64, PRIMARY KEY(ID));CREATE REL TABLE E(FROM N TO " + "N, MANY_MANY);MATCH (a:N)-[:E]->(b:N) WHERE a.ID = 0 return b.ID;"); + ASSERT_TRUE(result->isSuccess()); +} + +TEST_F(ApiTest, Prepare) { + auto result = conn->prepare(""); + ASSERT_EQ(result->getErrorMessage(), "Connection Exception: Query is empty."); + + result = + conn->prepare("CREATE NODE TABLE N(ID INT64, PRIMARY KEY(ID));CREATE REL TABLE E(FROM N TO " + "N, MANY_MANY);MATCH (a:N)-[:E]->(b:N) WHERE a.ID = 0 return b.ID;"); + ASSERT_EQ(result->getErrorMessage(), + "Connection Exception: We do not support prepare multiple statements."); +} \ No newline at end of file diff --git a/test/test_files/tck/expressions/mathematical/Mathematical3.test b/test/test_files/tck/expressions/mathematical/Mathematical3.test index 268ed32554..4bc052374d 100644 --- a/test/test_files/tck/expressions/mathematical/Mathematical3.test +++ b/test/test_files/tck/expressions/mathematical/Mathematical3.test @@ -8,7 +8,7 @@ -CASE Scenario1 -STATEMENT RETURN 42 — 41; ---- error -Parser exception: Invalid input < —>: expected rule oC_Cypher (line: 1, offset: 10) +Parser exception: Invalid input < —>: expected rule ku_Statements (line: 1, offset: 10) "RETURN 42 — 41;" ^ diff --git a/test/test_runner/test_runner.cpp b/test/test_runner/test_runner.cpp index e7917a6039..e8505ed2d0 100644 --- a/test/test_runner/test_runner.cpp +++ b/test/test_runner/test_runner.cpp @@ -46,10 +46,26 @@ bool TestRunner::testStatement( replaceEnv(statement->query, "AWS_S3_ACCESS_KEY_ID"); replaceEnv(statement->query, "AWS_S3_SECRET_ACCESS_KEY"); replaceEnv(statement->query, "RUN_ID"); + auto parsedStatements = std::vector>(); + try { + parsedStatements = conn.parseQuery(statement->query); + } catch (std::exception& exception) { + auto errorPreparedStatement = conn.preparedStatementWithError(exception.what()); + return checkLogicalPlan(errorPreparedStatement, statement, conn, 0); + } + if (parsedStatements.empty()) { + auto errorPreparedStatement = + conn.preparedStatementWithError("Connection Exception: Query is empty."); + return checkLogicalPlan(errorPreparedStatement, statement, conn, 0); + } + if (parsedStatements.size() > 1) { + throw TestException("Current test framework does not support multiple query statements!"); + } + auto parsedStatement = std::move(parsedStatements[0]); if (statement->encodedJoin.empty()) { - preparedStatement = conn.prepareNoLock(statement->query, statement->enumerate); + preparedStatement = conn.prepareNoLock(parsedStatement.get(), statement->enumerate); } else { - preparedStatement = conn.prepareNoLock(statement->query, true, statement->encodedJoin); + preparedStatement = conn.prepareNoLock(parsedStatement.get(), true, statement->encodedJoin); } // Check for wrong statements if (!statement->expectedError && !preparedStatement->isSuccess()) { diff --git a/third_party/antlr4_cypher/cypher_parser.cpp b/third_party/antlr4_cypher/cypher_parser.cpp index c43eae8080..9437de55da 100644 --- a/third_party/antlr4_cypher/cypher_parser.cpp +++ b/third_party/antlr4_cypher/cypher_parser.cpp @@ -51,31 +51,32 @@ void cypherParserInitialize() { #endif auto staticData = std::make_unique( std::vector{ - "oC_Cypher", "oC_Statement", "kU_CopyFrom", "kU_ColumnNames", "kU_CopyFromByColumn", - "kU_CopyTO", "kU_ExportDatabase", "kU_StandaloneCall", "kU_CommentOn", - "kU_CreateMacro", "kU_PositionalArgs", "kU_DefaultArg", "kU_FilePaths", - "kU_ParsingOptions", "kU_ParsingOption", "kU_DDL", "kU_CreateNodeTable", - "kU_CreateRelTable", "kU_CreateRelTableGroup", "kU_RelTableConnection", - "kU_CreateRdfGraph", "kU_DropTable", "kU_AlterTable", "kU_AlterOptions", - "kU_AddProperty", "kU_DropProperty", "kU_RenameTable", "kU_RenameProperty", - "kU_PropertyDefinitions", "kU_PropertyDefinition", "kU_CreateNodeConstraint", - "kU_DataType", "kU_ListIdentifiers", "kU_ListIdentifier", "oC_AnyCypherOption", - "oC_Explain", "oC_Profile", "kU_Transaction", "kU_Extension", "kU_LoadExtension", - "kU_InstallExtension", "oC_Query", "oC_RegularQuery", "oC_Union", - "oC_SingleQuery", "oC_SinglePartQuery", "oC_MultiPartQuery", "kU_QueryPart", - "oC_UpdatingClause", "oC_ReadingClause", "kU_LoadFrom", "kU_InQueryCall", - "oC_Match", "oC_Unwind", "oC_Create", "oC_Merge", "oC_MergeAction", - "oC_Set", "oC_SetItem", "oC_Delete", "oC_With", "oC_Return", "oC_ProjectionBody", - "oC_ProjectionItems", "oC_ProjectionItem", "oC_Order", "oC_Skip", - "oC_Limit", "oC_SortItem", "oC_Where", "oC_Pattern", "oC_PatternPart", - "oC_AnonymousPatternPart", "oC_PatternElement", "oC_NodePattern", - "oC_PatternElementChain", "oC_RelationshipPattern", "oC_RelationshipDetail", - "kU_Properties", "oC_RelationshipTypes", "oC_NodeLabels", "oC_NodeLabel", - "oC_RangeLiteral", "kU_RecursiveRelationshipComprehension", "kU_IntermediateNodeProjectionItems", - "kU_IntermediateRelProjectionItems", "oC_LowerBound", "oC_UpperBound", - "oC_LabelName", "oC_RelTypeName", "oC_Expression", "oC_OrExpression", - "oC_XorExpression", "oC_AndExpression", "oC_NotExpression", "oC_ComparisonExpression", - "kU_ComparisonOperator", "kU_BitwiseOrOperatorExpression", "kU_BitwiseAndOperatorExpression", + "ku_Statements", "oC_Cypher", "oC_Statement", "kU_CopyFrom", "kU_ColumnNames", + "kU_CopyFromByColumn", "kU_CopyTO", "kU_ExportDatabase", "kU_StandaloneCall", + "kU_CommentOn", "kU_CreateMacro", "kU_PositionalArgs", "kU_DefaultArg", + "kU_FilePaths", "kU_ParsingOptions", "kU_ParsingOption", "kU_DDL", + "kU_CreateNodeTable", "kU_CreateRelTable", "kU_CreateRelTableGroup", + "kU_RelTableConnection", "kU_CreateRdfGraph", "kU_DropTable", "kU_AlterTable", + "kU_AlterOptions", "kU_AddProperty", "kU_DropProperty", "kU_RenameTable", + "kU_RenameProperty", "kU_PropertyDefinitions", "kU_PropertyDefinition", + "kU_CreateNodeConstraint", "kU_DataType", "kU_ListIdentifiers", "kU_ListIdentifier", + "oC_AnyCypherOption", "oC_Explain", "oC_Profile", "kU_Transaction", + "kU_Extension", "kU_LoadExtension", "kU_InstallExtension", "oC_Query", + "oC_RegularQuery", "oC_Union", "oC_SingleQuery", "oC_SinglePartQuery", + "oC_MultiPartQuery", "kU_QueryPart", "oC_UpdatingClause", "oC_ReadingClause", + "kU_LoadFrom", "kU_InQueryCall", "oC_Match", "oC_Unwind", "oC_Create", + "oC_Merge", "oC_MergeAction", "oC_Set", "oC_SetItem", "oC_Delete", + "oC_With", "oC_Return", "oC_ProjectionBody", "oC_ProjectionItems", + "oC_ProjectionItem", "oC_Order", "oC_Skip", "oC_Limit", "oC_SortItem", + "oC_Where", "oC_Pattern", "oC_PatternPart", "oC_AnonymousPatternPart", + "oC_PatternElement", "oC_NodePattern", "oC_PatternElementChain", "oC_RelationshipPattern", + "oC_RelationshipDetail", "kU_Properties", "oC_RelationshipTypes", + "oC_NodeLabels", "oC_NodeLabel", "oC_RangeLiteral", "kU_RecursiveRelationshipComprehension", + "kU_IntermediateNodeProjectionItems", "kU_IntermediateRelProjectionItems", + "oC_LowerBound", "oC_UpperBound", "oC_LabelName", "oC_RelTypeName", + "oC_Expression", "oC_OrExpression", "oC_XorExpression", "oC_AndExpression", + "oC_NotExpression", "oC_ComparisonExpression", "kU_ComparisonOperator", + "kU_BitwiseOrOperatorExpression", "kU_BitwiseAndOperatorExpression", "kU_BitShiftOperatorExpression", "kU_BitShiftOperator", "oC_AddOrSubtractExpression", "kU_AddOrSubtractOperator", "oC_MultiplyDivideModuloExpression", "kU_MultiplyDivideModuloOperator", "oC_PowerOfExpression", "oC_UnaryAddSubtractOrFactorialExpression", @@ -128,7 +129,7 @@ void cypherParserInitialize() { } ); static const int32_t serializedATNSegment[] = { - 4,1,149,2288,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6, + 4,1,149,2301,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6, 2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14, 7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21, 7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28, @@ -149,184 +150,186 @@ void cypherParserInitialize() { 7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128, 7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134, 7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140, - 7,140,2,141,7,141,2,142,7,142,1,0,3,0,288,8,0,1,0,3,0,291,8,0,1,0,3,0, - 294,8,0,1,0,1,0,3,0,298,8,0,1,0,3,0,301,8,0,1,0,3,0,304,8,0,1,0,1,0,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,319,8,1,1,2,1,2,1,2,1,2, - 3,2,325,8,2,1,2,1,2,3,2,329,8,2,1,2,1,2,3,2,333,8,2,1,2,1,2,3,2,337,8, - 2,1,2,3,2,340,8,2,1,2,1,2,1,2,1,2,3,2,346,8,2,1,2,3,2,349,8,2,1,2,1,2, - 3,2,353,8,2,1,2,1,2,3,2,357,8,2,1,2,1,2,3,2,361,8,2,1,3,1,3,3,3,365,8, - 3,1,3,1,3,3,3,369,8,3,1,3,5,3,372,8,3,10,3,12,3,375,9,3,1,4,1,4,1,4,1, - 4,1,4,1,4,1,4,1,4,3,4,385,8,4,1,4,1,4,3,4,389,8,4,1,4,1,4,3,4,393,8,4, - 1,4,5,4,396,8,4,10,4,12,4,399,9,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5, - 1,5,3,5,411,8,5,1,5,1,5,3,5,415,8,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,423,8, - 5,1,5,1,5,3,5,427,8,5,1,5,1,5,3,5,431,8,5,1,5,1,5,3,5,435,8,5,1,6,1,6, - 1,6,1,6,1,6,1,6,3,6,443,8,6,1,6,1,6,3,6,447,8,6,1,6,1,6,3,6,451,8,6,1, - 6,1,6,3,6,455,8,6,1,7,1,7,1,7,1,7,3,7,461,8,7,1,7,1,7,3,7,465,8,7,1,7, - 1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1, - 9,1,9,3,9,487,8,9,1,9,1,9,3,9,491,8,9,1,9,3,9,494,8,9,1,9,3,9,497,8,9, - 1,9,3,9,500,8,9,1,9,3,9,503,8,9,1,9,1,9,3,9,507,8,9,1,9,5,9,510,8,9,10, - 9,12,9,513,9,9,1,9,3,9,516,8,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,3,10, - 526,8,10,1,10,1,10,3,10,530,8,10,1,10,5,10,533,8,10,10,10,12,10,536,9, - 10,1,11,1,11,3,11,540,8,11,1,11,1,11,1,11,3,11,545,8,11,1,11,1,11,1,12, - 1,12,3,12,551,8,12,1,12,1,12,3,12,555,8,12,1,12,1,12,3,12,559,8,12,1, - 12,5,12,562,8,12,10,12,12,12,565,9,12,1,12,1,12,1,12,1,12,3,12,571,8, - 12,1,12,1,12,3,12,575,8,12,1,12,1,12,3,12,579,8,12,1,12,3,12,582,8,12, - 1,13,1,13,3,13,586,8,13,1,13,1,13,3,13,590,8,13,1,13,5,13,593,8,13,10, - 13,12,13,596,9,13,1,14,1,14,3,14,600,8,14,1,14,1,14,3,14,604,8,14,1,14, - 1,14,1,15,1,15,1,15,1,15,1,15,1,15,3,15,614,8,15,1,16,1,16,1,16,1,16, - 1,16,1,16,1,16,1,16,3,16,624,8,16,1,16,1,16,3,16,628,8,16,1,16,1,16,3, - 16,632,8,16,1,16,1,16,3,16,636,8,16,1,16,1,16,1,16,3,16,641,8,16,1,16, - 1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,653,8,17,1,17,1,17, - 3,17,657,8,17,1,17,1,17,3,17,661,8,17,1,17,1,17,3,17,665,8,17,1,17,1, - 17,3,17,669,8,17,3,17,671,8,17,1,17,1,17,3,17,675,8,17,1,17,1,17,3,17, - 679,8,17,3,17,681,8,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1, - 18,1,18,1,18,3,18,695,8,18,1,18,1,18,3,18,699,8,18,1,18,1,18,3,18,703, - 8,18,1,18,1,18,3,18,707,8,18,1,18,4,18,710,8,18,11,18,12,18,711,1,18, - 3,18,715,8,18,1,18,1,18,3,18,719,8,18,1,18,1,18,3,18,723,8,18,3,18,725, - 8,18,1,18,1,18,3,18,729,8,18,1,18,1,18,3,18,733,8,18,3,18,735,8,18,1, - 18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1, - 20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1, - 22,1,22,1,23,1,23,1,23,1,23,3,23,771,8,23,1,24,1,24,1,24,1,24,1,24,1, - 24,1,24,1,24,1,24,3,24,782,8,24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1, - 26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,3,28,804, - 8,28,1,28,1,28,3,28,808,8,28,1,28,5,28,811,8,28,10,28,12,28,814,9,28, - 1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,3,30,824,8,30,1,30,1,30,3,30, - 828,8,30,1,30,1,30,3,30,832,8,30,1,30,1,30,1,31,1,31,1,31,1,31,3,31,840, - 8,31,1,31,1,31,3,31,844,8,31,1,31,1,31,3,31,848,8,31,1,31,1,31,1,31,1, - 31,3,31,854,8,31,1,31,1,31,3,31,858,8,31,1,31,1,31,3,31,862,8,31,1,31, - 1,31,1,31,1,31,3,31,868,8,31,1,31,1,31,3,31,872,8,31,1,31,1,31,3,31,876, - 8,31,1,31,1,31,3,31,880,8,31,1,31,1,31,3,31,884,8,31,1,31,1,31,3,31,888, - 8,31,1,31,1,31,5,31,892,8,31,10,31,12,31,895,9,31,1,32,1,32,5,32,899, - 8,32,10,32,12,32,902,9,32,1,33,1,33,3,33,906,8,33,1,33,1,33,1,34,1,34, - 3,34,912,8,34,1,35,1,35,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37, - 1,37,1,37,1,37,1,37,1,37,1,37,1,37,3,37,932,8,37,1,38,1,38,3,38,936,8, - 38,1,39,1,39,1,39,1,39,1,39,1,39,3,39,944,8,39,1,40,1,40,1,40,1,40,1, - 41,1,41,1,42,1,42,3,42,954,8,42,1,42,5,42,957,8,42,10,42,12,42,960,9, - 42,1,42,1,42,3,42,964,8,42,4,42,966,8,42,11,42,12,42,967,1,42,1,42,1, - 42,3,42,973,8,42,1,43,1,43,1,43,1,43,3,43,979,8,43,1,43,1,43,1,43,3,43, - 984,8,43,1,43,3,43,987,8,43,1,44,1,44,3,44,991,8,44,1,45,1,45,3,45,995, - 8,45,5,45,997,8,45,10,45,12,45,1000,9,45,1,45,1,45,1,45,3,45,1005,8,45, - 5,45,1007,8,45,10,45,12,45,1010,9,45,1,45,1,45,3,45,1014,8,45,1,45,5, - 45,1017,8,45,10,45,12,45,1020,9,45,1,45,3,45,1023,8,45,1,45,3,45,1026, - 8,45,1,45,1,45,3,45,1030,8,45,4,45,1032,8,45,11,45,12,45,1033,1,45,1, - 45,3,45,1038,8,45,1,46,1,46,3,46,1042,8,46,4,46,1044,8,46,11,46,12,46, - 1045,1,46,1,46,1,47,1,47,3,47,1052,8,47,5,47,1054,8,47,10,47,12,47,1057, - 9,47,1,47,1,47,3,47,1061,8,47,5,47,1063,8,47,10,47,12,47,1066,9,47,1, - 47,1,47,1,48,1,48,1,48,1,48,3,48,1074,8,48,1,49,1,49,1,49,1,49,3,49,1080, - 8,49,1,50,1,50,1,50,1,50,1,50,1,50,3,50,1088,8,50,1,50,1,50,3,50,1092, - 8,50,1,50,1,50,3,50,1096,8,50,1,50,1,50,3,50,1100,8,50,1,50,1,50,1,50, - 1,50,1,50,3,50,1107,8,50,1,50,1,50,3,50,1111,8,50,1,50,1,50,3,50,1115, - 8,50,1,50,1,50,3,50,1119,8,50,1,50,3,50,1122,8,50,1,50,3,50,1125,8,50, - 1,50,3,50,1128,8,50,1,51,1,51,1,51,1,51,3,51,1134,8,51,1,51,3,51,1137, - 8,51,1,52,1,52,3,52,1141,8,52,1,52,1,52,3,52,1145,8,52,1,52,1,52,3,52, - 1149,8,52,1,52,3,52,1152,8,52,1,53,1,53,3,53,1156,8,53,1,53,1,53,1,53, - 1,53,1,53,1,53,1,54,1,54,3,54,1166,8,54,1,54,1,54,1,55,1,55,3,55,1172, - 8,55,1,55,1,55,1,55,5,55,1177,8,55,10,55,12,55,1180,9,55,1,56,1,56,1, - 56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,3,56,1192,8,56,1,57,1,57,3,57,1196, - 8,57,1,57,1,57,3,57,1200,8,57,1,57,1,57,3,57,1204,8,57,1,57,5,57,1207, - 8,57,10,57,12,57,1210,9,57,1,58,1,58,3,58,1214,8,58,1,58,1,58,3,58,1218, - 8,58,1,58,1,58,1,59,1,59,3,59,1224,8,59,1,59,1,59,3,59,1228,8,59,1,59, - 1,59,3,59,1232,8,59,1,59,1,59,3,59,1236,8,59,1,59,5,59,1239,8,59,10,59, - 12,59,1242,9,59,1,60,1,60,1,60,3,60,1247,8,60,1,60,3,60,1250,8,60,1,61, - 1,61,1,61,1,62,3,62,1256,8,62,1,62,3,62,1259,8,62,1,62,1,62,1,62,1,62, - 3,62,1265,8,62,1,62,1,62,3,62,1269,8,62,1,62,1,62,3,62,1273,8,62,1,63, - 1,63,3,63,1277,8,63,1,63,1,63,3,63,1281,8,63,1,63,5,63,1284,8,63,10,63, - 12,63,1287,9,63,1,63,1,63,3,63,1291,8,63,1,63,1,63,3,63,1295,8,63,1,63, - 5,63,1298,8,63,10,63,12,63,1301,9,63,3,63,1303,8,63,1,64,1,64,1,64,1, - 64,1,64,1,64,1,64,3,64,1312,8,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3, - 65,1321,8,65,1,65,5,65,1324,8,65,10,65,12,65,1327,9,65,1,66,1,66,1,66, - 1,66,1,67,1,67,1,67,1,67,1,68,1,68,3,68,1339,8,68,1,68,3,68,1342,8,68, - 1,69,1,69,1,69,1,69,1,70,1,70,3,70,1350,8,70,1,70,1,70,3,70,1354,8,70, - 1,70,5,70,1357,8,70,10,70,12,70,1360,9,70,1,71,1,71,3,71,1364,8,71,1, - 71,1,71,3,71,1368,8,71,1,71,1,71,1,71,3,71,1373,8,71,1,72,1,72,1,73,1, - 73,3,73,1379,8,73,1,73,5,73,1382,8,73,10,73,12,73,1385,9,73,1,73,1,73, - 1,73,1,73,3,73,1391,8,73,1,74,1,74,3,74,1395,8,74,1,74,1,74,3,74,1399, - 8,74,3,74,1401,8,74,1,74,1,74,3,74,1405,8,74,3,74,1407,8,74,1,74,1,74, - 3,74,1411,8,74,3,74,1413,8,74,1,74,1,74,1,75,1,75,3,75,1419,8,75,1,75, - 1,75,1,76,1,76,3,76,1425,8,76,1,76,1,76,3,76,1429,8,76,1,76,3,76,1432, - 8,76,1,76,3,76,1435,8,76,1,76,1,76,1,76,1,76,3,76,1441,8,76,1,76,3,76, - 1444,8,76,1,76,3,76,1447,8,76,1,76,1,76,3,76,1451,8,76,1,76,1,76,1,76, - 1,76,3,76,1457,8,76,1,76,3,76,1460,8,76,1,76,3,76,1463,8,76,1,76,1,76, - 3,76,1467,8,76,1,77,1,77,3,77,1471,8,77,1,77,1,77,3,77,1475,8,77,3,77, - 1477,8,77,1,77,1,77,3,77,1481,8,77,3,77,1483,8,77,1,77,1,77,3,77,1487, - 8,77,3,77,1489,8,77,1,77,1,77,3,77,1493,8,77,3,77,1495,8,77,1,77,1,77, - 1,78,1,78,3,78,1501,8,78,1,78,1,78,3,78,1505,8,78,1,78,1,78,3,78,1509, - 8,78,1,78,1,78,3,78,1513,8,78,1,78,1,78,3,78,1517,8,78,1,78,1,78,3,78, - 1521,8,78,1,78,1,78,3,78,1525,8,78,1,78,1,78,3,78,1529,8,78,5,78,1531, - 8,78,10,78,12,78,1534,9,78,3,78,1536,8,78,1,78,1,78,1,79,1,79,3,79,1542, - 8,79,1,79,1,79,3,79,1546,8,79,1,79,1,79,3,79,1550,8,79,1,79,3,79,1553, - 8,79,1,79,5,79,1556,8,79,10,79,12,79,1559,9,79,1,80,1,80,3,80,1563,8, - 80,1,80,5,80,1566,8,80,10,80,12,80,1569,9,80,1,81,1,81,3,81,1573,8,81, - 1,81,1,81,1,82,1,82,3,82,1579,8,82,1,82,1,82,1,82,1,82,3,82,1585,8,82, - 1,82,3,82,1588,8,82,1,82,3,82,1591,8,82,1,82,3,82,1594,8,82,1,82,1,82, - 3,82,1598,8,82,1,82,3,82,1601,8,82,1,82,3,82,1604,8,82,1,82,3,82,1607, - 8,82,1,82,3,82,1610,8,82,1,83,1,83,3,83,1614,8,83,1,83,1,83,3,83,1618, - 8,83,1,83,1,83,3,83,1622,8,83,1,83,1,83,3,83,1626,8,83,1,83,1,83,3,83, - 1630,8,83,1,83,3,83,1633,8,83,1,83,3,83,1636,8,83,1,83,1,83,3,83,1640, - 8,83,1,83,1,83,3,83,1644,8,83,1,83,1,83,3,83,1648,8,83,1,83,1,83,3,83, - 1652,8,83,3,83,1654,8,83,1,83,1,83,1,84,1,84,3,84,1660,8,84,1,84,3,84, - 1663,8,84,1,84,3,84,1666,8,84,1,84,1,84,1,85,1,85,3,85,1672,8,85,1,85, - 3,85,1675,8,85,1,85,3,85,1678,8,85,1,85,1,85,1,86,1,86,1,87,1,87,1,88, - 1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,91,1,91,1,91,5,91,1697,8,91,10,91, - 12,91,1700,9,91,1,92,1,92,1,92,1,92,1,92,5,92,1707,8,92,10,92,12,92,1710, - 9,92,1,93,1,93,1,93,1,93,1,93,5,93,1717,8,93,10,93,12,93,1720,9,93,1, - 94,1,94,3,94,1724,8,94,5,94,1726,8,94,10,94,12,94,1729,9,94,1,94,1,94, - 1,95,1,95,3,95,1735,8,95,1,95,1,95,3,95,1739,8,95,1,95,1,95,3,95,1743, - 8,95,1,95,1,95,3,95,1747,8,95,1,95,1,95,3,95,1751,8,95,1,95,1,95,1,95, - 1,95,1,95,1,95,3,95,1759,8,95,1,95,1,95,3,95,1763,8,95,1,95,1,95,3,95, - 1767,8,95,1,95,1,95,3,95,1771,8,95,1,95,1,95,4,95,1775,8,95,11,95,12, - 95,1776,1,95,1,95,3,95,1781,8,95,1,96,1,96,1,97,1,97,3,97,1787,8,97,1, - 97,1,97,3,97,1791,8,97,1,97,5,97,1794,8,97,10,97,12,97,1797,9,97,1,98, - 1,98,3,98,1801,8,98,1,98,1,98,3,98,1805,8,98,1,98,5,98,1808,8,98,10,98, - 12,98,1811,9,98,1,99,1,99,3,99,1815,8,99,1,99,1,99,3,99,1819,8,99,1,99, - 1,99,5,99,1823,8,99,10,99,12,99,1826,9,99,1,100,1,100,1,101,1,101,3,101, - 1832,8,101,1,101,1,101,3,101,1836,8,101,1,101,1,101,5,101,1840,8,101, - 10,101,12,101,1843,9,101,1,102,1,102,1,103,1,103,3,103,1849,8,103,1,103, - 1,103,3,103,1853,8,103,1,103,1,103,5,103,1857,8,103,10,103,12,103,1860, - 9,103,1,104,1,104,1,105,1,105,3,105,1866,8,105,1,105,1,105,3,105,1870, - 8,105,1,105,5,105,1873,8,105,10,105,12,105,1876,9,105,1,106,1,106,3,106, - 1880,8,106,5,106,1882,8,106,10,106,12,106,1885,9,106,1,106,1,106,3,106, - 1889,8,106,1,106,3,106,1892,8,106,1,107,1,107,1,107,4,107,1897,8,107, - 11,107,12,107,1898,1,107,3,107,1902,8,107,1,108,1,108,1,108,3,108,1907, - 8,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,3,108,1916,8,108,1,108, - 1,108,3,108,1920,8,108,1,108,3,108,1923,8,108,1,109,1,109,1,109,1,109, - 1,109,1,109,1,109,1,109,1,109,1,109,1,109,3,109,1936,8,109,1,109,3,109, - 1939,8,109,1,109,1,109,1,110,3,110,1944,8,110,1,110,1,110,1,111,1,111, - 1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,3,111,1958,8,111,1,112, - 1,112,3,112,1962,8,112,1,112,5,112,1965,8,112,10,112,12,112,1968,9,112, - 1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,3,113,1979,8,113, - 1,114,1,114,1,114,1,114,1,114,1,114,3,114,1987,8,114,1,115,1,115,1,116, - 1,116,3,116,1993,8,116,1,116,1,116,3,116,1997,8,116,1,116,1,116,3,116, - 2001,8,116,5,116,2003,8,116,10,116,12,116,2006,9,116,3,116,2008,8,116, - 1,116,1,116,1,117,1,117,3,117,2014,8,117,1,117,3,117,2017,8,117,1,118, - 1,118,3,118,2021,8,118,1,118,1,118,3,118,2025,8,118,1,118,1,118,3,118, - 2029,8,118,1,118,1,118,3,118,2033,8,118,5,118,2035,8,118,10,118,12,118, - 2038,9,118,1,118,1,118,1,119,1,119,3,119,2044,8,119,1,119,3,119,2047, - 8,119,1,119,1,119,3,119,2051,8,119,1,119,1,119,1,120,1,120,3,120,2057, - 8,120,1,120,1,120,3,120,2061,8,120,1,120,1,120,1,121,1,121,3,121,2067, - 8,121,1,121,1,121,3,121,2071,8,121,1,121,1,121,3,121,2075,8,121,1,121, - 1,121,1,121,3,121,2080,8,121,1,121,1,121,3,121,2084,8,121,1,121,1,121, - 3,121,2088,8,121,3,121,2090,8,121,1,121,1,121,3,121,2094,8,121,1,121, - 1,121,3,121,2098,8,121,1,121,1,121,3,121,2102,8,121,5,121,2104,8,121, - 10,121,12,121,2107,9,121,3,121,2109,8,121,1,121,1,121,3,121,2113,8,121, - 1,122,1,122,1,123,1,123,3,123,2119,8,123,1,123,1,123,1,123,3,123,2124, - 8,123,3,123,2126,8,123,1,123,1,123,1,124,1,124,3,124,2132,8,124,1,124, - 4,124,2135,8,124,11,124,12,124,2136,1,125,1,125,3,125,2141,8,125,1,125, - 1,125,3,125,2145,8,125,1,125,1,125,3,125,2149,8,125,1,125,1,125,3,125, - 2153,8,125,1,125,3,125,2156,8,125,1,125,3,125,2159,8,125,1,125,1,125, - 1,126,1,126,3,126,2165,8,126,1,126,1,126,3,126,2169,8,126,1,126,1,126, - 3,126,2173,8,126,1,126,1,126,3,126,2177,8,126,1,126,3,126,2180,8,126, - 1,126,3,126,2183,8,126,1,126,1,126,1,127,1,127,3,127,2189,8,127,1,127, - 1,127,3,127,2193,8,127,1,128,1,128,3,128,2197,8,128,1,128,4,128,2200, - 8,128,11,128,12,128,2201,1,128,1,128,3,128,2206,8,128,1,128,1,128,3,128, - 2210,8,128,1,128,4,128,2213,8,128,11,128,12,128,2214,3,128,2217,8,128, - 1,128,3,128,2220,8,128,1,128,1,128,3,128,2224,8,128,1,128,3,128,2227, - 8,128,1,128,3,128,2230,8,128,1,128,1,128,1,129,1,129,3,129,2236,8,129, - 1,129,1,129,3,129,2240,8,129,1,129,1,129,3,129,2244,8,129,1,129,1,129, - 1,130,1,130,1,131,1,131,3,131,2252,8,131,1,132,1,132,1,132,3,132,2257, - 8,132,1,133,1,133,3,133,2261,8,133,1,133,1,133,1,134,1,134,1,135,1,135, - 1,136,1,136,1,137,1,137,1,138,1,138,1,138,1,138,1,138,3,138,2278,8,138, - 1,139,1,139,1,140,1,140,1,141,1,141,1,142,1,142,1,142,0,1,62,143,0,2, + 7,140,2,141,7,141,2,142,7,142,2,143,7,143,1,0,1,0,3,0,291,8,0,1,0,1,0, + 3,0,295,8,0,1,0,5,0,298,8,0,10,0,12,0,301,9,0,1,0,3,0,304,8,0,1,0,1,0, + 1,1,3,1,309,8,1,1,1,3,1,312,8,1,1,1,1,1,3,1,316,8,1,1,1,3,1,319,8,1,1, + 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,332,8,2,1,3,1,3,1,3,1,3, + 3,3,338,8,3,1,3,1,3,3,3,342,8,3,1,3,1,3,3,3,346,8,3,1,3,1,3,3,3,350,8, + 3,1,3,3,3,353,8,3,1,3,1,3,1,3,1,3,3,3,359,8,3,1,3,3,3,362,8,3,1,3,1,3, + 3,3,366,8,3,1,3,1,3,3,3,370,8,3,1,3,1,3,3,3,374,8,3,1,4,1,4,3,4,378,8, + 4,1,4,1,4,3,4,382,8,4,1,4,5,4,385,8,4,10,4,12,4,388,9,4,1,5,1,5,1,5,1, + 5,1,5,1,5,1,5,1,5,3,5,398,8,5,1,5,1,5,3,5,402,8,5,1,5,1,5,3,5,406,8,5, + 1,5,5,5,409,8,5,10,5,12,5,412,9,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6, + 1,6,3,6,424,8,6,1,6,1,6,3,6,428,8,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,436,8, + 6,1,6,1,6,3,6,440,8,6,1,6,1,6,3,6,444,8,6,1,6,1,6,3,6,448,8,6,1,7,1,7, + 1,7,1,7,1,7,1,7,3,7,456,8,7,1,7,1,7,3,7,460,8,7,1,7,1,7,3,7,464,8,7,1, + 7,1,7,3,7,468,8,7,1,8,1,8,1,8,1,8,3,8,474,8,8,1,8,1,8,3,8,478,8,8,1,8, + 1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1, + 10,1,10,1,10,3,10,500,8,10,1,10,1,10,3,10,504,8,10,1,10,3,10,507,8,10, + 1,10,3,10,510,8,10,1,10,3,10,513,8,10,1,10,3,10,516,8,10,1,10,1,10,3, + 10,520,8,10,1,10,5,10,523,8,10,10,10,12,10,526,9,10,1,10,3,10,529,8,10, + 1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,3,11,539,8,11,1,11,1,11,3,11, + 543,8,11,1,11,5,11,546,8,11,10,11,12,11,549,9,11,1,12,1,12,3,12,553,8, + 12,1,12,1,12,1,12,3,12,558,8,12,1,12,1,12,1,13,1,13,3,13,564,8,13,1,13, + 1,13,3,13,568,8,13,1,13,1,13,3,13,572,8,13,1,13,5,13,575,8,13,10,13,12, + 13,578,9,13,1,13,1,13,1,13,1,13,3,13,584,8,13,1,13,1,13,3,13,588,8,13, + 1,13,1,13,3,13,592,8,13,1,13,3,13,595,8,13,1,14,1,14,3,14,599,8,14,1, + 14,1,14,3,14,603,8,14,1,14,5,14,606,8,14,10,14,12,14,609,9,14,1,15,1, + 15,3,15,613,8,15,1,15,1,15,3,15,617,8,15,1,15,1,15,1,16,1,16,1,16,1,16, + 1,16,1,16,3,16,627,8,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17, + 637,8,17,1,17,1,17,3,17,641,8,17,1,17,1,17,3,17,645,8,17,1,17,1,17,3, + 17,649,8,17,1,17,1,17,1,17,3,17,654,8,17,1,17,1,17,1,18,1,18,1,18,1,18, + 1,18,1,18,1,18,1,18,3,18,666,8,18,1,18,1,18,3,18,670,8,18,1,18,1,18,3, + 18,674,8,18,1,18,1,18,3,18,678,8,18,1,18,1,18,3,18,682,8,18,3,18,684, + 8,18,1,18,1,18,3,18,688,8,18,1,18,1,18,3,18,692,8,18,3,18,694,8,18,1, + 18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,708,8, + 19,1,19,1,19,3,19,712,8,19,1,19,1,19,3,19,716,8,19,1,19,1,19,3,19,720, + 8,19,1,19,4,19,723,8,19,11,19,12,19,724,1,19,3,19,728,8,19,1,19,1,19, + 3,19,732,8,19,1,19,1,19,3,19,736,8,19,3,19,738,8,19,1,19,1,19,3,19,742, + 8,19,1,19,1,19,3,19,746,8,19,3,19,748,8,19,1,19,1,19,1,20,1,20,1,20,1, + 20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1, + 22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1, + 24,3,24,784,8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,795, + 8,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28, + 1,28,1,28,1,28,1,28,1,28,1,29,1,29,3,29,817,8,29,1,29,1,29,3,29,821,8, + 29,1,29,5,29,824,8,29,10,29,12,29,827,9,29,1,30,1,30,1,30,1,30,1,31,1, + 31,1,31,1,31,3,31,837,8,31,1,31,1,31,3,31,841,8,31,1,31,1,31,3,31,845, + 8,31,1,31,1,31,1,32,1,32,1,32,1,32,3,32,853,8,32,1,32,1,32,3,32,857,8, + 32,1,32,1,32,3,32,861,8,32,1,32,1,32,1,32,1,32,3,32,867,8,32,1,32,1,32, + 3,32,871,8,32,1,32,1,32,3,32,875,8,32,1,32,1,32,1,32,1,32,3,32,881,8, + 32,1,32,1,32,3,32,885,8,32,1,32,1,32,3,32,889,8,32,1,32,1,32,3,32,893, + 8,32,1,32,1,32,3,32,897,8,32,1,32,1,32,3,32,901,8,32,1,32,1,32,5,32,905, + 8,32,10,32,12,32,908,9,32,1,33,1,33,5,33,912,8,33,10,33,12,33,915,9,33, + 1,34,1,34,3,34,919,8,34,1,34,1,34,1,35,1,35,3,35,925,8,35,1,36,1,36,1, + 37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1, + 38,1,38,3,38,945,8,38,1,39,1,39,3,39,949,8,39,1,40,1,40,1,40,1,40,1,40, + 1,40,3,40,957,8,40,1,41,1,41,1,41,1,41,1,42,1,42,1,43,1,43,3,43,967,8, + 43,1,43,5,43,970,8,43,10,43,12,43,973,9,43,1,43,1,43,3,43,977,8,43,4, + 43,979,8,43,11,43,12,43,980,1,43,1,43,1,43,3,43,986,8,43,1,44,1,44,1, + 44,1,44,3,44,992,8,44,1,44,1,44,1,44,3,44,997,8,44,1,44,3,44,1000,8,44, + 1,45,1,45,3,45,1004,8,45,1,46,1,46,3,46,1008,8,46,5,46,1010,8,46,10,46, + 12,46,1013,9,46,1,46,1,46,1,46,3,46,1018,8,46,5,46,1020,8,46,10,46,12, + 46,1023,9,46,1,46,1,46,3,46,1027,8,46,1,46,5,46,1030,8,46,10,46,12,46, + 1033,9,46,1,46,3,46,1036,8,46,1,46,3,46,1039,8,46,1,46,1,46,3,46,1043, + 8,46,4,46,1045,8,46,11,46,12,46,1046,1,46,1,46,3,46,1051,8,46,1,47,1, + 47,3,47,1055,8,47,4,47,1057,8,47,11,47,12,47,1058,1,47,1,47,1,48,1,48, + 3,48,1065,8,48,5,48,1067,8,48,10,48,12,48,1070,9,48,1,48,1,48,3,48,1074, + 8,48,5,48,1076,8,48,10,48,12,48,1079,9,48,1,48,1,48,1,49,1,49,1,49,1, + 49,3,49,1087,8,49,1,50,1,50,1,50,1,50,3,50,1093,8,50,1,51,1,51,1,51,1, + 51,1,51,1,51,3,51,1101,8,51,1,51,1,51,3,51,1105,8,51,1,51,1,51,3,51,1109, + 8,51,1,51,1,51,3,51,1113,8,51,1,51,1,51,1,51,1,51,1,51,3,51,1120,8,51, + 1,51,1,51,3,51,1124,8,51,1,51,1,51,3,51,1128,8,51,1,51,1,51,3,51,1132, + 8,51,1,51,3,51,1135,8,51,1,51,3,51,1138,8,51,1,51,3,51,1141,8,51,1,52, + 1,52,1,52,1,52,3,52,1147,8,52,1,52,3,52,1150,8,52,1,53,1,53,3,53,1154, + 8,53,1,53,1,53,3,53,1158,8,53,1,53,1,53,3,53,1162,8,53,1,53,3,53,1165, + 8,53,1,54,1,54,3,54,1169,8,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55, + 3,55,1179,8,55,1,55,1,55,1,56,1,56,3,56,1185,8,56,1,56,1,56,1,56,5,56, + 1190,8,56,10,56,12,56,1193,9,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1, + 57,1,57,1,57,3,57,1205,8,57,1,58,1,58,3,58,1209,8,58,1,58,1,58,3,58,1213, + 8,58,1,58,1,58,3,58,1217,8,58,1,58,5,58,1220,8,58,10,58,12,58,1223,9, + 58,1,59,1,59,3,59,1227,8,59,1,59,1,59,3,59,1231,8,59,1,59,1,59,1,60,1, + 60,3,60,1237,8,60,1,60,1,60,3,60,1241,8,60,1,60,1,60,3,60,1245,8,60,1, + 60,1,60,3,60,1249,8,60,1,60,5,60,1252,8,60,10,60,12,60,1255,9,60,1,61, + 1,61,1,61,3,61,1260,8,61,1,61,3,61,1263,8,61,1,62,1,62,1,62,1,63,3,63, + 1269,8,63,1,63,3,63,1272,8,63,1,63,1,63,1,63,1,63,3,63,1278,8,63,1,63, + 1,63,3,63,1282,8,63,1,63,1,63,3,63,1286,8,63,1,64,1,64,3,64,1290,8,64, + 1,64,1,64,3,64,1294,8,64,1,64,5,64,1297,8,64,10,64,12,64,1300,9,64,1, + 64,1,64,3,64,1304,8,64,1,64,1,64,3,64,1308,8,64,1,64,5,64,1311,8,64,10, + 64,12,64,1314,9,64,3,64,1316,8,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65, + 3,65,1325,8,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,3,66,1334,8,66,1,66, + 5,66,1337,8,66,10,66,12,66,1340,9,66,1,67,1,67,1,67,1,67,1,68,1,68,1, + 68,1,68,1,69,1,69,3,69,1352,8,69,1,69,3,69,1355,8,69,1,70,1,70,1,70,1, + 70,1,71,1,71,3,71,1363,8,71,1,71,1,71,3,71,1367,8,71,1,71,5,71,1370,8, + 71,10,71,12,71,1373,9,71,1,72,1,72,3,72,1377,8,72,1,72,1,72,3,72,1381, + 8,72,1,72,1,72,1,72,3,72,1386,8,72,1,73,1,73,1,74,1,74,3,74,1392,8,74, + 1,74,5,74,1395,8,74,10,74,12,74,1398,9,74,1,74,1,74,1,74,1,74,3,74,1404, + 8,74,1,75,1,75,3,75,1408,8,75,1,75,1,75,3,75,1412,8,75,3,75,1414,8,75, + 1,75,1,75,3,75,1418,8,75,3,75,1420,8,75,1,75,1,75,3,75,1424,8,75,3,75, + 1426,8,75,1,75,1,75,1,76,1,76,3,76,1432,8,76,1,76,1,76,1,77,1,77,3,77, + 1438,8,77,1,77,1,77,3,77,1442,8,77,1,77,3,77,1445,8,77,1,77,3,77,1448, + 8,77,1,77,1,77,1,77,1,77,3,77,1454,8,77,1,77,3,77,1457,8,77,1,77,3,77, + 1460,8,77,1,77,1,77,3,77,1464,8,77,1,77,1,77,1,77,1,77,3,77,1470,8,77, + 1,77,3,77,1473,8,77,1,77,3,77,1476,8,77,1,77,1,77,3,77,1480,8,77,1,78, + 1,78,3,78,1484,8,78,1,78,1,78,3,78,1488,8,78,3,78,1490,8,78,1,78,1,78, + 3,78,1494,8,78,3,78,1496,8,78,1,78,1,78,3,78,1500,8,78,3,78,1502,8,78, + 1,78,1,78,3,78,1506,8,78,3,78,1508,8,78,1,78,1,78,1,79,1,79,3,79,1514, + 8,79,1,79,1,79,3,79,1518,8,79,1,79,1,79,3,79,1522,8,79,1,79,1,79,3,79, + 1526,8,79,1,79,1,79,3,79,1530,8,79,1,79,1,79,3,79,1534,8,79,1,79,1,79, + 3,79,1538,8,79,1,79,1,79,3,79,1542,8,79,5,79,1544,8,79,10,79,12,79,1547, + 9,79,3,79,1549,8,79,1,79,1,79,1,80,1,80,3,80,1555,8,80,1,80,1,80,3,80, + 1559,8,80,1,80,1,80,3,80,1563,8,80,1,80,3,80,1566,8,80,1,80,5,80,1569, + 8,80,10,80,12,80,1572,9,80,1,81,1,81,3,81,1576,8,81,1,81,5,81,1579,8, + 81,10,81,12,81,1582,9,81,1,82,1,82,3,82,1586,8,82,1,82,1,82,1,83,1,83, + 3,83,1592,8,83,1,83,1,83,1,83,1,83,3,83,1598,8,83,1,83,3,83,1601,8,83, + 1,83,3,83,1604,8,83,1,83,3,83,1607,8,83,1,83,1,83,3,83,1611,8,83,1,83, + 3,83,1614,8,83,1,83,3,83,1617,8,83,1,83,3,83,1620,8,83,1,83,3,83,1623, + 8,83,1,84,1,84,3,84,1627,8,84,1,84,1,84,3,84,1631,8,84,1,84,1,84,3,84, + 1635,8,84,1,84,1,84,3,84,1639,8,84,1,84,1,84,3,84,1643,8,84,1,84,3,84, + 1646,8,84,1,84,3,84,1649,8,84,1,84,1,84,3,84,1653,8,84,1,84,1,84,3,84, + 1657,8,84,1,84,1,84,3,84,1661,8,84,1,84,1,84,3,84,1665,8,84,3,84,1667, + 8,84,1,84,1,84,1,85,1,85,3,85,1673,8,85,1,85,3,85,1676,8,85,1,85,3,85, + 1679,8,85,1,85,1,85,1,86,1,86,3,86,1685,8,86,1,86,3,86,1688,8,86,1,86, + 3,86,1691,8,86,1,86,1,86,1,87,1,87,1,88,1,88,1,89,1,89,1,90,1,90,1,91, + 1,91,1,92,1,92,1,92,1,92,1,92,5,92,1710,8,92,10,92,12,92,1713,9,92,1, + 93,1,93,1,93,1,93,1,93,5,93,1720,8,93,10,93,12,93,1723,9,93,1,94,1,94, + 1,94,1,94,1,94,5,94,1730,8,94,10,94,12,94,1733,9,94,1,95,1,95,3,95,1737, + 8,95,5,95,1739,8,95,10,95,12,95,1742,9,95,1,95,1,95,1,96,1,96,3,96,1748, + 8,96,1,96,1,96,3,96,1752,8,96,1,96,1,96,3,96,1756,8,96,1,96,1,96,3,96, + 1760,8,96,1,96,1,96,3,96,1764,8,96,1,96,1,96,1,96,1,96,1,96,1,96,3,96, + 1772,8,96,1,96,1,96,3,96,1776,8,96,1,96,1,96,3,96,1780,8,96,1,96,1,96, + 3,96,1784,8,96,1,96,1,96,4,96,1788,8,96,11,96,12,96,1789,1,96,1,96,3, + 96,1794,8,96,1,97,1,97,1,98,1,98,3,98,1800,8,98,1,98,1,98,3,98,1804,8, + 98,1,98,5,98,1807,8,98,10,98,12,98,1810,9,98,1,99,1,99,3,99,1814,8,99, + 1,99,1,99,3,99,1818,8,99,1,99,5,99,1821,8,99,10,99,12,99,1824,9,99,1, + 100,1,100,3,100,1828,8,100,1,100,1,100,3,100,1832,8,100,1,100,1,100,5, + 100,1836,8,100,10,100,12,100,1839,9,100,1,101,1,101,1,102,1,102,3,102, + 1845,8,102,1,102,1,102,3,102,1849,8,102,1,102,1,102,5,102,1853,8,102, + 10,102,12,102,1856,9,102,1,103,1,103,1,104,1,104,3,104,1862,8,104,1,104, + 1,104,3,104,1866,8,104,1,104,1,104,5,104,1870,8,104,10,104,12,104,1873, + 9,104,1,105,1,105,1,106,1,106,3,106,1879,8,106,1,106,1,106,3,106,1883, + 8,106,1,106,5,106,1886,8,106,10,106,12,106,1889,9,106,1,107,1,107,3,107, + 1893,8,107,5,107,1895,8,107,10,107,12,107,1898,9,107,1,107,1,107,3,107, + 1902,8,107,1,107,3,107,1905,8,107,1,108,1,108,1,108,4,108,1910,8,108, + 11,108,12,108,1911,1,108,3,108,1915,8,108,1,109,1,109,1,109,3,109,1920, + 8,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,3,109,1929,8,109,1,109, + 1,109,3,109,1933,8,109,1,109,3,109,1936,8,109,1,110,1,110,1,110,1,110, + 1,110,1,110,1,110,1,110,1,110,1,110,1,110,3,110,1949,8,110,1,110,3,110, + 1952,8,110,1,110,1,110,1,111,3,111,1957,8,111,1,111,1,111,1,112,1,112, + 1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,3,112,1971,8,112,1,113, + 1,113,3,113,1975,8,113,1,113,5,113,1978,8,113,10,113,12,113,1981,9,113, + 1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,3,114,1992,8,114, + 1,115,1,115,1,115,1,115,1,115,1,115,3,115,2000,8,115,1,116,1,116,1,117, + 1,117,3,117,2006,8,117,1,117,1,117,3,117,2010,8,117,1,117,1,117,3,117, + 2014,8,117,5,117,2016,8,117,10,117,12,117,2019,9,117,3,117,2021,8,117, + 1,117,1,117,1,118,1,118,3,118,2027,8,118,1,118,3,118,2030,8,118,1,119, + 1,119,3,119,2034,8,119,1,119,1,119,3,119,2038,8,119,1,119,1,119,3,119, + 2042,8,119,1,119,1,119,3,119,2046,8,119,5,119,2048,8,119,10,119,12,119, + 2051,9,119,1,119,1,119,1,120,1,120,3,120,2057,8,120,1,120,3,120,2060, + 8,120,1,120,1,120,3,120,2064,8,120,1,120,1,120,1,121,1,121,3,121,2070, + 8,121,1,121,1,121,3,121,2074,8,121,1,121,1,121,1,122,1,122,3,122,2080, + 8,122,1,122,1,122,3,122,2084,8,122,1,122,1,122,3,122,2088,8,122,1,122, + 1,122,1,122,3,122,2093,8,122,1,122,1,122,3,122,2097,8,122,1,122,1,122, + 3,122,2101,8,122,3,122,2103,8,122,1,122,1,122,3,122,2107,8,122,1,122, + 1,122,3,122,2111,8,122,1,122,1,122,3,122,2115,8,122,5,122,2117,8,122, + 10,122,12,122,2120,9,122,3,122,2122,8,122,1,122,1,122,3,122,2126,8,122, + 1,123,1,123,1,124,1,124,3,124,2132,8,124,1,124,1,124,1,124,3,124,2137, + 8,124,3,124,2139,8,124,1,124,1,124,1,125,1,125,3,125,2145,8,125,1,125, + 4,125,2148,8,125,11,125,12,125,2149,1,126,1,126,3,126,2154,8,126,1,126, + 1,126,3,126,2158,8,126,1,126,1,126,3,126,2162,8,126,1,126,1,126,3,126, + 2166,8,126,1,126,3,126,2169,8,126,1,126,3,126,2172,8,126,1,126,1,126, + 1,127,1,127,3,127,2178,8,127,1,127,1,127,3,127,2182,8,127,1,127,1,127, + 3,127,2186,8,127,1,127,1,127,3,127,2190,8,127,1,127,3,127,2193,8,127, + 1,127,3,127,2196,8,127,1,127,1,127,1,128,1,128,3,128,2202,8,128,1,128, + 1,128,3,128,2206,8,128,1,129,1,129,3,129,2210,8,129,1,129,4,129,2213, + 8,129,11,129,12,129,2214,1,129,1,129,3,129,2219,8,129,1,129,1,129,3,129, + 2223,8,129,1,129,4,129,2226,8,129,11,129,12,129,2227,3,129,2230,8,129, + 1,129,3,129,2233,8,129,1,129,1,129,3,129,2237,8,129,1,129,3,129,2240, + 8,129,1,129,3,129,2243,8,129,1,129,1,129,1,130,1,130,3,130,2249,8,130, + 1,130,1,130,3,130,2253,8,130,1,130,1,130,3,130,2257,8,130,1,130,1,130, + 1,131,1,131,1,132,1,132,3,132,2265,8,132,1,133,1,133,1,133,3,133,2270, + 8,133,1,134,1,134,3,134,2274,8,134,1,134,1,134,1,135,1,135,1,136,1,136, + 1,137,1,137,1,138,1,138,1,139,1,139,1,139,1,139,1,139,3,139,2291,8,139, + 1,140,1,140,1,141,1,141,1,142,1,142,1,143,1,143,1,143,0,1,64,144,0,2, 4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50, 52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96, 98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132, @@ -334,697 +337,701 @@ void cypherParserInitialize() { 170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204, 206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240, 242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276, - 278,280,282,284,0,11,2,0,56,56,58,58,1,0,103,106,2,0,5,5,12,16,1,0,18, - 19,2,0,20,20,114,114,2,0,21,22,97,97,1,0,123,124,7,0,47,47,53,55,66,66, - 70,70,117,117,125,125,129,129,2,0,13,13,27,30,2,0,15,15,31,34,2,0,35, - 45,114,114,2592,0,287,1,0,0,0,2,318,1,0,0,0,4,320,1,0,0,0,6,362,1,0,0, - 0,8,376,1,0,0,0,10,406,1,0,0,0,12,436,1,0,0,0,14,456,1,0,0,0,16,468,1, - 0,0,0,18,480,1,0,0,0,20,523,1,0,0,0,22,537,1,0,0,0,24,581,1,0,0,0,26, - 583,1,0,0,0,28,597,1,0,0,0,30,613,1,0,0,0,32,615,1,0,0,0,34,644,1,0,0, - 0,36,684,1,0,0,0,38,738,1,0,0,0,40,746,1,0,0,0,42,752,1,0,0,0,44,758, - 1,0,0,0,46,770,1,0,0,0,48,772,1,0,0,0,50,783,1,0,0,0,52,787,1,0,0,0,54, - 793,1,0,0,0,56,801,1,0,0,0,58,815,1,0,0,0,60,819,1,0,0,0,62,887,1,0,0, - 0,64,896,1,0,0,0,66,903,1,0,0,0,68,911,1,0,0,0,70,913,1,0,0,0,72,915, - 1,0,0,0,74,931,1,0,0,0,76,935,1,0,0,0,78,937,1,0,0,0,80,945,1,0,0,0,82, - 949,1,0,0,0,84,972,1,0,0,0,86,986,1,0,0,0,88,990,1,0,0,0,90,1037,1,0, - 0,0,92,1043,1,0,0,0,94,1055,1,0,0,0,96,1073,1,0,0,0,98,1079,1,0,0,0,100, - 1081,1,0,0,0,102,1129,1,0,0,0,104,1140,1,0,0,0,106,1153,1,0,0,0,108,1163, - 1,0,0,0,110,1169,1,0,0,0,112,1191,1,0,0,0,114,1193,1,0,0,0,116,1211,1, - 0,0,0,118,1223,1,0,0,0,120,1243,1,0,0,0,122,1251,1,0,0,0,124,1258,1,0, - 0,0,126,1302,1,0,0,0,128,1311,1,0,0,0,130,1313,1,0,0,0,132,1328,1,0,0, - 0,134,1332,1,0,0,0,136,1336,1,0,0,0,138,1343,1,0,0,0,140,1347,1,0,0,0, - 142,1372,1,0,0,0,144,1374,1,0,0,0,146,1390,1,0,0,0,148,1392,1,0,0,0,150, - 1416,1,0,0,0,152,1466,1,0,0,0,154,1468,1,0,0,0,156,1498,1,0,0,0,158,1539, - 1,0,0,0,160,1560,1,0,0,0,162,1570,1,0,0,0,164,1576,1,0,0,0,166,1611,1, - 0,0,0,168,1657,1,0,0,0,170,1669,1,0,0,0,172,1681,1,0,0,0,174,1683,1,0, - 0,0,176,1685,1,0,0,0,178,1687,1,0,0,0,180,1689,1,0,0,0,182,1691,1,0,0, - 0,184,1701,1,0,0,0,186,1711,1,0,0,0,188,1727,1,0,0,0,190,1780,1,0,0,0, - 192,1782,1,0,0,0,194,1784,1,0,0,0,196,1798,1,0,0,0,198,1812,1,0,0,0,200, - 1827,1,0,0,0,202,1829,1,0,0,0,204,1844,1,0,0,0,206,1846,1,0,0,0,208,1861, - 1,0,0,0,210,1863,1,0,0,0,212,1883,1,0,0,0,214,1893,1,0,0,0,216,1922,1, - 0,0,0,218,1935,1,0,0,0,220,1943,1,0,0,0,222,1957,1,0,0,0,224,1959,1,0, - 0,0,226,1978,1,0,0,0,228,1986,1,0,0,0,230,1988,1,0,0,0,232,1990,1,0,0, - 0,234,2011,1,0,0,0,236,2018,1,0,0,0,238,2043,1,0,0,0,240,2054,1,0,0,0, - 242,2112,1,0,0,0,244,2114,1,0,0,0,246,2125,1,0,0,0,248,2129,1,0,0,0,250, - 2138,1,0,0,0,252,2162,1,0,0,0,254,2186,1,0,0,0,256,2216,1,0,0,0,258,2233, - 1,0,0,0,260,2247,1,0,0,0,262,2251,1,0,0,0,264,2253,1,0,0,0,266,2258,1, - 0,0,0,268,2264,1,0,0,0,270,2266,1,0,0,0,272,2268,1,0,0,0,274,2270,1,0, - 0,0,276,2277,1,0,0,0,278,2279,1,0,0,0,280,2281,1,0,0,0,282,2283,1,0,0, - 0,284,2285,1,0,0,0,286,288,5,146,0,0,287,286,1,0,0,0,287,288,1,0,0,0, - 288,290,1,0,0,0,289,291,3,68,34,0,290,289,1,0,0,0,290,291,1,0,0,0,291, - 293,1,0,0,0,292,294,5,146,0,0,293,292,1,0,0,0,293,294,1,0,0,0,294,295, - 1,0,0,0,295,300,3,2,1,0,296,298,5,146,0,0,297,296,1,0,0,0,297,298,1,0, - 0,0,298,299,1,0,0,0,299,301,5,1,0,0,300,297,1,0,0,0,300,301,1,0,0,0,301, - 303,1,0,0,0,302,304,5,146,0,0,303,302,1,0,0,0,303,304,1,0,0,0,304,305, - 1,0,0,0,305,306,5,0,0,1,306,1,1,0,0,0,307,319,3,82,41,0,308,319,3,30, - 15,0,309,319,3,4,2,0,310,319,3,8,4,0,311,319,3,10,5,0,312,319,3,14,7, - 0,313,319,3,18,9,0,314,319,3,16,8,0,315,319,3,74,37,0,316,319,3,76,38, - 0,317,319,3,12,6,0,318,307,1,0,0,0,318,308,1,0,0,0,318,309,1,0,0,0,318, - 310,1,0,0,0,318,311,1,0,0,0,318,312,1,0,0,0,318,313,1,0,0,0,318,314,1, - 0,0,0,318,315,1,0,0,0,318,316,1,0,0,0,318,317,1,0,0,0,319,3,1,0,0,0,320, - 321,5,50,0,0,321,322,5,146,0,0,322,339,3,274,137,0,323,325,5,146,0,0, - 324,323,1,0,0,0,324,325,1,0,0,0,325,326,1,0,0,0,326,328,5,2,0,0,327,329, - 5,146,0,0,328,327,1,0,0,0,328,329,1,0,0,0,329,330,1,0,0,0,330,332,3,6, - 3,0,331,333,5,146,0,0,332,331,1,0,0,0,332,333,1,0,0,0,333,334,1,0,0,0, - 334,336,5,3,0,0,335,337,5,146,0,0,336,335,1,0,0,0,336,337,1,0,0,0,337, - 340,1,0,0,0,338,340,5,146,0,0,339,324,1,0,0,0,339,338,1,0,0,0,340,341, - 1,0,0,0,341,342,5,51,0,0,342,345,5,146,0,0,343,346,3,24,12,0,344,346, - 3,260,130,0,345,343,1,0,0,0,345,344,1,0,0,0,346,360,1,0,0,0,347,349,5, - 146,0,0,348,347,1,0,0,0,348,349,1,0,0,0,349,350,1,0,0,0,350,352,5,2,0, - 0,351,353,5,146,0,0,352,351,1,0,0,0,352,353,1,0,0,0,353,354,1,0,0,0,354, - 356,3,26,13,0,355,357,5,146,0,0,356,355,1,0,0,0,356,357,1,0,0,0,357,358, - 1,0,0,0,358,359,5,3,0,0,359,361,1,0,0,0,360,348,1,0,0,0,360,361,1,0,0, - 0,361,5,1,0,0,0,362,373,3,274,137,0,363,365,5,146,0,0,364,363,1,0,0,0, - 364,365,1,0,0,0,365,366,1,0,0,0,366,368,5,4,0,0,367,369,5,146,0,0,368, - 367,1,0,0,0,368,369,1,0,0,0,369,370,1,0,0,0,370,372,3,274,137,0,371,364, - 1,0,0,0,372,375,1,0,0,0,373,371,1,0,0,0,373,374,1,0,0,0,374,7,1,0,0,0, - 375,373,1,0,0,0,376,377,5,50,0,0,377,378,5,146,0,0,378,379,3,274,137, - 0,379,380,5,146,0,0,380,381,5,51,0,0,381,382,5,146,0,0,382,384,5,2,0, - 0,383,385,5,146,0,0,384,383,1,0,0,0,384,385,1,0,0,0,385,386,1,0,0,0,386, - 397,5,132,0,0,387,389,5,146,0,0,388,387,1,0,0,0,388,389,1,0,0,0,389,390, - 1,0,0,0,390,392,5,4,0,0,391,393,5,146,0,0,392,391,1,0,0,0,392,393,1,0, - 0,0,393,394,1,0,0,0,394,396,5,132,0,0,395,388,1,0,0,0,396,399,1,0,0,0, - 397,395,1,0,0,0,397,398,1,0,0,0,398,400,1,0,0,0,399,397,1,0,0,0,400,401, - 5,3,0,0,401,402,5,146,0,0,402,403,5,100,0,0,403,404,5,146,0,0,404,405, - 5,52,0,0,405,9,1,0,0,0,406,407,5,50,0,0,407,408,5,146,0,0,408,410,5,2, - 0,0,409,411,5,146,0,0,410,409,1,0,0,0,410,411,1,0,0,0,411,412,1,0,0,0, - 412,414,3,82,41,0,413,415,5,146,0,0,414,413,1,0,0,0,414,415,1,0,0,0,415, - 416,1,0,0,0,416,417,5,3,0,0,417,418,5,146,0,0,418,419,5,67,0,0,419,420, - 5,146,0,0,420,434,5,132,0,0,421,423,5,146,0,0,422,421,1,0,0,0,422,423, - 1,0,0,0,423,424,1,0,0,0,424,426,5,2,0,0,425,427,5,146,0,0,426,425,1,0, - 0,0,426,427,1,0,0,0,427,428,1,0,0,0,428,430,3,26,13,0,429,431,5,146,0, - 0,430,429,1,0,0,0,430,431,1,0,0,0,431,432,1,0,0,0,432,433,5,3,0,0,433, - 435,1,0,0,0,434,422,1,0,0,0,434,435,1,0,0,0,435,11,1,0,0,0,436,437,5, - 53,0,0,437,438,5,146,0,0,438,439,5,54,0,0,439,440,5,146,0,0,440,454,5, - 132,0,0,441,443,5,146,0,0,442,441,1,0,0,0,442,443,1,0,0,0,443,444,1,0, - 0,0,444,446,5,2,0,0,445,447,5,146,0,0,446,445,1,0,0,0,446,447,1,0,0,0, - 447,448,1,0,0,0,448,450,3,26,13,0,449,451,5,146,0,0,450,449,1,0,0,0,450, - 451,1,0,0,0,451,452,1,0,0,0,452,453,5,3,0,0,453,455,1,0,0,0,454,442,1, - 0,0,0,454,455,1,0,0,0,455,13,1,0,0,0,456,457,5,46,0,0,457,458,5,146,0, - 0,458,460,3,276,138,0,459,461,5,146,0,0,460,459,1,0,0,0,460,461,1,0,0, - 0,461,462,1,0,0,0,462,464,5,5,0,0,463,465,5,146,0,0,464,463,1,0,0,0,464, - 465,1,0,0,0,465,466,1,0,0,0,466,467,3,228,114,0,467,15,1,0,0,0,468,469, - 5,47,0,0,469,470,5,146,0,0,470,471,5,90,0,0,471,472,5,146,0,0,472,473, - 5,56,0,0,473,474,5,146,0,0,474,475,3,274,137,0,475,476,5,146,0,0,476, - 477,5,121,0,0,477,478,5,146,0,0,478,479,5,132,0,0,479,17,1,0,0,0,480, - 481,5,88,0,0,481,482,5,146,0,0,482,483,5,48,0,0,483,484,5,146,0,0,484, - 486,3,244,122,0,485,487,5,146,0,0,486,485,1,0,0,0,486,487,1,0,0,0,487, - 488,1,0,0,0,488,490,5,2,0,0,489,491,5,146,0,0,490,489,1,0,0,0,490,491, - 1,0,0,0,491,493,1,0,0,0,492,494,3,20,10,0,493,492,1,0,0,0,493,494,1,0, - 0,0,494,496,1,0,0,0,495,497,5,146,0,0,496,495,1,0,0,0,496,497,1,0,0,0, - 497,499,1,0,0,0,498,500,3,22,11,0,499,498,1,0,0,0,499,500,1,0,0,0,500, - 511,1,0,0,0,501,503,5,146,0,0,502,501,1,0,0,0,502,503,1,0,0,0,503,504, - 1,0,0,0,504,506,5,4,0,0,505,507,5,146,0,0,506,505,1,0,0,0,506,507,1,0, - 0,0,507,508,1,0,0,0,508,510,3,22,11,0,509,502,1,0,0,0,510,513,1,0,0,0, - 511,509,1,0,0,0,511,512,1,0,0,0,512,515,1,0,0,0,513,511,1,0,0,0,514,516, - 5,146,0,0,515,514,1,0,0,0,515,516,1,0,0,0,516,517,1,0,0,0,517,518,5,3, - 0,0,518,519,5,146,0,0,519,520,5,98,0,0,520,521,5,146,0,0,521,522,3,180, - 90,0,522,19,1,0,0,0,523,534,3,276,138,0,524,526,5,146,0,0,525,524,1,0, - 0,0,525,526,1,0,0,0,526,527,1,0,0,0,527,529,5,4,0,0,528,530,5,146,0,0, - 529,528,1,0,0,0,529,530,1,0,0,0,530,531,1,0,0,0,531,533,3,276,138,0,532, - 525,1,0,0,0,533,536,1,0,0,0,534,532,1,0,0,0,534,535,1,0,0,0,535,21,1, - 0,0,0,536,534,1,0,0,0,537,539,3,276,138,0,538,540,5,146,0,0,539,538,1, - 0,0,0,539,540,1,0,0,0,540,541,1,0,0,0,541,542,5,116,0,0,542,544,5,5,0, - 0,543,545,5,146,0,0,544,543,1,0,0,0,544,545,1,0,0,0,545,546,1,0,0,0,546, - 547,3,228,114,0,547,23,1,0,0,0,548,550,5,6,0,0,549,551,5,146,0,0,550, - 549,1,0,0,0,550,551,1,0,0,0,551,552,1,0,0,0,552,563,5,132,0,0,553,555, - 5,146,0,0,554,553,1,0,0,0,554,555,1,0,0,0,555,556,1,0,0,0,556,558,5,4, - 0,0,557,559,5,146,0,0,558,557,1,0,0,0,558,559,1,0,0,0,559,560,1,0,0,0, - 560,562,5,132,0,0,561,554,1,0,0,0,562,565,1,0,0,0,563,561,1,0,0,0,563, - 564,1,0,0,0,564,566,1,0,0,0,565,563,1,0,0,0,566,582,5,7,0,0,567,582,5, - 132,0,0,568,570,5,49,0,0,569,571,5,146,0,0,570,569,1,0,0,0,570,571,1, - 0,0,0,571,572,1,0,0,0,572,574,5,2,0,0,573,575,5,146,0,0,574,573,1,0,0, - 0,574,575,1,0,0,0,575,576,1,0,0,0,576,578,5,132,0,0,577,579,5,146,0,0, - 578,577,1,0,0,0,578,579,1,0,0,0,579,580,1,0,0,0,580,582,5,3,0,0,581,548, - 1,0,0,0,581,567,1,0,0,0,581,568,1,0,0,0,582,25,1,0,0,0,583,594,3,28,14, - 0,584,586,5,146,0,0,585,584,1,0,0,0,585,586,1,0,0,0,586,587,1,0,0,0,587, - 589,5,4,0,0,588,590,5,146,0,0,589,588,1,0,0,0,589,590,1,0,0,0,590,591, - 1,0,0,0,591,593,3,28,14,0,592,585,1,0,0,0,593,596,1,0,0,0,594,592,1,0, - 0,0,594,595,1,0,0,0,595,27,1,0,0,0,596,594,1,0,0,0,597,599,3,276,138, - 0,598,600,5,146,0,0,599,598,1,0,0,0,599,600,1,0,0,0,600,601,1,0,0,0,601, - 603,5,5,0,0,602,604,5,146,0,0,603,602,1,0,0,0,603,604,1,0,0,0,604,605, - 1,0,0,0,605,606,3,228,114,0,606,29,1,0,0,0,607,614,3,32,16,0,608,614, - 3,34,17,0,609,614,3,36,18,0,610,614,3,40,20,0,611,614,3,42,21,0,612,614, - 3,44,22,0,613,607,1,0,0,0,613,608,1,0,0,0,613,609,1,0,0,0,613,610,1,0, - 0,0,613,611,1,0,0,0,613,612,1,0,0,0,614,31,1,0,0,0,615,616,5,88,0,0,616, - 617,5,146,0,0,617,618,5,55,0,0,618,619,5,146,0,0,619,620,5,56,0,0,620, - 621,5,146,0,0,621,623,3,274,137,0,622,624,5,146,0,0,623,622,1,0,0,0,623, - 624,1,0,0,0,624,625,1,0,0,0,625,627,5,2,0,0,626,628,5,146,0,0,627,626, - 1,0,0,0,627,628,1,0,0,0,628,629,1,0,0,0,629,631,3,56,28,0,630,632,5,146, - 0,0,631,630,1,0,0,0,631,632,1,0,0,0,632,633,1,0,0,0,633,635,5,4,0,0,634, - 636,5,146,0,0,635,634,1,0,0,0,635,636,1,0,0,0,636,637,1,0,0,0,637,638, - 3,60,30,0,638,640,1,0,0,0,639,641,5,146,0,0,640,639,1,0,0,0,640,641,1, - 0,0,0,641,642,1,0,0,0,642,643,5,3,0,0,643,33,1,0,0,0,644,645,5,88,0,0, - 645,646,5,146,0,0,646,647,5,66,0,0,647,648,5,146,0,0,648,649,5,56,0,0, - 649,650,5,146,0,0,650,652,3,274,137,0,651,653,5,146,0,0,652,651,1,0,0, - 0,652,653,1,0,0,0,653,654,1,0,0,0,654,656,5,2,0,0,655,657,5,146,0,0,656, - 655,1,0,0,0,656,657,1,0,0,0,657,658,1,0,0,0,658,660,3,38,19,0,659,661, - 5,146,0,0,660,659,1,0,0,0,660,661,1,0,0,0,661,670,1,0,0,0,662,664,5,4, - 0,0,663,665,5,146,0,0,664,663,1,0,0,0,664,665,1,0,0,0,665,666,1,0,0,0, - 666,668,3,56,28,0,667,669,5,146,0,0,668,667,1,0,0,0,668,669,1,0,0,0,669, - 671,1,0,0,0,670,662,1,0,0,0,670,671,1,0,0,0,671,680,1,0,0,0,672,674,5, - 4,0,0,673,675,5,146,0,0,674,673,1,0,0,0,674,675,1,0,0,0,675,676,1,0,0, - 0,676,678,3,276,138,0,677,679,5,146,0,0,678,677,1,0,0,0,678,679,1,0,0, - 0,679,681,1,0,0,0,680,672,1,0,0,0,680,681,1,0,0,0,681,682,1,0,0,0,682, - 683,5,3,0,0,683,35,1,0,0,0,684,685,5,88,0,0,685,686,5,146,0,0,686,687, - 5,66,0,0,687,688,5,146,0,0,688,689,5,56,0,0,689,690,5,146,0,0,690,691, - 5,57,0,0,691,692,5,146,0,0,692,694,3,274,137,0,693,695,5,146,0,0,694, - 693,1,0,0,0,694,695,1,0,0,0,695,696,1,0,0,0,696,698,5,2,0,0,697,699,5, - 146,0,0,698,697,1,0,0,0,698,699,1,0,0,0,699,700,1,0,0,0,700,702,3,38, - 19,0,701,703,5,146,0,0,702,701,1,0,0,0,702,703,1,0,0,0,703,709,1,0,0, - 0,704,706,5,4,0,0,705,707,5,146,0,0,706,705,1,0,0,0,706,707,1,0,0,0,707, - 708,1,0,0,0,708,710,3,38,19,0,709,704,1,0,0,0,710,711,1,0,0,0,711,709, - 1,0,0,0,711,712,1,0,0,0,712,714,1,0,0,0,713,715,5,146,0,0,714,713,1,0, - 0,0,714,715,1,0,0,0,715,724,1,0,0,0,716,718,5,4,0,0,717,719,5,146,0,0, - 718,717,1,0,0,0,718,719,1,0,0,0,719,720,1,0,0,0,720,722,3,56,28,0,721, - 723,5,146,0,0,722,721,1,0,0,0,722,723,1,0,0,0,723,725,1,0,0,0,724,716, - 1,0,0,0,724,725,1,0,0,0,725,734,1,0,0,0,726,728,5,4,0,0,727,729,5,146, - 0,0,728,727,1,0,0,0,728,729,1,0,0,0,729,730,1,0,0,0,730,732,3,276,138, - 0,731,733,5,146,0,0,732,731,1,0,0,0,732,733,1,0,0,0,733,735,1,0,0,0,734, - 726,1,0,0,0,734,735,1,0,0,0,735,736,1,0,0,0,736,737,5,3,0,0,737,37,1, - 0,0,0,738,739,5,51,0,0,739,740,5,146,0,0,740,741,3,274,137,0,741,742, - 5,146,0,0,742,743,5,67,0,0,743,744,5,146,0,0,744,745,3,274,137,0,745, - 39,1,0,0,0,746,747,5,88,0,0,747,748,5,146,0,0,748,749,5,58,0,0,749,750, - 5,146,0,0,750,751,3,274,137,0,751,41,1,0,0,0,752,753,5,59,0,0,753,754, - 5,146,0,0,754,755,7,0,0,0,755,756,5,146,0,0,756,757,3,274,137,0,757,43, - 1,0,0,0,758,759,5,60,0,0,759,760,5,146,0,0,760,761,5,56,0,0,761,762,5, - 146,0,0,762,763,3,274,137,0,763,764,5,146,0,0,764,765,3,46,23,0,765,45, - 1,0,0,0,766,771,3,48,24,0,767,771,3,50,25,0,768,771,3,52,26,0,769,771, - 3,54,27,0,770,766,1,0,0,0,770,767,1,0,0,0,770,768,1,0,0,0,770,769,1,0, - 0,0,771,47,1,0,0,0,772,773,5,63,0,0,773,774,5,146,0,0,774,775,3,268,134, - 0,775,776,5,146,0,0,776,781,3,62,31,0,777,778,5,146,0,0,778,779,5,61, - 0,0,779,780,5,146,0,0,780,782,3,180,90,0,781,777,1,0,0,0,781,782,1,0, - 0,0,782,49,1,0,0,0,783,784,5,59,0,0,784,785,5,146,0,0,785,786,3,268,134, - 0,786,51,1,0,0,0,787,788,5,62,0,0,788,789,5,146,0,0,789,790,5,67,0,0, - 790,791,5,146,0,0,791,792,3,274,137,0,792,53,1,0,0,0,793,794,5,62,0,0, - 794,795,5,146,0,0,795,796,3,268,134,0,796,797,5,146,0,0,797,798,5,67, - 0,0,798,799,5,146,0,0,799,800,3,268,134,0,800,55,1,0,0,0,801,812,3,58, - 29,0,802,804,5,146,0,0,803,802,1,0,0,0,803,804,1,0,0,0,804,805,1,0,0, - 0,805,807,5,4,0,0,806,808,5,146,0,0,807,806,1,0,0,0,807,808,1,0,0,0,808, - 809,1,0,0,0,809,811,3,58,29,0,810,803,1,0,0,0,811,814,1,0,0,0,812,810, - 1,0,0,0,812,813,1,0,0,0,813,57,1,0,0,0,814,812,1,0,0,0,815,816,3,268, - 134,0,816,817,5,146,0,0,817,818,3,62,31,0,818,59,1,0,0,0,819,820,5,64, - 0,0,820,821,5,146,0,0,821,823,5,65,0,0,822,824,5,146,0,0,823,822,1,0, - 0,0,823,824,1,0,0,0,824,825,1,0,0,0,825,827,5,2,0,0,826,828,5,146,0,0, - 827,826,1,0,0,0,827,828,1,0,0,0,828,829,1,0,0,0,829,831,3,268,134,0,830, - 832,5,146,0,0,831,830,1,0,0,0,831,832,1,0,0,0,832,833,1,0,0,0,833,834, - 5,3,0,0,834,61,1,0,0,0,835,836,6,31,-1,0,836,888,3,276,138,0,837,839, - 5,81,0,0,838,840,5,146,0,0,839,838,1,0,0,0,839,840,1,0,0,0,840,841,1, - 0,0,0,841,843,5,2,0,0,842,844,5,146,0,0,843,842,1,0,0,0,843,844,1,0,0, - 0,844,845,1,0,0,0,845,847,3,56,28,0,846,848,5,146,0,0,847,846,1,0,0,0, - 847,848,1,0,0,0,848,849,1,0,0,0,849,850,5,3,0,0,850,888,1,0,0,0,851,853, - 3,276,138,0,852,854,5,146,0,0,853,852,1,0,0,0,853,854,1,0,0,0,854,855, - 1,0,0,0,855,857,5,2,0,0,856,858,5,146,0,0,857,856,1,0,0,0,857,858,1,0, - 0,0,858,859,1,0,0,0,859,861,3,56,28,0,860,862,5,146,0,0,861,860,1,0,0, - 0,861,862,1,0,0,0,862,863,1,0,0,0,863,864,5,3,0,0,864,888,1,0,0,0,865, - 867,3,276,138,0,866,868,5,146,0,0,867,866,1,0,0,0,867,868,1,0,0,0,868, - 869,1,0,0,0,869,871,5,2,0,0,870,872,5,146,0,0,871,870,1,0,0,0,871,872, - 1,0,0,0,872,873,1,0,0,0,873,875,3,62,31,0,874,876,5,146,0,0,875,874,1, - 0,0,0,875,876,1,0,0,0,876,877,1,0,0,0,877,879,5,4,0,0,878,880,5,146,0, - 0,879,878,1,0,0,0,879,880,1,0,0,0,880,881,1,0,0,0,881,883,3,62,31,0,882, - 884,5,146,0,0,883,882,1,0,0,0,883,884,1,0,0,0,884,885,1,0,0,0,885,886, - 5,3,0,0,886,888,1,0,0,0,887,835,1,0,0,0,887,837,1,0,0,0,887,851,1,0,0, - 0,887,865,1,0,0,0,888,893,1,0,0,0,889,890,10,4,0,0,890,892,3,64,32,0, - 891,889,1,0,0,0,892,895,1,0,0,0,893,891,1,0,0,0,893,894,1,0,0,0,894,63, - 1,0,0,0,895,893,1,0,0,0,896,900,3,66,33,0,897,899,3,66,33,0,898,897,1, - 0,0,0,899,902,1,0,0,0,900,898,1,0,0,0,900,901,1,0,0,0,901,65,1,0,0,0, - 902,900,1,0,0,0,903,905,5,6,0,0,904,906,3,270,135,0,905,904,1,0,0,0,905, - 906,1,0,0,0,906,907,1,0,0,0,907,908,5,7,0,0,908,67,1,0,0,0,909,912,3, - 70,35,0,910,912,3,72,36,0,911,909,1,0,0,0,911,910,1,0,0,0,912,69,1,0, - 0,0,913,914,5,68,0,0,914,71,1,0,0,0,915,916,5,69,0,0,916,73,1,0,0,0,917, - 918,5,70,0,0,918,919,5,146,0,0,919,932,5,71,0,0,920,921,5,70,0,0,921, - 922,5,146,0,0,922,923,5,71,0,0,923,924,5,146,0,0,924,925,5,72,0,0,925, - 926,5,146,0,0,926,932,5,73,0,0,927,932,5,75,0,0,928,932,5,76,0,0,929, - 932,5,77,0,0,930,932,5,78,0,0,931,917,1,0,0,0,931,920,1,0,0,0,931,927, - 1,0,0,0,931,928,1,0,0,0,931,929,1,0,0,0,931,930,1,0,0,0,932,75,1,0,0, - 0,933,936,3,78,39,0,934,936,3,80,40,0,935,933,1,0,0,0,935,934,1,0,0,0, - 936,77,1,0,0,0,937,938,5,83,0,0,938,939,5,146,0,0,939,940,5,80,0,0,940, - 943,5,146,0,0,941,944,5,132,0,0,942,944,3,260,130,0,943,941,1,0,0,0,943, - 942,1,0,0,0,944,79,1,0,0,0,945,946,5,79,0,0,946,947,5,146,0,0,947,948, - 3,260,130,0,948,81,1,0,0,0,949,950,3,84,42,0,950,83,1,0,0,0,951,958,3, - 88,44,0,952,954,5,146,0,0,953,952,1,0,0,0,953,954,1,0,0,0,954,955,1,0, - 0,0,955,957,3,86,43,0,956,953,1,0,0,0,957,960,1,0,0,0,958,956,1,0,0,0, - 958,959,1,0,0,0,959,973,1,0,0,0,960,958,1,0,0,0,961,963,3,122,61,0,962, - 964,5,146,0,0,963,962,1,0,0,0,963,964,1,0,0,0,964,966,1,0,0,0,965,961, - 1,0,0,0,966,967,1,0,0,0,967,965,1,0,0,0,967,968,1,0,0,0,968,969,1,0,0, - 0,969,970,3,88,44,0,970,971,6,42,-1,0,971,973,1,0,0,0,972,951,1,0,0,0, - 972,965,1,0,0,0,973,85,1,0,0,0,974,975,5,81,0,0,975,976,5,146,0,0,976, - 978,5,82,0,0,977,979,5,146,0,0,978,977,1,0,0,0,978,979,1,0,0,0,979,980, - 1,0,0,0,980,987,3,88,44,0,981,983,5,81,0,0,982,984,5,146,0,0,983,982, - 1,0,0,0,983,984,1,0,0,0,984,985,1,0,0,0,985,987,3,88,44,0,986,974,1,0, - 0,0,986,981,1,0,0,0,987,87,1,0,0,0,988,991,3,90,45,0,989,991,3,92,46, - 0,990,988,1,0,0,0,990,989,1,0,0,0,991,89,1,0,0,0,992,994,3,98,49,0,993, - 995,5,146,0,0,994,993,1,0,0,0,994,995,1,0,0,0,995,997,1,0,0,0,996,992, - 1,0,0,0,997,1000,1,0,0,0,998,996,1,0,0,0,998,999,1,0,0,0,999,1001,1,0, - 0,0,1000,998,1,0,0,0,1001,1038,3,122,61,0,1002,1004,3,98,49,0,1003,1005, - 5,146,0,0,1004,1003,1,0,0,0,1004,1005,1,0,0,0,1005,1007,1,0,0,0,1006, - 1002,1,0,0,0,1007,1010,1,0,0,0,1008,1006,1,0,0,0,1008,1009,1,0,0,0,1009, - 1011,1,0,0,0,1010,1008,1,0,0,0,1011,1018,3,96,48,0,1012,1014,5,146,0, - 0,1013,1012,1,0,0,0,1013,1014,1,0,0,0,1014,1015,1,0,0,0,1015,1017,3,96, - 48,0,1016,1013,1,0,0,0,1017,1020,1,0,0,0,1018,1016,1,0,0,0,1018,1019, - 1,0,0,0,1019,1025,1,0,0,0,1020,1018,1,0,0,0,1021,1023,5,146,0,0,1022, - 1021,1,0,0,0,1022,1023,1,0,0,0,1023,1024,1,0,0,0,1024,1026,3,122,61,0, - 1025,1022,1,0,0,0,1025,1026,1,0,0,0,1026,1038,1,0,0,0,1027,1029,3,98, - 49,0,1028,1030,5,146,0,0,1029,1028,1,0,0,0,1029,1030,1,0,0,0,1030,1032, - 1,0,0,0,1031,1027,1,0,0,0,1032,1033,1,0,0,0,1033,1031,1,0,0,0,1033,1034, - 1,0,0,0,1034,1035,1,0,0,0,1035,1036,6,45,-1,0,1036,1038,1,0,0,0,1037, - 998,1,0,0,0,1037,1008,1,0,0,0,1037,1031,1,0,0,0,1038,91,1,0,0,0,1039, - 1041,3,94,47,0,1040,1042,5,146,0,0,1041,1040,1,0,0,0,1041,1042,1,0,0, - 0,1042,1044,1,0,0,0,1043,1039,1,0,0,0,1044,1045,1,0,0,0,1045,1043,1,0, - 0,0,1045,1046,1,0,0,0,1046,1047,1,0,0,0,1047,1048,3,90,45,0,1048,93,1, - 0,0,0,1049,1051,3,98,49,0,1050,1052,5,146,0,0,1051,1050,1,0,0,0,1051, - 1052,1,0,0,0,1052,1054,1,0,0,0,1053,1049,1,0,0,0,1054,1057,1,0,0,0,1055, - 1053,1,0,0,0,1055,1056,1,0,0,0,1056,1064,1,0,0,0,1057,1055,1,0,0,0,1058, - 1060,3,96,48,0,1059,1061,5,146,0,0,1060,1059,1,0,0,0,1060,1061,1,0,0, - 0,1061,1063,1,0,0,0,1062,1058,1,0,0,0,1063,1066,1,0,0,0,1064,1062,1,0, - 0,0,1064,1065,1,0,0,0,1065,1067,1,0,0,0,1066,1064,1,0,0,0,1067,1068,3, - 120,60,0,1068,95,1,0,0,0,1069,1074,3,108,54,0,1070,1074,3,110,55,0,1071, - 1074,3,114,57,0,1072,1074,3,118,59,0,1073,1069,1,0,0,0,1073,1070,1,0, - 0,0,1073,1071,1,0,0,0,1073,1072,1,0,0,0,1074,97,1,0,0,0,1075,1080,3,104, - 52,0,1076,1080,3,106,53,0,1077,1080,3,102,51,0,1078,1080,3,100,50,0,1079, - 1075,1,0,0,0,1079,1076,1,0,0,0,1079,1077,1,0,0,0,1079,1078,1,0,0,0,1080, - 99,1,0,0,0,1081,1099,5,83,0,0,1082,1083,5,146,0,0,1083,1084,5,94,0,0, - 1084,1085,5,146,0,0,1085,1087,5,84,0,0,1086,1088,5,146,0,0,1087,1086, - 1,0,0,0,1087,1088,1,0,0,0,1088,1089,1,0,0,0,1089,1091,5,2,0,0,1090,1092, - 5,146,0,0,1091,1090,1,0,0,0,1091,1092,1,0,0,0,1092,1093,1,0,0,0,1093, - 1095,3,56,28,0,1094,1096,5,146,0,0,1095,1094,1,0,0,0,1095,1096,1,0,0, - 0,1096,1097,1,0,0,0,1097,1098,5,3,0,0,1098,1100,1,0,0,0,1099,1082,1,0, - 0,0,1099,1100,1,0,0,0,1100,1101,1,0,0,0,1101,1102,5,146,0,0,1102,1103, - 5,51,0,0,1103,1121,5,146,0,0,1104,1118,3,24,12,0,1105,1107,5,146,0,0, - 1106,1105,1,0,0,0,1106,1107,1,0,0,0,1107,1108,1,0,0,0,1108,1110,5,2,0, - 0,1109,1111,5,146,0,0,1110,1109,1,0,0,0,1110,1111,1,0,0,0,1111,1112,1, - 0,0,0,1112,1114,3,26,13,0,1113,1115,5,146,0,0,1114,1113,1,0,0,0,1114, - 1115,1,0,0,0,1115,1116,1,0,0,0,1116,1117,5,3,0,0,1117,1119,1,0,0,0,1118, - 1106,1,0,0,0,1118,1119,1,0,0,0,1119,1122,1,0,0,0,1120,1122,3,260,130, - 0,1121,1104,1,0,0,0,1121,1120,1,0,0,0,1122,1127,1,0,0,0,1123,1125,5,146, - 0,0,1124,1123,1,0,0,0,1124,1125,1,0,0,0,1125,1126,1,0,0,0,1126,1128,3, - 138,69,0,1127,1124,1,0,0,0,1127,1128,1,0,0,0,1128,101,1,0,0,0,1129,1130, - 5,46,0,0,1130,1131,5,146,0,0,1131,1136,3,242,121,0,1132,1134,5,146,0, - 0,1133,1132,1,0,0,0,1133,1134,1,0,0,0,1134,1135,1,0,0,0,1135,1137,3,138, - 69,0,1136,1133,1,0,0,0,1136,1137,1,0,0,0,1137,103,1,0,0,0,1138,1139,5, - 85,0,0,1139,1141,5,146,0,0,1140,1138,1,0,0,0,1140,1141,1,0,0,0,1141,1142, - 1,0,0,0,1142,1144,5,86,0,0,1143,1145,5,146,0,0,1144,1143,1,0,0,0,1144, - 1145,1,0,0,0,1145,1146,1,0,0,0,1146,1151,3,140,70,0,1147,1149,5,146,0, - 0,1148,1147,1,0,0,0,1148,1149,1,0,0,0,1149,1150,1,0,0,0,1150,1152,3,138, - 69,0,1151,1148,1,0,0,0,1151,1152,1,0,0,0,1152,105,1,0,0,0,1153,1155,5, - 87,0,0,1154,1156,5,146,0,0,1155,1154,1,0,0,0,1155,1156,1,0,0,0,1156,1157, - 1,0,0,0,1157,1158,3,180,90,0,1158,1159,5,146,0,0,1159,1160,5,98,0,0,1160, - 1161,5,146,0,0,1161,1162,3,260,130,0,1162,107,1,0,0,0,1163,1165,5,88, - 0,0,1164,1166,5,146,0,0,1165,1164,1,0,0,0,1165,1166,1,0,0,0,1166,1167, - 1,0,0,0,1167,1168,3,140,70,0,1168,109,1,0,0,0,1169,1171,5,89,0,0,1170, - 1172,5,146,0,0,1171,1170,1,0,0,0,1171,1172,1,0,0,0,1172,1173,1,0,0,0, - 1173,1178,3,140,70,0,1174,1175,5,146,0,0,1175,1177,3,112,56,0,1176,1174, - 1,0,0,0,1177,1180,1,0,0,0,1178,1176,1,0,0,0,1178,1179,1,0,0,0,1179,111, - 1,0,0,0,1180,1178,1,0,0,0,1181,1182,5,90,0,0,1182,1183,5,146,0,0,1183, - 1184,5,86,0,0,1184,1185,5,146,0,0,1185,1192,3,114,57,0,1186,1187,5,90, - 0,0,1187,1188,5,146,0,0,1188,1189,5,88,0,0,1189,1190,5,146,0,0,1190,1192, - 3,114,57,0,1191,1181,1,0,0,0,1191,1186,1,0,0,0,1192,113,1,0,0,0,1193, - 1195,5,91,0,0,1194,1196,5,146,0,0,1195,1194,1,0,0,0,1195,1196,1,0,0,0, - 1196,1197,1,0,0,0,1197,1208,3,116,58,0,1198,1200,5,146,0,0,1199,1198, - 1,0,0,0,1199,1200,1,0,0,0,1200,1201,1,0,0,0,1201,1203,5,4,0,0,1202,1204, - 5,146,0,0,1203,1202,1,0,0,0,1203,1204,1,0,0,0,1204,1205,1,0,0,0,1205, - 1207,3,116,58,0,1206,1199,1,0,0,0,1207,1210,1,0,0,0,1208,1206,1,0,0,0, - 1208,1209,1,0,0,0,1209,115,1,0,0,0,1210,1208,1,0,0,0,1211,1213,3,266, - 133,0,1212,1214,5,146,0,0,1213,1212,1,0,0,0,1213,1214,1,0,0,0,1214,1215, - 1,0,0,0,1215,1217,5,5,0,0,1216,1218,5,146,0,0,1217,1216,1,0,0,0,1217, - 1218,1,0,0,0,1218,1219,1,0,0,0,1219,1220,3,180,90,0,1220,117,1,0,0,0, - 1221,1222,5,92,0,0,1222,1224,5,146,0,0,1223,1221,1,0,0,0,1223,1224,1, - 0,0,0,1224,1225,1,0,0,0,1225,1227,5,93,0,0,1226,1228,5,146,0,0,1227,1226, - 1,0,0,0,1227,1228,1,0,0,0,1228,1229,1,0,0,0,1229,1240,3,180,90,0,1230, - 1232,5,146,0,0,1231,1230,1,0,0,0,1231,1232,1,0,0,0,1232,1233,1,0,0,0, - 1233,1235,5,4,0,0,1234,1236,5,146,0,0,1235,1234,1,0,0,0,1235,1236,1,0, - 0,0,1236,1237,1,0,0,0,1237,1239,3,180,90,0,1238,1231,1,0,0,0,1239,1242, - 1,0,0,0,1240,1238,1,0,0,0,1240,1241,1,0,0,0,1241,119,1,0,0,0,1242,1240, - 1,0,0,0,1243,1244,5,94,0,0,1244,1249,3,124,62,0,1245,1247,5,146,0,0,1246, - 1245,1,0,0,0,1246,1247,1,0,0,0,1247,1248,1,0,0,0,1248,1250,3,138,69,0, - 1249,1246,1,0,0,0,1249,1250,1,0,0,0,1250,121,1,0,0,0,1251,1252,5,95,0, - 0,1252,1253,3,124,62,0,1253,123,1,0,0,0,1254,1256,5,146,0,0,1255,1254, - 1,0,0,0,1255,1256,1,0,0,0,1256,1257,1,0,0,0,1257,1259,5,96,0,0,1258,1255, - 1,0,0,0,1258,1259,1,0,0,0,1259,1260,1,0,0,0,1260,1261,5,146,0,0,1261, - 1264,3,126,63,0,1262,1263,5,146,0,0,1263,1265,3,130,65,0,1264,1262,1, - 0,0,0,1264,1265,1,0,0,0,1265,1268,1,0,0,0,1266,1267,5,146,0,0,1267,1269, - 3,132,66,0,1268,1266,1,0,0,0,1268,1269,1,0,0,0,1269,1272,1,0,0,0,1270, - 1271,5,146,0,0,1271,1273,3,134,67,0,1272,1270,1,0,0,0,1272,1273,1,0,0, - 0,1273,125,1,0,0,0,1274,1285,5,97,0,0,1275,1277,5,146,0,0,1276,1275,1, - 0,0,0,1276,1277,1,0,0,0,1277,1278,1,0,0,0,1278,1280,5,4,0,0,1279,1281, - 5,146,0,0,1280,1279,1,0,0,0,1280,1281,1,0,0,0,1281,1282,1,0,0,0,1282, - 1284,3,128,64,0,1283,1276,1,0,0,0,1284,1287,1,0,0,0,1285,1283,1,0,0,0, - 1285,1286,1,0,0,0,1286,1303,1,0,0,0,1287,1285,1,0,0,0,1288,1299,3,128, - 64,0,1289,1291,5,146,0,0,1290,1289,1,0,0,0,1290,1291,1,0,0,0,1291,1292, - 1,0,0,0,1292,1294,5,4,0,0,1293,1295,5,146,0,0,1294,1293,1,0,0,0,1294, - 1295,1,0,0,0,1295,1296,1,0,0,0,1296,1298,3,128,64,0,1297,1290,1,0,0,0, - 1298,1301,1,0,0,0,1299,1297,1,0,0,0,1299,1300,1,0,0,0,1300,1303,1,0,0, - 0,1301,1299,1,0,0,0,1302,1274,1,0,0,0,1302,1288,1,0,0,0,1303,127,1,0, - 0,0,1304,1305,3,180,90,0,1305,1306,5,146,0,0,1306,1307,5,98,0,0,1307, - 1308,5,146,0,0,1308,1309,3,260,130,0,1309,1312,1,0,0,0,1310,1312,3,180, - 90,0,1311,1304,1,0,0,0,1311,1310,1,0,0,0,1312,129,1,0,0,0,1313,1314,5, - 99,0,0,1314,1315,5,146,0,0,1315,1316,5,100,0,0,1316,1317,5,146,0,0,1317, - 1325,3,136,68,0,1318,1320,5,4,0,0,1319,1321,5,146,0,0,1320,1319,1,0,0, - 0,1320,1321,1,0,0,0,1321,1322,1,0,0,0,1322,1324,3,136,68,0,1323,1318, - 1,0,0,0,1324,1327,1,0,0,0,1325,1323,1,0,0,0,1325,1326,1,0,0,0,1326,131, - 1,0,0,0,1327,1325,1,0,0,0,1328,1329,5,101,0,0,1329,1330,5,146,0,0,1330, - 1331,3,180,90,0,1331,133,1,0,0,0,1332,1333,5,102,0,0,1333,1334,5,146, - 0,0,1334,1335,3,180,90,0,1335,135,1,0,0,0,1336,1341,3,180,90,0,1337,1339, - 5,146,0,0,1338,1337,1,0,0,0,1338,1339,1,0,0,0,1339,1340,1,0,0,0,1340, - 1342,7,1,0,0,1341,1338,1,0,0,0,1341,1342,1,0,0,0,1342,137,1,0,0,0,1343, - 1344,5,107,0,0,1344,1345,5,146,0,0,1345,1346,3,180,90,0,1346,139,1,0, - 0,0,1347,1358,3,142,71,0,1348,1350,5,146,0,0,1349,1348,1,0,0,0,1349,1350, - 1,0,0,0,1350,1351,1,0,0,0,1351,1353,5,4,0,0,1352,1354,5,146,0,0,1353, - 1352,1,0,0,0,1353,1354,1,0,0,0,1354,1355,1,0,0,0,1355,1357,3,142,71,0, - 1356,1349,1,0,0,0,1357,1360,1,0,0,0,1358,1356,1,0,0,0,1358,1359,1,0,0, - 0,1359,141,1,0,0,0,1360,1358,1,0,0,0,1361,1363,3,260,130,0,1362,1364, - 5,146,0,0,1363,1362,1,0,0,0,1363,1364,1,0,0,0,1364,1365,1,0,0,0,1365, - 1367,5,5,0,0,1366,1368,5,146,0,0,1367,1366,1,0,0,0,1367,1368,1,0,0,0, - 1368,1369,1,0,0,0,1369,1370,3,144,72,0,1370,1373,1,0,0,0,1371,1373,3, - 144,72,0,1372,1361,1,0,0,0,1372,1371,1,0,0,0,1373,143,1,0,0,0,1374,1375, - 3,146,73,0,1375,145,1,0,0,0,1376,1383,3,148,74,0,1377,1379,5,146,0,0, - 1378,1377,1,0,0,0,1378,1379,1,0,0,0,1379,1380,1,0,0,0,1380,1382,3,150, - 75,0,1381,1378,1,0,0,0,1382,1385,1,0,0,0,1383,1381,1,0,0,0,1383,1384, - 1,0,0,0,1384,1391,1,0,0,0,1385,1383,1,0,0,0,1386,1387,5,2,0,0,1387,1388, - 3,146,73,0,1388,1389,5,3,0,0,1389,1391,1,0,0,0,1390,1376,1,0,0,0,1390, - 1386,1,0,0,0,1391,147,1,0,0,0,1392,1394,5,2,0,0,1393,1395,5,146,0,0,1394, - 1393,1,0,0,0,1394,1395,1,0,0,0,1395,1400,1,0,0,0,1396,1398,3,260,130, - 0,1397,1399,5,146,0,0,1398,1397,1,0,0,0,1398,1399,1,0,0,0,1399,1401,1, - 0,0,0,1400,1396,1,0,0,0,1400,1401,1,0,0,0,1401,1406,1,0,0,0,1402,1404, - 3,160,80,0,1403,1405,5,146,0,0,1404,1403,1,0,0,0,1404,1405,1,0,0,0,1405, - 1407,1,0,0,0,1406,1402,1,0,0,0,1406,1407,1,0,0,0,1407,1412,1,0,0,0,1408, - 1410,3,156,78,0,1409,1411,5,146,0,0,1410,1409,1,0,0,0,1410,1411,1,0,0, - 0,1411,1413,1,0,0,0,1412,1408,1,0,0,0,1412,1413,1,0,0,0,1413,1414,1,0, - 0,0,1414,1415,5,3,0,0,1415,149,1,0,0,0,1416,1418,3,152,76,0,1417,1419, - 5,146,0,0,1418,1417,1,0,0,0,1418,1419,1,0,0,0,1419,1420,1,0,0,0,1420, - 1421,3,148,74,0,1421,151,1,0,0,0,1422,1424,3,280,140,0,1423,1425,5,146, - 0,0,1424,1423,1,0,0,0,1424,1425,1,0,0,0,1425,1426,1,0,0,0,1426,1428,3, - 284,142,0,1427,1429,5,146,0,0,1428,1427,1,0,0,0,1428,1429,1,0,0,0,1429, - 1431,1,0,0,0,1430,1432,3,154,77,0,1431,1430,1,0,0,0,1431,1432,1,0,0,0, - 1432,1434,1,0,0,0,1433,1435,5,146,0,0,1434,1433,1,0,0,0,1434,1435,1,0, - 0,0,1435,1436,1,0,0,0,1436,1437,3,284,142,0,1437,1467,1,0,0,0,1438,1440, - 3,284,142,0,1439,1441,5,146,0,0,1440,1439,1,0,0,0,1440,1441,1,0,0,0,1441, - 1443,1,0,0,0,1442,1444,3,154,77,0,1443,1442,1,0,0,0,1443,1444,1,0,0,0, - 1444,1446,1,0,0,0,1445,1447,5,146,0,0,1446,1445,1,0,0,0,1446,1447,1,0, - 0,0,1447,1448,1,0,0,0,1448,1450,3,284,142,0,1449,1451,5,146,0,0,1450, - 1449,1,0,0,0,1450,1451,1,0,0,0,1451,1452,1,0,0,0,1452,1453,3,282,141, - 0,1453,1467,1,0,0,0,1454,1456,3,284,142,0,1455,1457,5,146,0,0,1456,1455, - 1,0,0,0,1456,1457,1,0,0,0,1457,1459,1,0,0,0,1458,1460,3,154,77,0,1459, - 1458,1,0,0,0,1459,1460,1,0,0,0,1460,1462,1,0,0,0,1461,1463,5,146,0,0, - 1462,1461,1,0,0,0,1462,1463,1,0,0,0,1463,1464,1,0,0,0,1464,1465,3,284, - 142,0,1465,1467,1,0,0,0,1466,1422,1,0,0,0,1466,1438,1,0,0,0,1466,1454, - 1,0,0,0,1467,153,1,0,0,0,1468,1470,5,6,0,0,1469,1471,5,146,0,0,1470,1469, - 1,0,0,0,1470,1471,1,0,0,0,1471,1476,1,0,0,0,1472,1474,3,260,130,0,1473, - 1475,5,146,0,0,1474,1473,1,0,0,0,1474,1475,1,0,0,0,1475,1477,1,0,0,0, - 1476,1472,1,0,0,0,1476,1477,1,0,0,0,1477,1482,1,0,0,0,1478,1480,3,158, - 79,0,1479,1481,5,146,0,0,1480,1479,1,0,0,0,1480,1481,1,0,0,0,1481,1483, - 1,0,0,0,1482,1478,1,0,0,0,1482,1483,1,0,0,0,1483,1488,1,0,0,0,1484,1486, - 3,164,82,0,1485,1487,5,146,0,0,1486,1485,1,0,0,0,1486,1487,1,0,0,0,1487, - 1489,1,0,0,0,1488,1484,1,0,0,0,1488,1489,1,0,0,0,1489,1494,1,0,0,0,1490, - 1492,3,156,78,0,1491,1493,5,146,0,0,1492,1491,1,0,0,0,1492,1493,1,0,0, - 0,1493,1495,1,0,0,0,1494,1490,1,0,0,0,1494,1495,1,0,0,0,1495,1496,1,0, - 0,0,1496,1497,5,7,0,0,1497,155,1,0,0,0,1498,1500,5,8,0,0,1499,1501,5, - 146,0,0,1500,1499,1,0,0,0,1500,1501,1,0,0,0,1501,1535,1,0,0,0,1502,1504, - 3,268,134,0,1503,1505,5,146,0,0,1504,1503,1,0,0,0,1504,1505,1,0,0,0,1505, - 1506,1,0,0,0,1506,1508,5,116,0,0,1507,1509,5,146,0,0,1508,1507,1,0,0, - 0,1508,1509,1,0,0,0,1509,1510,1,0,0,0,1510,1512,3,180,90,0,1511,1513, - 5,146,0,0,1512,1511,1,0,0,0,1512,1513,1,0,0,0,1513,1532,1,0,0,0,1514, - 1516,5,4,0,0,1515,1517,5,146,0,0,1516,1515,1,0,0,0,1516,1517,1,0,0,0, - 1517,1518,1,0,0,0,1518,1520,3,268,134,0,1519,1521,5,146,0,0,1520,1519, - 1,0,0,0,1520,1521,1,0,0,0,1521,1522,1,0,0,0,1522,1524,5,116,0,0,1523, - 1525,5,146,0,0,1524,1523,1,0,0,0,1524,1525,1,0,0,0,1525,1526,1,0,0,0, - 1526,1528,3,180,90,0,1527,1529,5,146,0,0,1528,1527,1,0,0,0,1528,1529, - 1,0,0,0,1529,1531,1,0,0,0,1530,1514,1,0,0,0,1531,1534,1,0,0,0,1532,1530, - 1,0,0,0,1532,1533,1,0,0,0,1533,1536,1,0,0,0,1534,1532,1,0,0,0,1535,1502, - 1,0,0,0,1535,1536,1,0,0,0,1536,1537,1,0,0,0,1537,1538,5,9,0,0,1538,157, - 1,0,0,0,1539,1541,5,116,0,0,1540,1542,5,146,0,0,1541,1540,1,0,0,0,1541, - 1542,1,0,0,0,1542,1543,1,0,0,0,1543,1557,3,178,89,0,1544,1546,5,146,0, - 0,1545,1544,1,0,0,0,1545,1546,1,0,0,0,1546,1547,1,0,0,0,1547,1549,5,10, - 0,0,1548,1550,5,116,0,0,1549,1548,1,0,0,0,1549,1550,1,0,0,0,1550,1552, - 1,0,0,0,1551,1553,5,146,0,0,1552,1551,1,0,0,0,1552,1553,1,0,0,0,1553, - 1554,1,0,0,0,1554,1556,3,178,89,0,1555,1545,1,0,0,0,1556,1559,1,0,0,0, - 1557,1555,1,0,0,0,1557,1558,1,0,0,0,1558,159,1,0,0,0,1559,1557,1,0,0, - 0,1560,1567,3,162,81,0,1561,1563,5,146,0,0,1562,1561,1,0,0,0,1562,1563, - 1,0,0,0,1563,1564,1,0,0,0,1564,1566,3,162,81,0,1565,1562,1,0,0,0,1566, - 1569,1,0,0,0,1567,1565,1,0,0,0,1567,1568,1,0,0,0,1568,161,1,0,0,0,1569, - 1567,1,0,0,0,1570,1572,5,116,0,0,1571,1573,5,146,0,0,1572,1571,1,0,0, - 0,1572,1573,1,0,0,0,1573,1574,1,0,0,0,1574,1575,3,176,88,0,1575,163,1, - 0,0,0,1576,1578,5,97,0,0,1577,1579,5,146,0,0,1578,1577,1,0,0,0,1578,1579, - 1,0,0,0,1579,1584,1,0,0,0,1580,1585,5,108,0,0,1581,1582,5,82,0,0,1582, - 1583,5,146,0,0,1583,1585,5,108,0,0,1584,1580,1,0,0,0,1584,1581,1,0,0, - 0,1584,1585,1,0,0,0,1585,1587,1,0,0,0,1586,1588,5,146,0,0,1587,1586,1, - 0,0,0,1587,1588,1,0,0,0,1588,1603,1,0,0,0,1589,1591,3,172,86,0,1590,1589, - 1,0,0,0,1590,1591,1,0,0,0,1591,1593,1,0,0,0,1592,1594,5,146,0,0,1593, - 1592,1,0,0,0,1593,1594,1,0,0,0,1594,1595,1,0,0,0,1595,1597,5,11,0,0,1596, - 1598,5,146,0,0,1597,1596,1,0,0,0,1597,1598,1,0,0,0,1598,1600,1,0,0,0, - 1599,1601,3,174,87,0,1600,1599,1,0,0,0,1600,1601,1,0,0,0,1601,1604,1, - 0,0,0,1602,1604,3,270,135,0,1603,1590,1,0,0,0,1603,1602,1,0,0,0,1603, - 1604,1,0,0,0,1604,1609,1,0,0,0,1605,1607,5,146,0,0,1606,1605,1,0,0,0, - 1606,1607,1,0,0,0,1607,1608,1,0,0,0,1608,1610,3,166,83,0,1609,1606,1, - 0,0,0,1609,1610,1,0,0,0,1610,165,1,0,0,0,1611,1613,5,2,0,0,1612,1614, - 5,146,0,0,1613,1612,1,0,0,0,1613,1614,1,0,0,0,1614,1615,1,0,0,0,1615, - 1617,3,260,130,0,1616,1618,5,146,0,0,1617,1616,1,0,0,0,1617,1618,1,0, - 0,0,1618,1619,1,0,0,0,1619,1621,5,4,0,0,1620,1622,5,146,0,0,1621,1620, - 1,0,0,0,1621,1622,1,0,0,0,1622,1623,1,0,0,0,1623,1632,3,260,130,0,1624, - 1626,5,146,0,0,1625,1624,1,0,0,0,1625,1626,1,0,0,0,1626,1627,1,0,0,0, - 1627,1629,5,10,0,0,1628,1630,5,146,0,0,1629,1628,1,0,0,0,1629,1630,1, - 0,0,0,1630,1631,1,0,0,0,1631,1633,3,138,69,0,1632,1625,1,0,0,0,1632,1633, - 1,0,0,0,1633,1653,1,0,0,0,1634,1636,5,146,0,0,1635,1634,1,0,0,0,1635, - 1636,1,0,0,0,1636,1637,1,0,0,0,1637,1639,5,10,0,0,1638,1640,5,146,0,0, - 1639,1638,1,0,0,0,1639,1640,1,0,0,0,1640,1641,1,0,0,0,1641,1643,3,170, - 85,0,1642,1644,5,146,0,0,1643,1642,1,0,0,0,1643,1644,1,0,0,0,1644,1645, - 1,0,0,0,1645,1647,5,4,0,0,1646,1648,5,146,0,0,1647,1646,1,0,0,0,1647, - 1648,1,0,0,0,1648,1649,1,0,0,0,1649,1651,3,168,84,0,1650,1652,5,146,0, - 0,1651,1650,1,0,0,0,1651,1652,1,0,0,0,1652,1654,1,0,0,0,1653,1635,1,0, - 0,0,1653,1654,1,0,0,0,1654,1655,1,0,0,0,1655,1656,5,3,0,0,1656,167,1, - 0,0,0,1657,1659,5,8,0,0,1658,1660,5,146,0,0,1659,1658,1,0,0,0,1659,1660, - 1,0,0,0,1660,1662,1,0,0,0,1661,1663,3,126,63,0,1662,1661,1,0,0,0,1662, - 1663,1,0,0,0,1663,1665,1,0,0,0,1664,1666,5,146,0,0,1665,1664,1,0,0,0, - 1665,1666,1,0,0,0,1666,1667,1,0,0,0,1667,1668,5,9,0,0,1668,169,1,0,0, - 0,1669,1671,5,8,0,0,1670,1672,5,146,0,0,1671,1670,1,0,0,0,1671,1672,1, - 0,0,0,1672,1674,1,0,0,0,1673,1675,3,126,63,0,1674,1673,1,0,0,0,1674,1675, - 1,0,0,0,1675,1677,1,0,0,0,1676,1678,5,146,0,0,1677,1676,1,0,0,0,1677, - 1678,1,0,0,0,1678,1679,1,0,0,0,1679,1680,5,9,0,0,1680,171,1,0,0,0,1681, - 1682,5,134,0,0,1682,173,1,0,0,0,1683,1684,5,134,0,0,1684,175,1,0,0,0, - 1685,1686,3,274,137,0,1686,177,1,0,0,0,1687,1688,3,274,137,0,1688,179, - 1,0,0,0,1689,1690,3,182,91,0,1690,181,1,0,0,0,1691,1698,3,184,92,0,1692, - 1693,5,146,0,0,1693,1694,5,109,0,0,1694,1695,5,146,0,0,1695,1697,3,184, - 92,0,1696,1692,1,0,0,0,1697,1700,1,0,0,0,1698,1696,1,0,0,0,1698,1699, - 1,0,0,0,1699,183,1,0,0,0,1700,1698,1,0,0,0,1701,1708,3,186,93,0,1702, - 1703,5,146,0,0,1703,1704,5,110,0,0,1704,1705,5,146,0,0,1705,1707,3,186, - 93,0,1706,1702,1,0,0,0,1707,1710,1,0,0,0,1708,1706,1,0,0,0,1708,1709, - 1,0,0,0,1709,185,1,0,0,0,1710,1708,1,0,0,0,1711,1718,3,188,94,0,1712, - 1713,5,146,0,0,1713,1714,5,111,0,0,1714,1715,5,146,0,0,1715,1717,3,188, - 94,0,1716,1712,1,0,0,0,1717,1720,1,0,0,0,1718,1716,1,0,0,0,1718,1719, - 1,0,0,0,1719,187,1,0,0,0,1720,1718,1,0,0,0,1721,1723,5,112,0,0,1722,1724, - 5,146,0,0,1723,1722,1,0,0,0,1723,1724,1,0,0,0,1724,1726,1,0,0,0,1725, - 1721,1,0,0,0,1726,1729,1,0,0,0,1727,1725,1,0,0,0,1727,1728,1,0,0,0,1728, - 1730,1,0,0,0,1729,1727,1,0,0,0,1730,1731,3,190,95,0,1731,189,1,0,0,0, - 1732,1742,3,194,97,0,1733,1735,5,146,0,0,1734,1733,1,0,0,0,1734,1735, - 1,0,0,0,1735,1736,1,0,0,0,1736,1738,3,192,96,0,1737,1739,5,146,0,0,1738, - 1737,1,0,0,0,1738,1739,1,0,0,0,1739,1740,1,0,0,0,1740,1741,3,194,97,0, - 1741,1743,1,0,0,0,1742,1734,1,0,0,0,1742,1743,1,0,0,0,1743,1781,1,0,0, - 0,1744,1746,3,194,97,0,1745,1747,5,146,0,0,1746,1745,1,0,0,0,1746,1747, - 1,0,0,0,1747,1748,1,0,0,0,1748,1750,5,113,0,0,1749,1751,5,146,0,0,1750, - 1749,1,0,0,0,1750,1751,1,0,0,0,1751,1752,1,0,0,0,1752,1753,3,194,97,0, - 1753,1754,1,0,0,0,1754,1755,6,95,-1,0,1755,1781,1,0,0,0,1756,1758,3,194, - 97,0,1757,1759,5,146,0,0,1758,1757,1,0,0,0,1758,1759,1,0,0,0,1759,1760, - 1,0,0,0,1760,1762,3,192,96,0,1761,1763,5,146,0,0,1762,1761,1,0,0,0,1762, - 1763,1,0,0,0,1763,1764,1,0,0,0,1764,1774,3,194,97,0,1765,1767,5,146,0, - 0,1766,1765,1,0,0,0,1766,1767,1,0,0,0,1767,1768,1,0,0,0,1768,1770,3,192, - 96,0,1769,1771,5,146,0,0,1770,1769,1,0,0,0,1770,1771,1,0,0,0,1771,1772, - 1,0,0,0,1772,1773,3,194,97,0,1773,1775,1,0,0,0,1774,1766,1,0,0,0,1775, - 1776,1,0,0,0,1776,1774,1,0,0,0,1776,1777,1,0,0,0,1777,1778,1,0,0,0,1778, - 1779,6,95,-1,0,1779,1781,1,0,0,0,1780,1732,1,0,0,0,1780,1744,1,0,0,0, - 1780,1756,1,0,0,0,1781,191,1,0,0,0,1782,1783,7,2,0,0,1783,193,1,0,0,0, - 1784,1795,3,196,98,0,1785,1787,5,146,0,0,1786,1785,1,0,0,0,1786,1787, - 1,0,0,0,1787,1788,1,0,0,0,1788,1790,5,10,0,0,1789,1791,5,146,0,0,1790, - 1789,1,0,0,0,1790,1791,1,0,0,0,1791,1792,1,0,0,0,1792,1794,3,196,98,0, - 1793,1786,1,0,0,0,1794,1797,1,0,0,0,1795,1793,1,0,0,0,1795,1796,1,0,0, - 0,1796,195,1,0,0,0,1797,1795,1,0,0,0,1798,1809,3,198,99,0,1799,1801,5, - 146,0,0,1800,1799,1,0,0,0,1800,1801,1,0,0,0,1801,1802,1,0,0,0,1802,1804, - 5,17,0,0,1803,1805,5,146,0,0,1804,1803,1,0,0,0,1804,1805,1,0,0,0,1805, - 1806,1,0,0,0,1806,1808,3,198,99,0,1807,1800,1,0,0,0,1808,1811,1,0,0,0, - 1809,1807,1,0,0,0,1809,1810,1,0,0,0,1810,197,1,0,0,0,1811,1809,1,0,0, - 0,1812,1824,3,202,101,0,1813,1815,5,146,0,0,1814,1813,1,0,0,0,1814,1815, - 1,0,0,0,1815,1816,1,0,0,0,1816,1818,3,200,100,0,1817,1819,5,146,0,0,1818, - 1817,1,0,0,0,1818,1819,1,0,0,0,1819,1820,1,0,0,0,1820,1821,3,202,101, - 0,1821,1823,1,0,0,0,1822,1814,1,0,0,0,1823,1826,1,0,0,0,1824,1822,1,0, - 0,0,1824,1825,1,0,0,0,1825,199,1,0,0,0,1826,1824,1,0,0,0,1827,1828,7, - 3,0,0,1828,201,1,0,0,0,1829,1841,3,206,103,0,1830,1832,5,146,0,0,1831, - 1830,1,0,0,0,1831,1832,1,0,0,0,1832,1833,1,0,0,0,1833,1835,3,204,102, - 0,1834,1836,5,146,0,0,1835,1834,1,0,0,0,1835,1836,1,0,0,0,1836,1837,1, - 0,0,0,1837,1838,3,206,103,0,1838,1840,1,0,0,0,1839,1831,1,0,0,0,1840, - 1843,1,0,0,0,1841,1839,1,0,0,0,1841,1842,1,0,0,0,1842,203,1,0,0,0,1843, - 1841,1,0,0,0,1844,1845,7,4,0,0,1845,205,1,0,0,0,1846,1858,3,210,105,0, - 1847,1849,5,146,0,0,1848,1847,1,0,0,0,1848,1849,1,0,0,0,1849,1850,1,0, - 0,0,1850,1852,3,208,104,0,1851,1853,5,146,0,0,1852,1851,1,0,0,0,1852, - 1853,1,0,0,0,1853,1854,1,0,0,0,1854,1855,3,210,105,0,1855,1857,1,0,0, - 0,1856,1848,1,0,0,0,1857,1860,1,0,0,0,1858,1856,1,0,0,0,1858,1859,1,0, - 0,0,1859,207,1,0,0,0,1860,1858,1,0,0,0,1861,1862,7,5,0,0,1862,209,1,0, - 0,0,1863,1874,3,212,106,0,1864,1866,5,146,0,0,1865,1864,1,0,0,0,1865, - 1866,1,0,0,0,1866,1867,1,0,0,0,1867,1869,5,23,0,0,1868,1870,5,146,0,0, - 1869,1868,1,0,0,0,1869,1870,1,0,0,0,1870,1871,1,0,0,0,1871,1873,3,212, - 106,0,1872,1865,1,0,0,0,1873,1876,1,0,0,0,1874,1872,1,0,0,0,1874,1875, - 1,0,0,0,1875,211,1,0,0,0,1876,1874,1,0,0,0,1877,1879,5,114,0,0,1878,1880, - 5,146,0,0,1879,1878,1,0,0,0,1879,1880,1,0,0,0,1880,1882,1,0,0,0,1881, - 1877,1,0,0,0,1882,1885,1,0,0,0,1883,1881,1,0,0,0,1883,1884,1,0,0,0,1884, - 1886,1,0,0,0,1885,1883,1,0,0,0,1886,1891,3,214,107,0,1887,1889,5,146, - 0,0,1888,1887,1,0,0,0,1888,1889,1,0,0,0,1889,1890,1,0,0,0,1890,1892,5, - 115,0,0,1891,1888,1,0,0,0,1891,1892,1,0,0,0,1892,213,1,0,0,0,1893,1901, - 3,224,112,0,1894,1902,3,218,109,0,1895,1897,3,216,108,0,1896,1895,1,0, - 0,0,1897,1898,1,0,0,0,1898,1896,1,0,0,0,1898,1899,1,0,0,0,1899,1902,1, - 0,0,0,1900,1902,3,222,111,0,1901,1894,1,0,0,0,1901,1896,1,0,0,0,1901, - 1900,1,0,0,0,1901,1902,1,0,0,0,1902,215,1,0,0,0,1903,1904,5,146,0,0,1904, - 1906,5,117,0,0,1905,1907,5,146,0,0,1906,1905,1,0,0,0,1906,1907,1,0,0, - 0,1907,1908,1,0,0,0,1908,1923,3,224,112,0,1909,1910,5,6,0,0,1910,1911, - 3,180,90,0,1911,1912,5,7,0,0,1912,1923,1,0,0,0,1913,1915,5,6,0,0,1914, - 1916,3,180,90,0,1915,1914,1,0,0,0,1915,1916,1,0,0,0,1916,1917,1,0,0,0, - 1917,1919,5,116,0,0,1918,1920,3,180,90,0,1919,1918,1,0,0,0,1919,1920, - 1,0,0,0,1920,1921,1,0,0,0,1921,1923,5,7,0,0,1922,1903,1,0,0,0,1922,1909, - 1,0,0,0,1922,1913,1,0,0,0,1923,217,1,0,0,0,1924,1936,3,220,110,0,1925, - 1926,5,146,0,0,1926,1927,5,118,0,0,1927,1928,5,146,0,0,1928,1936,5,94, - 0,0,1929,1930,5,146,0,0,1930,1931,5,119,0,0,1931,1932,5,146,0,0,1932, - 1936,5,94,0,0,1933,1934,5,146,0,0,1934,1936,5,120,0,0,1935,1924,1,0,0, - 0,1935,1925,1,0,0,0,1935,1929,1,0,0,0,1935,1933,1,0,0,0,1936,1938,1,0, - 0,0,1937,1939,5,146,0,0,1938,1937,1,0,0,0,1938,1939,1,0,0,0,1939,1940, - 1,0,0,0,1940,1941,3,224,112,0,1941,219,1,0,0,0,1942,1944,5,146,0,0,1943, - 1942,1,0,0,0,1943,1944,1,0,0,0,1944,1945,1,0,0,0,1945,1946,5,24,0,0,1946, - 221,1,0,0,0,1947,1948,5,146,0,0,1948,1949,5,121,0,0,1949,1950,5,146,0, - 0,1950,1958,5,122,0,0,1951,1952,5,146,0,0,1952,1953,5,121,0,0,1953,1954, - 5,146,0,0,1954,1955,5,112,0,0,1955,1956,5,146,0,0,1956,1958,5,122,0,0, - 1957,1947,1,0,0,0,1957,1951,1,0,0,0,1958,223,1,0,0,0,1959,1966,3,226, - 113,0,1960,1962,5,146,0,0,1961,1960,1,0,0,0,1961,1962,1,0,0,0,1962,1963, - 1,0,0,0,1963,1965,3,254,127,0,1964,1961,1,0,0,0,1965,1968,1,0,0,0,1966, - 1964,1,0,0,0,1966,1967,1,0,0,0,1967,225,1,0,0,0,1968,1966,1,0,0,0,1969, - 1979,3,228,114,0,1970,1979,3,264,132,0,1971,1979,3,256,128,0,1972,1979, - 3,240,120,0,1973,1979,3,242,121,0,1974,1979,3,248,124,0,1975,1979,3,250, - 125,0,1976,1979,3,252,126,0,1977,1979,3,260,130,0,1978,1969,1,0,0,0,1978, - 1970,1,0,0,0,1978,1971,1,0,0,0,1978,1972,1,0,0,0,1978,1973,1,0,0,0,1978, - 1974,1,0,0,0,1978,1975,1,0,0,0,1978,1976,1,0,0,0,1978,1977,1,0,0,0,1979, - 227,1,0,0,0,1980,1987,3,262,131,0,1981,1987,5,132,0,0,1982,1987,3,230, - 115,0,1983,1987,5,122,0,0,1984,1987,3,232,116,0,1985,1987,3,236,118,0, - 1986,1980,1,0,0,0,1986,1981,1,0,0,0,1986,1982,1,0,0,0,1986,1983,1,0,0, - 0,1986,1984,1,0,0,0,1986,1985,1,0,0,0,1987,229,1,0,0,0,1988,1989,7,6, - 0,0,1989,231,1,0,0,0,1990,1992,5,6,0,0,1991,1993,5,146,0,0,1992,1991, - 1,0,0,0,1992,1993,1,0,0,0,1993,2007,1,0,0,0,1994,1996,3,180,90,0,1995, - 1997,5,146,0,0,1996,1995,1,0,0,0,1996,1997,1,0,0,0,1997,2004,1,0,0,0, - 1998,2000,3,234,117,0,1999,2001,5,146,0,0,2000,1999,1,0,0,0,2000,2001, - 1,0,0,0,2001,2003,1,0,0,0,2002,1998,1,0,0,0,2003,2006,1,0,0,0,2004,2002, - 1,0,0,0,2004,2005,1,0,0,0,2005,2008,1,0,0,0,2006,2004,1,0,0,0,2007,1994, - 1,0,0,0,2007,2008,1,0,0,0,2008,2009,1,0,0,0,2009,2010,5,7,0,0,2010,233, - 1,0,0,0,2011,2013,5,4,0,0,2012,2014,5,146,0,0,2013,2012,1,0,0,0,2013, - 2014,1,0,0,0,2014,2016,1,0,0,0,2015,2017,3,180,90,0,2016,2015,1,0,0,0, - 2016,2017,1,0,0,0,2017,235,1,0,0,0,2018,2020,5,8,0,0,2019,2021,5,146, - 0,0,2020,2019,1,0,0,0,2020,2021,1,0,0,0,2021,2022,1,0,0,0,2022,2024,3, - 238,119,0,2023,2025,5,146,0,0,2024,2023,1,0,0,0,2024,2025,1,0,0,0,2025, - 2036,1,0,0,0,2026,2028,5,4,0,0,2027,2029,5,146,0,0,2028,2027,1,0,0,0, - 2028,2029,1,0,0,0,2029,2030,1,0,0,0,2030,2032,3,238,119,0,2031,2033,5, - 146,0,0,2032,2031,1,0,0,0,2032,2033,1,0,0,0,2033,2035,1,0,0,0,2034,2026, - 1,0,0,0,2035,2038,1,0,0,0,2036,2034,1,0,0,0,2036,2037,1,0,0,0,2037,2039, - 1,0,0,0,2038,2036,1,0,0,0,2039,2040,5,9,0,0,2040,237,1,0,0,0,2041,2044, - 3,276,138,0,2042,2044,5,132,0,0,2043,2041,1,0,0,0,2043,2042,1,0,0,0,2044, - 2046,1,0,0,0,2045,2047,5,146,0,0,2046,2045,1,0,0,0,2046,2047,1,0,0,0, - 2047,2048,1,0,0,0,2048,2050,5,116,0,0,2049,2051,5,146,0,0,2050,2049,1, - 0,0,0,2050,2051,1,0,0,0,2051,2052,1,0,0,0,2052,2053,3,180,90,0,2053,239, - 1,0,0,0,2054,2056,5,2,0,0,2055,2057,5,146,0,0,2056,2055,1,0,0,0,2056, - 2057,1,0,0,0,2057,2058,1,0,0,0,2058,2060,3,180,90,0,2059,2061,5,146,0, - 0,2060,2059,1,0,0,0,2060,2061,1,0,0,0,2061,2062,1,0,0,0,2062,2063,5,3, - 0,0,2063,241,1,0,0,0,2064,2066,5,125,0,0,2065,2067,5,146,0,0,2066,2065, - 1,0,0,0,2066,2067,1,0,0,0,2067,2068,1,0,0,0,2068,2070,5,2,0,0,2069,2071, - 5,146,0,0,2070,2069,1,0,0,0,2070,2071,1,0,0,0,2071,2072,1,0,0,0,2072, - 2074,5,97,0,0,2073,2075,5,146,0,0,2074,2073,1,0,0,0,2074,2075,1,0,0,0, - 2075,2076,1,0,0,0,2076,2113,5,3,0,0,2077,2079,3,244,122,0,2078,2080,5, - 146,0,0,2079,2078,1,0,0,0,2079,2080,1,0,0,0,2080,2081,1,0,0,0,2081,2083, - 5,2,0,0,2082,2084,5,146,0,0,2083,2082,1,0,0,0,2083,2084,1,0,0,0,2084, - 2089,1,0,0,0,2085,2087,5,96,0,0,2086,2088,5,146,0,0,2087,2086,1,0,0,0, - 2087,2088,1,0,0,0,2088,2090,1,0,0,0,2089,2085,1,0,0,0,2089,2090,1,0,0, - 0,2090,2108,1,0,0,0,2091,2093,3,246,123,0,2092,2094,5,146,0,0,2093,2092, - 1,0,0,0,2093,2094,1,0,0,0,2094,2105,1,0,0,0,2095,2097,5,4,0,0,2096,2098, - 5,146,0,0,2097,2096,1,0,0,0,2097,2098,1,0,0,0,2098,2099,1,0,0,0,2099, - 2101,3,246,123,0,2100,2102,5,146,0,0,2101,2100,1,0,0,0,2101,2102,1,0, - 0,0,2102,2104,1,0,0,0,2103,2095,1,0,0,0,2104,2107,1,0,0,0,2105,2103,1, - 0,0,0,2105,2106,1,0,0,0,2106,2109,1,0,0,0,2107,2105,1,0,0,0,2108,2091, - 1,0,0,0,2108,2109,1,0,0,0,2109,2110,1,0,0,0,2110,2111,5,3,0,0,2111,2113, - 1,0,0,0,2112,2064,1,0,0,0,2112,2077,1,0,0,0,2113,243,1,0,0,0,2114,2115, - 3,276,138,0,2115,245,1,0,0,0,2116,2118,3,276,138,0,2117,2119,5,146,0, - 0,2118,2117,1,0,0,0,2118,2119,1,0,0,0,2119,2120,1,0,0,0,2120,2121,5,116, - 0,0,2121,2123,5,5,0,0,2122,2124,5,146,0,0,2123,2122,1,0,0,0,2123,2124, - 1,0,0,0,2124,2126,1,0,0,0,2125,2116,1,0,0,0,2125,2126,1,0,0,0,2126,2127, - 1,0,0,0,2127,2128,3,180,90,0,2128,247,1,0,0,0,2129,2134,3,148,74,0,2130, - 2132,5,146,0,0,2131,2130,1,0,0,0,2131,2132,1,0,0,0,2132,2133,1,0,0,0, - 2133,2135,3,150,75,0,2134,2131,1,0,0,0,2135,2136,1,0,0,0,2136,2134,1, - 0,0,0,2136,2137,1,0,0,0,2137,249,1,0,0,0,2138,2140,5,126,0,0,2139,2141, - 5,146,0,0,2140,2139,1,0,0,0,2140,2141,1,0,0,0,2141,2142,1,0,0,0,2142, - 2144,5,8,0,0,2143,2145,5,146,0,0,2144,2143,1,0,0,0,2144,2145,1,0,0,0, - 2145,2146,1,0,0,0,2146,2148,5,86,0,0,2147,2149,5,146,0,0,2148,2147,1, - 0,0,0,2148,2149,1,0,0,0,2149,2150,1,0,0,0,2150,2155,3,140,70,0,2151,2153, - 5,146,0,0,2152,2151,1,0,0,0,2152,2153,1,0,0,0,2153,2154,1,0,0,0,2154, - 2156,3,138,69,0,2155,2152,1,0,0,0,2155,2156,1,0,0,0,2156,2158,1,0,0,0, - 2157,2159,5,146,0,0,2158,2157,1,0,0,0,2158,2159,1,0,0,0,2159,2160,1,0, - 0,0,2160,2161,5,9,0,0,2161,251,1,0,0,0,2162,2164,5,125,0,0,2163,2165, - 5,146,0,0,2164,2163,1,0,0,0,2164,2165,1,0,0,0,2165,2166,1,0,0,0,2166, - 2168,5,8,0,0,2167,2169,5,146,0,0,2168,2167,1,0,0,0,2168,2169,1,0,0,0, - 2169,2170,1,0,0,0,2170,2172,5,86,0,0,2171,2173,5,146,0,0,2172,2171,1, - 0,0,0,2172,2173,1,0,0,0,2173,2174,1,0,0,0,2174,2179,3,140,70,0,2175,2177, - 5,146,0,0,2176,2175,1,0,0,0,2176,2177,1,0,0,0,2177,2178,1,0,0,0,2178, - 2180,3,138,69,0,2179,2176,1,0,0,0,2179,2180,1,0,0,0,2180,2182,1,0,0,0, - 2181,2183,5,146,0,0,2182,2181,1,0,0,0,2182,2183,1,0,0,0,2183,2184,1,0, - 0,0,2184,2185,5,9,0,0,2185,253,1,0,0,0,2186,2188,5,25,0,0,2187,2189,5, - 146,0,0,2188,2187,1,0,0,0,2188,2189,1,0,0,0,2189,2192,1,0,0,0,2190,2193, - 3,268,134,0,2191,2193,5,97,0,0,2192,2190,1,0,0,0,2192,2191,1,0,0,0,2193, - 255,1,0,0,0,2194,2199,5,127,0,0,2195,2197,5,146,0,0,2196,2195,1,0,0,0, - 2196,2197,1,0,0,0,2197,2198,1,0,0,0,2198,2200,3,258,129,0,2199,2196,1, - 0,0,0,2200,2201,1,0,0,0,2201,2199,1,0,0,0,2201,2202,1,0,0,0,2202,2217, - 1,0,0,0,2203,2205,5,127,0,0,2204,2206,5,146,0,0,2205,2204,1,0,0,0,2205, - 2206,1,0,0,0,2206,2207,1,0,0,0,2207,2212,3,180,90,0,2208,2210,5,146,0, - 0,2209,2208,1,0,0,0,2209,2210,1,0,0,0,2210,2211,1,0,0,0,2211,2213,3,258, - 129,0,2212,2209,1,0,0,0,2213,2214,1,0,0,0,2214,2212,1,0,0,0,2214,2215, - 1,0,0,0,2215,2217,1,0,0,0,2216,2194,1,0,0,0,2216,2203,1,0,0,0,2217,2226, - 1,0,0,0,2218,2220,5,146,0,0,2219,2218,1,0,0,0,2219,2220,1,0,0,0,2220, - 2221,1,0,0,0,2221,2223,5,128,0,0,2222,2224,5,146,0,0,2223,2222,1,0,0, - 0,2223,2224,1,0,0,0,2224,2225,1,0,0,0,2225,2227,3,180,90,0,2226,2219, - 1,0,0,0,2226,2227,1,0,0,0,2227,2229,1,0,0,0,2228,2230,5,146,0,0,2229, - 2228,1,0,0,0,2229,2230,1,0,0,0,2230,2231,1,0,0,0,2231,2232,5,129,0,0, - 2232,257,1,0,0,0,2233,2235,5,130,0,0,2234,2236,5,146,0,0,2235,2234,1, - 0,0,0,2235,2236,1,0,0,0,2236,2237,1,0,0,0,2237,2239,3,180,90,0,2238,2240, - 5,146,0,0,2239,2238,1,0,0,0,2239,2240,1,0,0,0,2240,2241,1,0,0,0,2241, - 2243,5,131,0,0,2242,2244,5,146,0,0,2243,2242,1,0,0,0,2243,2244,1,0,0, - 0,2244,2245,1,0,0,0,2245,2246,3,180,90,0,2246,259,1,0,0,0,2247,2248,3, - 276,138,0,2248,261,1,0,0,0,2249,2252,3,272,136,0,2250,2252,3,270,135, - 0,2251,2249,1,0,0,0,2251,2250,1,0,0,0,2252,263,1,0,0,0,2253,2256,5,26, - 0,0,2254,2257,3,276,138,0,2255,2257,5,134,0,0,2256,2254,1,0,0,0,2256, - 2255,1,0,0,0,2257,265,1,0,0,0,2258,2260,3,226,113,0,2259,2261,5,146,0, - 0,2260,2259,1,0,0,0,2260,2261,1,0,0,0,2261,2262,1,0,0,0,2262,2263,3,254, - 127,0,2263,267,1,0,0,0,2264,2265,3,274,137,0,2265,269,1,0,0,0,2266,2267, - 5,134,0,0,2267,271,1,0,0,0,2268,2269,5,141,0,0,2269,273,1,0,0,0,2270, - 2271,3,276,138,0,2271,275,1,0,0,0,2272,2278,5,142,0,0,2273,2274,5,145, - 0,0,2274,2278,6,138,-1,0,2275,2278,5,135,0,0,2276,2278,3,278,139,0,2277, - 2272,1,0,0,0,2277,2273,1,0,0,0,2277,2275,1,0,0,0,2277,2276,1,0,0,0,2278, - 277,1,0,0,0,2279,2280,7,7,0,0,2280,279,1,0,0,0,2281,2282,7,8,0,0,2282, - 281,1,0,0,0,2283,2284,7,9,0,0,2284,283,1,0,0,0,2285,2286,7,10,0,0,2286, - 285,1,0,0,0,399,287,290,293,297,300,303,318,324,328,332,336,339,345,348, - 352,356,360,364,368,373,384,388,392,397,410,414,422,426,430,434,442,446, - 450,454,460,464,486,490,493,496,499,502,506,511,515,525,529,534,539,544, - 550,554,558,563,570,574,578,581,585,589,594,599,603,613,623,627,631,635, - 640,652,656,660,664,668,670,674,678,680,694,698,702,706,711,714,718,722, - 724,728,732,734,770,781,803,807,812,823,827,831,839,843,847,853,857,861, - 867,871,875,879,883,887,893,900,905,911,931,935,943,953,958,963,967,972, - 978,983,986,990,994,998,1004,1008,1013,1018,1022,1025,1029,1033,1037, - 1041,1045,1051,1055,1060,1064,1073,1079,1087,1091,1095,1099,1106,1110, - 1114,1118,1121,1124,1127,1133,1136,1140,1144,1148,1151,1155,1165,1171, - 1178,1191,1195,1199,1203,1208,1213,1217,1223,1227,1231,1235,1240,1246, - 1249,1255,1258,1264,1268,1272,1276,1280,1285,1290,1294,1299,1302,1311, - 1320,1325,1338,1341,1349,1353,1358,1363,1367,1372,1378,1383,1390,1394, - 1398,1400,1404,1406,1410,1412,1418,1424,1428,1431,1434,1440,1443,1446, - 1450,1456,1459,1462,1466,1470,1474,1476,1480,1482,1486,1488,1492,1494, - 1500,1504,1508,1512,1516,1520,1524,1528,1532,1535,1541,1545,1549,1552, - 1557,1562,1567,1572,1578,1584,1587,1590,1593,1597,1600,1603,1606,1609, - 1613,1617,1621,1625,1629,1632,1635,1639,1643,1647,1651,1653,1659,1662, - 1665,1671,1674,1677,1698,1708,1718,1723,1727,1734,1738,1742,1746,1750, - 1758,1762,1766,1770,1776,1780,1786,1790,1795,1800,1804,1809,1814,1818, - 1824,1831,1835,1841,1848,1852,1858,1865,1869,1874,1879,1883,1888,1891, - 1898,1901,1906,1915,1919,1922,1935,1938,1943,1957,1961,1966,1978,1986, - 1992,1996,2000,2004,2007,2013,2016,2020,2024,2028,2032,2036,2043,2046, - 2050,2056,2060,2066,2070,2074,2079,2083,2087,2089,2093,2097,2101,2105, - 2108,2112,2118,2123,2125,2131,2136,2140,2144,2148,2152,2155,2158,2164, - 2168,2172,2176,2179,2182,2188,2192,2196,2201,2205,2209,2214,2216,2219, - 2223,2226,2229,2235,2239,2243,2251,2256,2260,2277 + 278,280,282,284,286,0,11,2,0,56,56,58,58,1,0,103,106,2,0,5,5,12,16,1, + 0,18,19,2,0,20,20,114,114,2,0,21,22,97,97,1,0,123,124,7,0,47,47,53,55, + 66,66,70,70,117,117,125,125,129,129,2,0,13,13,27,30,2,0,15,15,31,34,2, + 0,35,45,114,114,2606,0,288,1,0,0,0,2,308,1,0,0,0,4,331,1,0,0,0,6,333, + 1,0,0,0,8,375,1,0,0,0,10,389,1,0,0,0,12,419,1,0,0,0,14,449,1,0,0,0,16, + 469,1,0,0,0,18,481,1,0,0,0,20,493,1,0,0,0,22,536,1,0,0,0,24,550,1,0,0, + 0,26,594,1,0,0,0,28,596,1,0,0,0,30,610,1,0,0,0,32,626,1,0,0,0,34,628, + 1,0,0,0,36,657,1,0,0,0,38,697,1,0,0,0,40,751,1,0,0,0,42,759,1,0,0,0,44, + 765,1,0,0,0,46,771,1,0,0,0,48,783,1,0,0,0,50,785,1,0,0,0,52,796,1,0,0, + 0,54,800,1,0,0,0,56,806,1,0,0,0,58,814,1,0,0,0,60,828,1,0,0,0,62,832, + 1,0,0,0,64,900,1,0,0,0,66,909,1,0,0,0,68,916,1,0,0,0,70,924,1,0,0,0,72, + 926,1,0,0,0,74,928,1,0,0,0,76,944,1,0,0,0,78,948,1,0,0,0,80,950,1,0,0, + 0,82,958,1,0,0,0,84,962,1,0,0,0,86,985,1,0,0,0,88,999,1,0,0,0,90,1003, + 1,0,0,0,92,1050,1,0,0,0,94,1056,1,0,0,0,96,1068,1,0,0,0,98,1086,1,0,0, + 0,100,1092,1,0,0,0,102,1094,1,0,0,0,104,1142,1,0,0,0,106,1153,1,0,0,0, + 108,1166,1,0,0,0,110,1176,1,0,0,0,112,1182,1,0,0,0,114,1204,1,0,0,0,116, + 1206,1,0,0,0,118,1224,1,0,0,0,120,1236,1,0,0,0,122,1256,1,0,0,0,124,1264, + 1,0,0,0,126,1271,1,0,0,0,128,1315,1,0,0,0,130,1324,1,0,0,0,132,1326,1, + 0,0,0,134,1341,1,0,0,0,136,1345,1,0,0,0,138,1349,1,0,0,0,140,1356,1,0, + 0,0,142,1360,1,0,0,0,144,1385,1,0,0,0,146,1387,1,0,0,0,148,1403,1,0,0, + 0,150,1405,1,0,0,0,152,1429,1,0,0,0,154,1479,1,0,0,0,156,1481,1,0,0,0, + 158,1511,1,0,0,0,160,1552,1,0,0,0,162,1573,1,0,0,0,164,1583,1,0,0,0,166, + 1589,1,0,0,0,168,1624,1,0,0,0,170,1670,1,0,0,0,172,1682,1,0,0,0,174,1694, + 1,0,0,0,176,1696,1,0,0,0,178,1698,1,0,0,0,180,1700,1,0,0,0,182,1702,1, + 0,0,0,184,1704,1,0,0,0,186,1714,1,0,0,0,188,1724,1,0,0,0,190,1740,1,0, + 0,0,192,1793,1,0,0,0,194,1795,1,0,0,0,196,1797,1,0,0,0,198,1811,1,0,0, + 0,200,1825,1,0,0,0,202,1840,1,0,0,0,204,1842,1,0,0,0,206,1857,1,0,0,0, + 208,1859,1,0,0,0,210,1874,1,0,0,0,212,1876,1,0,0,0,214,1896,1,0,0,0,216, + 1906,1,0,0,0,218,1935,1,0,0,0,220,1948,1,0,0,0,222,1956,1,0,0,0,224,1970, + 1,0,0,0,226,1972,1,0,0,0,228,1991,1,0,0,0,230,1999,1,0,0,0,232,2001,1, + 0,0,0,234,2003,1,0,0,0,236,2024,1,0,0,0,238,2031,1,0,0,0,240,2056,1,0, + 0,0,242,2067,1,0,0,0,244,2125,1,0,0,0,246,2127,1,0,0,0,248,2138,1,0,0, + 0,250,2142,1,0,0,0,252,2151,1,0,0,0,254,2175,1,0,0,0,256,2199,1,0,0,0, + 258,2229,1,0,0,0,260,2246,1,0,0,0,262,2260,1,0,0,0,264,2264,1,0,0,0,266, + 2266,1,0,0,0,268,2271,1,0,0,0,270,2277,1,0,0,0,272,2279,1,0,0,0,274,2281, + 1,0,0,0,276,2283,1,0,0,0,278,2290,1,0,0,0,280,2292,1,0,0,0,282,2294,1, + 0,0,0,284,2296,1,0,0,0,286,2298,1,0,0,0,288,299,3,2,1,0,289,291,5,146, + 0,0,290,289,1,0,0,0,290,291,1,0,0,0,291,292,1,0,0,0,292,294,5,1,0,0,293, + 295,5,146,0,0,294,293,1,0,0,0,294,295,1,0,0,0,295,296,1,0,0,0,296,298, + 3,2,1,0,297,290,1,0,0,0,298,301,1,0,0,0,299,297,1,0,0,0,299,300,1,0,0, + 0,300,303,1,0,0,0,301,299,1,0,0,0,302,304,5,146,0,0,303,302,1,0,0,0,303, + 304,1,0,0,0,304,305,1,0,0,0,305,306,5,0,0,1,306,1,1,0,0,0,307,309,3,70, + 35,0,308,307,1,0,0,0,308,309,1,0,0,0,309,311,1,0,0,0,310,312,5,146,0, + 0,311,310,1,0,0,0,311,312,1,0,0,0,312,313,1,0,0,0,313,318,3,4,2,0,314, + 316,5,146,0,0,315,314,1,0,0,0,315,316,1,0,0,0,316,317,1,0,0,0,317,319, + 5,1,0,0,318,315,1,0,0,0,318,319,1,0,0,0,319,3,1,0,0,0,320,332,3,84,42, + 0,321,332,3,32,16,0,322,332,3,6,3,0,323,332,3,10,5,0,324,332,3,12,6,0, + 325,332,3,16,8,0,326,332,3,20,10,0,327,332,3,18,9,0,328,332,3,76,38,0, + 329,332,3,78,39,0,330,332,3,14,7,0,331,320,1,0,0,0,331,321,1,0,0,0,331, + 322,1,0,0,0,331,323,1,0,0,0,331,324,1,0,0,0,331,325,1,0,0,0,331,326,1, + 0,0,0,331,327,1,0,0,0,331,328,1,0,0,0,331,329,1,0,0,0,331,330,1,0,0,0, + 332,5,1,0,0,0,333,334,5,50,0,0,334,335,5,146,0,0,335,352,3,276,138,0, + 336,338,5,146,0,0,337,336,1,0,0,0,337,338,1,0,0,0,338,339,1,0,0,0,339, + 341,5,2,0,0,340,342,5,146,0,0,341,340,1,0,0,0,341,342,1,0,0,0,342,343, + 1,0,0,0,343,345,3,8,4,0,344,346,5,146,0,0,345,344,1,0,0,0,345,346,1,0, + 0,0,346,347,1,0,0,0,347,349,5,3,0,0,348,350,5,146,0,0,349,348,1,0,0,0, + 349,350,1,0,0,0,350,353,1,0,0,0,351,353,5,146,0,0,352,337,1,0,0,0,352, + 351,1,0,0,0,353,354,1,0,0,0,354,355,5,51,0,0,355,358,5,146,0,0,356,359, + 3,26,13,0,357,359,3,262,131,0,358,356,1,0,0,0,358,357,1,0,0,0,359,373, + 1,0,0,0,360,362,5,146,0,0,361,360,1,0,0,0,361,362,1,0,0,0,362,363,1,0, + 0,0,363,365,5,2,0,0,364,366,5,146,0,0,365,364,1,0,0,0,365,366,1,0,0,0, + 366,367,1,0,0,0,367,369,3,28,14,0,368,370,5,146,0,0,369,368,1,0,0,0,369, + 370,1,0,0,0,370,371,1,0,0,0,371,372,5,3,0,0,372,374,1,0,0,0,373,361,1, + 0,0,0,373,374,1,0,0,0,374,7,1,0,0,0,375,386,3,276,138,0,376,378,5,146, + 0,0,377,376,1,0,0,0,377,378,1,0,0,0,378,379,1,0,0,0,379,381,5,4,0,0,380, + 382,5,146,0,0,381,380,1,0,0,0,381,382,1,0,0,0,382,383,1,0,0,0,383,385, + 3,276,138,0,384,377,1,0,0,0,385,388,1,0,0,0,386,384,1,0,0,0,386,387,1, + 0,0,0,387,9,1,0,0,0,388,386,1,0,0,0,389,390,5,50,0,0,390,391,5,146,0, + 0,391,392,3,276,138,0,392,393,5,146,0,0,393,394,5,51,0,0,394,395,5,146, + 0,0,395,397,5,2,0,0,396,398,5,146,0,0,397,396,1,0,0,0,397,398,1,0,0,0, + 398,399,1,0,0,0,399,410,5,132,0,0,400,402,5,146,0,0,401,400,1,0,0,0,401, + 402,1,0,0,0,402,403,1,0,0,0,403,405,5,4,0,0,404,406,5,146,0,0,405,404, + 1,0,0,0,405,406,1,0,0,0,406,407,1,0,0,0,407,409,5,132,0,0,408,401,1,0, + 0,0,409,412,1,0,0,0,410,408,1,0,0,0,410,411,1,0,0,0,411,413,1,0,0,0,412, + 410,1,0,0,0,413,414,5,3,0,0,414,415,5,146,0,0,415,416,5,100,0,0,416,417, + 5,146,0,0,417,418,5,52,0,0,418,11,1,0,0,0,419,420,5,50,0,0,420,421,5, + 146,0,0,421,423,5,2,0,0,422,424,5,146,0,0,423,422,1,0,0,0,423,424,1,0, + 0,0,424,425,1,0,0,0,425,427,3,84,42,0,426,428,5,146,0,0,427,426,1,0,0, + 0,427,428,1,0,0,0,428,429,1,0,0,0,429,430,5,3,0,0,430,431,5,146,0,0,431, + 432,5,67,0,0,432,433,5,146,0,0,433,447,5,132,0,0,434,436,5,146,0,0,435, + 434,1,0,0,0,435,436,1,0,0,0,436,437,1,0,0,0,437,439,5,2,0,0,438,440,5, + 146,0,0,439,438,1,0,0,0,439,440,1,0,0,0,440,441,1,0,0,0,441,443,3,28, + 14,0,442,444,5,146,0,0,443,442,1,0,0,0,443,444,1,0,0,0,444,445,1,0,0, + 0,445,446,5,3,0,0,446,448,1,0,0,0,447,435,1,0,0,0,447,448,1,0,0,0,448, + 13,1,0,0,0,449,450,5,53,0,0,450,451,5,146,0,0,451,452,5,54,0,0,452,453, + 5,146,0,0,453,467,5,132,0,0,454,456,5,146,0,0,455,454,1,0,0,0,455,456, + 1,0,0,0,456,457,1,0,0,0,457,459,5,2,0,0,458,460,5,146,0,0,459,458,1,0, + 0,0,459,460,1,0,0,0,460,461,1,0,0,0,461,463,3,28,14,0,462,464,5,146,0, + 0,463,462,1,0,0,0,463,464,1,0,0,0,464,465,1,0,0,0,465,466,5,3,0,0,466, + 468,1,0,0,0,467,455,1,0,0,0,467,468,1,0,0,0,468,15,1,0,0,0,469,470,5, + 46,0,0,470,471,5,146,0,0,471,473,3,278,139,0,472,474,5,146,0,0,473,472, + 1,0,0,0,473,474,1,0,0,0,474,475,1,0,0,0,475,477,5,5,0,0,476,478,5,146, + 0,0,477,476,1,0,0,0,477,478,1,0,0,0,478,479,1,0,0,0,479,480,3,230,115, + 0,480,17,1,0,0,0,481,482,5,47,0,0,482,483,5,146,0,0,483,484,5,90,0,0, + 484,485,5,146,0,0,485,486,5,56,0,0,486,487,5,146,0,0,487,488,3,276,138, + 0,488,489,5,146,0,0,489,490,5,121,0,0,490,491,5,146,0,0,491,492,5,132, + 0,0,492,19,1,0,0,0,493,494,5,88,0,0,494,495,5,146,0,0,495,496,5,48,0, + 0,496,497,5,146,0,0,497,499,3,246,123,0,498,500,5,146,0,0,499,498,1,0, + 0,0,499,500,1,0,0,0,500,501,1,0,0,0,501,503,5,2,0,0,502,504,5,146,0,0, + 503,502,1,0,0,0,503,504,1,0,0,0,504,506,1,0,0,0,505,507,3,22,11,0,506, + 505,1,0,0,0,506,507,1,0,0,0,507,509,1,0,0,0,508,510,5,146,0,0,509,508, + 1,0,0,0,509,510,1,0,0,0,510,512,1,0,0,0,511,513,3,24,12,0,512,511,1,0, + 0,0,512,513,1,0,0,0,513,524,1,0,0,0,514,516,5,146,0,0,515,514,1,0,0,0, + 515,516,1,0,0,0,516,517,1,0,0,0,517,519,5,4,0,0,518,520,5,146,0,0,519, + 518,1,0,0,0,519,520,1,0,0,0,520,521,1,0,0,0,521,523,3,24,12,0,522,515, + 1,0,0,0,523,526,1,0,0,0,524,522,1,0,0,0,524,525,1,0,0,0,525,528,1,0,0, + 0,526,524,1,0,0,0,527,529,5,146,0,0,528,527,1,0,0,0,528,529,1,0,0,0,529, + 530,1,0,0,0,530,531,5,3,0,0,531,532,5,146,0,0,532,533,5,98,0,0,533,534, + 5,146,0,0,534,535,3,182,91,0,535,21,1,0,0,0,536,547,3,278,139,0,537,539, + 5,146,0,0,538,537,1,0,0,0,538,539,1,0,0,0,539,540,1,0,0,0,540,542,5,4, + 0,0,541,543,5,146,0,0,542,541,1,0,0,0,542,543,1,0,0,0,543,544,1,0,0,0, + 544,546,3,278,139,0,545,538,1,0,0,0,546,549,1,0,0,0,547,545,1,0,0,0,547, + 548,1,0,0,0,548,23,1,0,0,0,549,547,1,0,0,0,550,552,3,278,139,0,551,553, + 5,146,0,0,552,551,1,0,0,0,552,553,1,0,0,0,553,554,1,0,0,0,554,555,5,116, + 0,0,555,557,5,5,0,0,556,558,5,146,0,0,557,556,1,0,0,0,557,558,1,0,0,0, + 558,559,1,0,0,0,559,560,3,230,115,0,560,25,1,0,0,0,561,563,5,6,0,0,562, + 564,5,146,0,0,563,562,1,0,0,0,563,564,1,0,0,0,564,565,1,0,0,0,565,576, + 5,132,0,0,566,568,5,146,0,0,567,566,1,0,0,0,567,568,1,0,0,0,568,569,1, + 0,0,0,569,571,5,4,0,0,570,572,5,146,0,0,571,570,1,0,0,0,571,572,1,0,0, + 0,572,573,1,0,0,0,573,575,5,132,0,0,574,567,1,0,0,0,575,578,1,0,0,0,576, + 574,1,0,0,0,576,577,1,0,0,0,577,579,1,0,0,0,578,576,1,0,0,0,579,595,5, + 7,0,0,580,595,5,132,0,0,581,583,5,49,0,0,582,584,5,146,0,0,583,582,1, + 0,0,0,583,584,1,0,0,0,584,585,1,0,0,0,585,587,5,2,0,0,586,588,5,146,0, + 0,587,586,1,0,0,0,587,588,1,0,0,0,588,589,1,0,0,0,589,591,5,132,0,0,590, + 592,5,146,0,0,591,590,1,0,0,0,591,592,1,0,0,0,592,593,1,0,0,0,593,595, + 5,3,0,0,594,561,1,0,0,0,594,580,1,0,0,0,594,581,1,0,0,0,595,27,1,0,0, + 0,596,607,3,30,15,0,597,599,5,146,0,0,598,597,1,0,0,0,598,599,1,0,0,0, + 599,600,1,0,0,0,600,602,5,4,0,0,601,603,5,146,0,0,602,601,1,0,0,0,602, + 603,1,0,0,0,603,604,1,0,0,0,604,606,3,30,15,0,605,598,1,0,0,0,606,609, + 1,0,0,0,607,605,1,0,0,0,607,608,1,0,0,0,608,29,1,0,0,0,609,607,1,0,0, + 0,610,612,3,278,139,0,611,613,5,146,0,0,612,611,1,0,0,0,612,613,1,0,0, + 0,613,614,1,0,0,0,614,616,5,5,0,0,615,617,5,146,0,0,616,615,1,0,0,0,616, + 617,1,0,0,0,617,618,1,0,0,0,618,619,3,230,115,0,619,31,1,0,0,0,620,627, + 3,34,17,0,621,627,3,36,18,0,622,627,3,38,19,0,623,627,3,42,21,0,624,627, + 3,44,22,0,625,627,3,46,23,0,626,620,1,0,0,0,626,621,1,0,0,0,626,622,1, + 0,0,0,626,623,1,0,0,0,626,624,1,0,0,0,626,625,1,0,0,0,627,33,1,0,0,0, + 628,629,5,88,0,0,629,630,5,146,0,0,630,631,5,55,0,0,631,632,5,146,0,0, + 632,633,5,56,0,0,633,634,5,146,0,0,634,636,3,276,138,0,635,637,5,146, + 0,0,636,635,1,0,0,0,636,637,1,0,0,0,637,638,1,0,0,0,638,640,5,2,0,0,639, + 641,5,146,0,0,640,639,1,0,0,0,640,641,1,0,0,0,641,642,1,0,0,0,642,644, + 3,58,29,0,643,645,5,146,0,0,644,643,1,0,0,0,644,645,1,0,0,0,645,646,1, + 0,0,0,646,648,5,4,0,0,647,649,5,146,0,0,648,647,1,0,0,0,648,649,1,0,0, + 0,649,650,1,0,0,0,650,651,3,62,31,0,651,653,1,0,0,0,652,654,5,146,0,0, + 653,652,1,0,0,0,653,654,1,0,0,0,654,655,1,0,0,0,655,656,5,3,0,0,656,35, + 1,0,0,0,657,658,5,88,0,0,658,659,5,146,0,0,659,660,5,66,0,0,660,661,5, + 146,0,0,661,662,5,56,0,0,662,663,5,146,0,0,663,665,3,276,138,0,664,666, + 5,146,0,0,665,664,1,0,0,0,665,666,1,0,0,0,666,667,1,0,0,0,667,669,5,2, + 0,0,668,670,5,146,0,0,669,668,1,0,0,0,669,670,1,0,0,0,670,671,1,0,0,0, + 671,673,3,40,20,0,672,674,5,146,0,0,673,672,1,0,0,0,673,674,1,0,0,0,674, + 683,1,0,0,0,675,677,5,4,0,0,676,678,5,146,0,0,677,676,1,0,0,0,677,678, + 1,0,0,0,678,679,1,0,0,0,679,681,3,58,29,0,680,682,5,146,0,0,681,680,1, + 0,0,0,681,682,1,0,0,0,682,684,1,0,0,0,683,675,1,0,0,0,683,684,1,0,0,0, + 684,693,1,0,0,0,685,687,5,4,0,0,686,688,5,146,0,0,687,686,1,0,0,0,687, + 688,1,0,0,0,688,689,1,0,0,0,689,691,3,278,139,0,690,692,5,146,0,0,691, + 690,1,0,0,0,691,692,1,0,0,0,692,694,1,0,0,0,693,685,1,0,0,0,693,694,1, + 0,0,0,694,695,1,0,0,0,695,696,5,3,0,0,696,37,1,0,0,0,697,698,5,88,0,0, + 698,699,5,146,0,0,699,700,5,66,0,0,700,701,5,146,0,0,701,702,5,56,0,0, + 702,703,5,146,0,0,703,704,5,57,0,0,704,705,5,146,0,0,705,707,3,276,138, + 0,706,708,5,146,0,0,707,706,1,0,0,0,707,708,1,0,0,0,708,709,1,0,0,0,709, + 711,5,2,0,0,710,712,5,146,0,0,711,710,1,0,0,0,711,712,1,0,0,0,712,713, + 1,0,0,0,713,715,3,40,20,0,714,716,5,146,0,0,715,714,1,0,0,0,715,716,1, + 0,0,0,716,722,1,0,0,0,717,719,5,4,0,0,718,720,5,146,0,0,719,718,1,0,0, + 0,719,720,1,0,0,0,720,721,1,0,0,0,721,723,3,40,20,0,722,717,1,0,0,0,723, + 724,1,0,0,0,724,722,1,0,0,0,724,725,1,0,0,0,725,727,1,0,0,0,726,728,5, + 146,0,0,727,726,1,0,0,0,727,728,1,0,0,0,728,737,1,0,0,0,729,731,5,4,0, + 0,730,732,5,146,0,0,731,730,1,0,0,0,731,732,1,0,0,0,732,733,1,0,0,0,733, + 735,3,58,29,0,734,736,5,146,0,0,735,734,1,0,0,0,735,736,1,0,0,0,736,738, + 1,0,0,0,737,729,1,0,0,0,737,738,1,0,0,0,738,747,1,0,0,0,739,741,5,4,0, + 0,740,742,5,146,0,0,741,740,1,0,0,0,741,742,1,0,0,0,742,743,1,0,0,0,743, + 745,3,278,139,0,744,746,5,146,0,0,745,744,1,0,0,0,745,746,1,0,0,0,746, + 748,1,0,0,0,747,739,1,0,0,0,747,748,1,0,0,0,748,749,1,0,0,0,749,750,5, + 3,0,0,750,39,1,0,0,0,751,752,5,51,0,0,752,753,5,146,0,0,753,754,3,276, + 138,0,754,755,5,146,0,0,755,756,5,67,0,0,756,757,5,146,0,0,757,758,3, + 276,138,0,758,41,1,0,0,0,759,760,5,88,0,0,760,761,5,146,0,0,761,762,5, + 58,0,0,762,763,5,146,0,0,763,764,3,276,138,0,764,43,1,0,0,0,765,766,5, + 59,0,0,766,767,5,146,0,0,767,768,7,0,0,0,768,769,5,146,0,0,769,770,3, + 276,138,0,770,45,1,0,0,0,771,772,5,60,0,0,772,773,5,146,0,0,773,774,5, + 56,0,0,774,775,5,146,0,0,775,776,3,276,138,0,776,777,5,146,0,0,777,778, + 3,48,24,0,778,47,1,0,0,0,779,784,3,50,25,0,780,784,3,52,26,0,781,784, + 3,54,27,0,782,784,3,56,28,0,783,779,1,0,0,0,783,780,1,0,0,0,783,781,1, + 0,0,0,783,782,1,0,0,0,784,49,1,0,0,0,785,786,5,63,0,0,786,787,5,146,0, + 0,787,788,3,270,135,0,788,789,5,146,0,0,789,794,3,64,32,0,790,791,5,146, + 0,0,791,792,5,61,0,0,792,793,5,146,0,0,793,795,3,182,91,0,794,790,1,0, + 0,0,794,795,1,0,0,0,795,51,1,0,0,0,796,797,5,59,0,0,797,798,5,146,0,0, + 798,799,3,270,135,0,799,53,1,0,0,0,800,801,5,62,0,0,801,802,5,146,0,0, + 802,803,5,67,0,0,803,804,5,146,0,0,804,805,3,276,138,0,805,55,1,0,0,0, + 806,807,5,62,0,0,807,808,5,146,0,0,808,809,3,270,135,0,809,810,5,146, + 0,0,810,811,5,67,0,0,811,812,5,146,0,0,812,813,3,270,135,0,813,57,1,0, + 0,0,814,825,3,60,30,0,815,817,5,146,0,0,816,815,1,0,0,0,816,817,1,0,0, + 0,817,818,1,0,0,0,818,820,5,4,0,0,819,821,5,146,0,0,820,819,1,0,0,0,820, + 821,1,0,0,0,821,822,1,0,0,0,822,824,3,60,30,0,823,816,1,0,0,0,824,827, + 1,0,0,0,825,823,1,0,0,0,825,826,1,0,0,0,826,59,1,0,0,0,827,825,1,0,0, + 0,828,829,3,270,135,0,829,830,5,146,0,0,830,831,3,64,32,0,831,61,1,0, + 0,0,832,833,5,64,0,0,833,834,5,146,0,0,834,836,5,65,0,0,835,837,5,146, + 0,0,836,835,1,0,0,0,836,837,1,0,0,0,837,838,1,0,0,0,838,840,5,2,0,0,839, + 841,5,146,0,0,840,839,1,0,0,0,840,841,1,0,0,0,841,842,1,0,0,0,842,844, + 3,270,135,0,843,845,5,146,0,0,844,843,1,0,0,0,844,845,1,0,0,0,845,846, + 1,0,0,0,846,847,5,3,0,0,847,63,1,0,0,0,848,849,6,32,-1,0,849,901,3,278, + 139,0,850,852,5,81,0,0,851,853,5,146,0,0,852,851,1,0,0,0,852,853,1,0, + 0,0,853,854,1,0,0,0,854,856,5,2,0,0,855,857,5,146,0,0,856,855,1,0,0,0, + 856,857,1,0,0,0,857,858,1,0,0,0,858,860,3,58,29,0,859,861,5,146,0,0,860, + 859,1,0,0,0,860,861,1,0,0,0,861,862,1,0,0,0,862,863,5,3,0,0,863,901,1, + 0,0,0,864,866,3,278,139,0,865,867,5,146,0,0,866,865,1,0,0,0,866,867,1, + 0,0,0,867,868,1,0,0,0,868,870,5,2,0,0,869,871,5,146,0,0,870,869,1,0,0, + 0,870,871,1,0,0,0,871,872,1,0,0,0,872,874,3,58,29,0,873,875,5,146,0,0, + 874,873,1,0,0,0,874,875,1,0,0,0,875,876,1,0,0,0,876,877,5,3,0,0,877,901, + 1,0,0,0,878,880,3,278,139,0,879,881,5,146,0,0,880,879,1,0,0,0,880,881, + 1,0,0,0,881,882,1,0,0,0,882,884,5,2,0,0,883,885,5,146,0,0,884,883,1,0, + 0,0,884,885,1,0,0,0,885,886,1,0,0,0,886,888,3,64,32,0,887,889,5,146,0, + 0,888,887,1,0,0,0,888,889,1,0,0,0,889,890,1,0,0,0,890,892,5,4,0,0,891, + 893,5,146,0,0,892,891,1,0,0,0,892,893,1,0,0,0,893,894,1,0,0,0,894,896, + 3,64,32,0,895,897,5,146,0,0,896,895,1,0,0,0,896,897,1,0,0,0,897,898,1, + 0,0,0,898,899,5,3,0,0,899,901,1,0,0,0,900,848,1,0,0,0,900,850,1,0,0,0, + 900,864,1,0,0,0,900,878,1,0,0,0,901,906,1,0,0,0,902,903,10,4,0,0,903, + 905,3,66,33,0,904,902,1,0,0,0,905,908,1,0,0,0,906,904,1,0,0,0,906,907, + 1,0,0,0,907,65,1,0,0,0,908,906,1,0,0,0,909,913,3,68,34,0,910,912,3,68, + 34,0,911,910,1,0,0,0,912,915,1,0,0,0,913,911,1,0,0,0,913,914,1,0,0,0, + 914,67,1,0,0,0,915,913,1,0,0,0,916,918,5,6,0,0,917,919,3,272,136,0,918, + 917,1,0,0,0,918,919,1,0,0,0,919,920,1,0,0,0,920,921,5,7,0,0,921,69,1, + 0,0,0,922,925,3,72,36,0,923,925,3,74,37,0,924,922,1,0,0,0,924,923,1,0, + 0,0,925,71,1,0,0,0,926,927,5,68,0,0,927,73,1,0,0,0,928,929,5,69,0,0,929, + 75,1,0,0,0,930,931,5,70,0,0,931,932,5,146,0,0,932,945,5,71,0,0,933,934, + 5,70,0,0,934,935,5,146,0,0,935,936,5,71,0,0,936,937,5,146,0,0,937,938, + 5,72,0,0,938,939,5,146,0,0,939,945,5,73,0,0,940,945,5,75,0,0,941,945, + 5,76,0,0,942,945,5,77,0,0,943,945,5,78,0,0,944,930,1,0,0,0,944,933,1, + 0,0,0,944,940,1,0,0,0,944,941,1,0,0,0,944,942,1,0,0,0,944,943,1,0,0,0, + 945,77,1,0,0,0,946,949,3,80,40,0,947,949,3,82,41,0,948,946,1,0,0,0,948, + 947,1,0,0,0,949,79,1,0,0,0,950,951,5,83,0,0,951,952,5,146,0,0,952,953, + 5,80,0,0,953,956,5,146,0,0,954,957,5,132,0,0,955,957,3,262,131,0,956, + 954,1,0,0,0,956,955,1,0,0,0,957,81,1,0,0,0,958,959,5,79,0,0,959,960,5, + 146,0,0,960,961,3,262,131,0,961,83,1,0,0,0,962,963,3,86,43,0,963,85,1, + 0,0,0,964,971,3,90,45,0,965,967,5,146,0,0,966,965,1,0,0,0,966,967,1,0, + 0,0,967,968,1,0,0,0,968,970,3,88,44,0,969,966,1,0,0,0,970,973,1,0,0,0, + 971,969,1,0,0,0,971,972,1,0,0,0,972,986,1,0,0,0,973,971,1,0,0,0,974,976, + 3,124,62,0,975,977,5,146,0,0,976,975,1,0,0,0,976,977,1,0,0,0,977,979, + 1,0,0,0,978,974,1,0,0,0,979,980,1,0,0,0,980,978,1,0,0,0,980,981,1,0,0, + 0,981,982,1,0,0,0,982,983,3,90,45,0,983,984,6,43,-1,0,984,986,1,0,0,0, + 985,964,1,0,0,0,985,978,1,0,0,0,986,87,1,0,0,0,987,988,5,81,0,0,988,989, + 5,146,0,0,989,991,5,82,0,0,990,992,5,146,0,0,991,990,1,0,0,0,991,992, + 1,0,0,0,992,993,1,0,0,0,993,1000,3,90,45,0,994,996,5,81,0,0,995,997,5, + 146,0,0,996,995,1,0,0,0,996,997,1,0,0,0,997,998,1,0,0,0,998,1000,3,90, + 45,0,999,987,1,0,0,0,999,994,1,0,0,0,1000,89,1,0,0,0,1001,1004,3,92,46, + 0,1002,1004,3,94,47,0,1003,1001,1,0,0,0,1003,1002,1,0,0,0,1004,91,1,0, + 0,0,1005,1007,3,100,50,0,1006,1008,5,146,0,0,1007,1006,1,0,0,0,1007,1008, + 1,0,0,0,1008,1010,1,0,0,0,1009,1005,1,0,0,0,1010,1013,1,0,0,0,1011,1009, + 1,0,0,0,1011,1012,1,0,0,0,1012,1014,1,0,0,0,1013,1011,1,0,0,0,1014,1051, + 3,124,62,0,1015,1017,3,100,50,0,1016,1018,5,146,0,0,1017,1016,1,0,0,0, + 1017,1018,1,0,0,0,1018,1020,1,0,0,0,1019,1015,1,0,0,0,1020,1023,1,0,0, + 0,1021,1019,1,0,0,0,1021,1022,1,0,0,0,1022,1024,1,0,0,0,1023,1021,1,0, + 0,0,1024,1031,3,98,49,0,1025,1027,5,146,0,0,1026,1025,1,0,0,0,1026,1027, + 1,0,0,0,1027,1028,1,0,0,0,1028,1030,3,98,49,0,1029,1026,1,0,0,0,1030, + 1033,1,0,0,0,1031,1029,1,0,0,0,1031,1032,1,0,0,0,1032,1038,1,0,0,0,1033, + 1031,1,0,0,0,1034,1036,5,146,0,0,1035,1034,1,0,0,0,1035,1036,1,0,0,0, + 1036,1037,1,0,0,0,1037,1039,3,124,62,0,1038,1035,1,0,0,0,1038,1039,1, + 0,0,0,1039,1051,1,0,0,0,1040,1042,3,100,50,0,1041,1043,5,146,0,0,1042, + 1041,1,0,0,0,1042,1043,1,0,0,0,1043,1045,1,0,0,0,1044,1040,1,0,0,0,1045, + 1046,1,0,0,0,1046,1044,1,0,0,0,1046,1047,1,0,0,0,1047,1048,1,0,0,0,1048, + 1049,6,46,-1,0,1049,1051,1,0,0,0,1050,1011,1,0,0,0,1050,1021,1,0,0,0, + 1050,1044,1,0,0,0,1051,93,1,0,0,0,1052,1054,3,96,48,0,1053,1055,5,146, + 0,0,1054,1053,1,0,0,0,1054,1055,1,0,0,0,1055,1057,1,0,0,0,1056,1052,1, + 0,0,0,1057,1058,1,0,0,0,1058,1056,1,0,0,0,1058,1059,1,0,0,0,1059,1060, + 1,0,0,0,1060,1061,3,92,46,0,1061,95,1,0,0,0,1062,1064,3,100,50,0,1063, + 1065,5,146,0,0,1064,1063,1,0,0,0,1064,1065,1,0,0,0,1065,1067,1,0,0,0, + 1066,1062,1,0,0,0,1067,1070,1,0,0,0,1068,1066,1,0,0,0,1068,1069,1,0,0, + 0,1069,1077,1,0,0,0,1070,1068,1,0,0,0,1071,1073,3,98,49,0,1072,1074,5, + 146,0,0,1073,1072,1,0,0,0,1073,1074,1,0,0,0,1074,1076,1,0,0,0,1075,1071, + 1,0,0,0,1076,1079,1,0,0,0,1077,1075,1,0,0,0,1077,1078,1,0,0,0,1078,1080, + 1,0,0,0,1079,1077,1,0,0,0,1080,1081,3,122,61,0,1081,97,1,0,0,0,1082,1087, + 3,110,55,0,1083,1087,3,112,56,0,1084,1087,3,116,58,0,1085,1087,3,120, + 60,0,1086,1082,1,0,0,0,1086,1083,1,0,0,0,1086,1084,1,0,0,0,1086,1085, + 1,0,0,0,1087,99,1,0,0,0,1088,1093,3,106,53,0,1089,1093,3,108,54,0,1090, + 1093,3,104,52,0,1091,1093,3,102,51,0,1092,1088,1,0,0,0,1092,1089,1,0, + 0,0,1092,1090,1,0,0,0,1092,1091,1,0,0,0,1093,101,1,0,0,0,1094,1112,5, + 83,0,0,1095,1096,5,146,0,0,1096,1097,5,94,0,0,1097,1098,5,146,0,0,1098, + 1100,5,84,0,0,1099,1101,5,146,0,0,1100,1099,1,0,0,0,1100,1101,1,0,0,0, + 1101,1102,1,0,0,0,1102,1104,5,2,0,0,1103,1105,5,146,0,0,1104,1103,1,0, + 0,0,1104,1105,1,0,0,0,1105,1106,1,0,0,0,1106,1108,3,58,29,0,1107,1109, + 5,146,0,0,1108,1107,1,0,0,0,1108,1109,1,0,0,0,1109,1110,1,0,0,0,1110, + 1111,5,3,0,0,1111,1113,1,0,0,0,1112,1095,1,0,0,0,1112,1113,1,0,0,0,1113, + 1114,1,0,0,0,1114,1115,5,146,0,0,1115,1116,5,51,0,0,1116,1134,5,146,0, + 0,1117,1131,3,26,13,0,1118,1120,5,146,0,0,1119,1118,1,0,0,0,1119,1120, + 1,0,0,0,1120,1121,1,0,0,0,1121,1123,5,2,0,0,1122,1124,5,146,0,0,1123, + 1122,1,0,0,0,1123,1124,1,0,0,0,1124,1125,1,0,0,0,1125,1127,3,28,14,0, + 1126,1128,5,146,0,0,1127,1126,1,0,0,0,1127,1128,1,0,0,0,1128,1129,1,0, + 0,0,1129,1130,5,3,0,0,1130,1132,1,0,0,0,1131,1119,1,0,0,0,1131,1132,1, + 0,0,0,1132,1135,1,0,0,0,1133,1135,3,262,131,0,1134,1117,1,0,0,0,1134, + 1133,1,0,0,0,1135,1140,1,0,0,0,1136,1138,5,146,0,0,1137,1136,1,0,0,0, + 1137,1138,1,0,0,0,1138,1139,1,0,0,0,1139,1141,3,140,70,0,1140,1137,1, + 0,0,0,1140,1141,1,0,0,0,1141,103,1,0,0,0,1142,1143,5,46,0,0,1143,1144, + 5,146,0,0,1144,1149,3,244,122,0,1145,1147,5,146,0,0,1146,1145,1,0,0,0, + 1146,1147,1,0,0,0,1147,1148,1,0,0,0,1148,1150,3,140,70,0,1149,1146,1, + 0,0,0,1149,1150,1,0,0,0,1150,105,1,0,0,0,1151,1152,5,85,0,0,1152,1154, + 5,146,0,0,1153,1151,1,0,0,0,1153,1154,1,0,0,0,1154,1155,1,0,0,0,1155, + 1157,5,86,0,0,1156,1158,5,146,0,0,1157,1156,1,0,0,0,1157,1158,1,0,0,0, + 1158,1159,1,0,0,0,1159,1164,3,142,71,0,1160,1162,5,146,0,0,1161,1160, + 1,0,0,0,1161,1162,1,0,0,0,1162,1163,1,0,0,0,1163,1165,3,140,70,0,1164, + 1161,1,0,0,0,1164,1165,1,0,0,0,1165,107,1,0,0,0,1166,1168,5,87,0,0,1167, + 1169,5,146,0,0,1168,1167,1,0,0,0,1168,1169,1,0,0,0,1169,1170,1,0,0,0, + 1170,1171,3,182,91,0,1171,1172,5,146,0,0,1172,1173,5,98,0,0,1173,1174, + 5,146,0,0,1174,1175,3,262,131,0,1175,109,1,0,0,0,1176,1178,5,88,0,0,1177, + 1179,5,146,0,0,1178,1177,1,0,0,0,1178,1179,1,0,0,0,1179,1180,1,0,0,0, + 1180,1181,3,142,71,0,1181,111,1,0,0,0,1182,1184,5,89,0,0,1183,1185,5, + 146,0,0,1184,1183,1,0,0,0,1184,1185,1,0,0,0,1185,1186,1,0,0,0,1186,1191, + 3,142,71,0,1187,1188,5,146,0,0,1188,1190,3,114,57,0,1189,1187,1,0,0,0, + 1190,1193,1,0,0,0,1191,1189,1,0,0,0,1191,1192,1,0,0,0,1192,113,1,0,0, + 0,1193,1191,1,0,0,0,1194,1195,5,90,0,0,1195,1196,5,146,0,0,1196,1197, + 5,86,0,0,1197,1198,5,146,0,0,1198,1205,3,116,58,0,1199,1200,5,90,0,0, + 1200,1201,5,146,0,0,1201,1202,5,88,0,0,1202,1203,5,146,0,0,1203,1205, + 3,116,58,0,1204,1194,1,0,0,0,1204,1199,1,0,0,0,1205,115,1,0,0,0,1206, + 1208,5,91,0,0,1207,1209,5,146,0,0,1208,1207,1,0,0,0,1208,1209,1,0,0,0, + 1209,1210,1,0,0,0,1210,1221,3,118,59,0,1211,1213,5,146,0,0,1212,1211, + 1,0,0,0,1212,1213,1,0,0,0,1213,1214,1,0,0,0,1214,1216,5,4,0,0,1215,1217, + 5,146,0,0,1216,1215,1,0,0,0,1216,1217,1,0,0,0,1217,1218,1,0,0,0,1218, + 1220,3,118,59,0,1219,1212,1,0,0,0,1220,1223,1,0,0,0,1221,1219,1,0,0,0, + 1221,1222,1,0,0,0,1222,117,1,0,0,0,1223,1221,1,0,0,0,1224,1226,3,268, + 134,0,1225,1227,5,146,0,0,1226,1225,1,0,0,0,1226,1227,1,0,0,0,1227,1228, + 1,0,0,0,1228,1230,5,5,0,0,1229,1231,5,146,0,0,1230,1229,1,0,0,0,1230, + 1231,1,0,0,0,1231,1232,1,0,0,0,1232,1233,3,182,91,0,1233,119,1,0,0,0, + 1234,1235,5,92,0,0,1235,1237,5,146,0,0,1236,1234,1,0,0,0,1236,1237,1, + 0,0,0,1237,1238,1,0,0,0,1238,1240,5,93,0,0,1239,1241,5,146,0,0,1240,1239, + 1,0,0,0,1240,1241,1,0,0,0,1241,1242,1,0,0,0,1242,1253,3,182,91,0,1243, + 1245,5,146,0,0,1244,1243,1,0,0,0,1244,1245,1,0,0,0,1245,1246,1,0,0,0, + 1246,1248,5,4,0,0,1247,1249,5,146,0,0,1248,1247,1,0,0,0,1248,1249,1,0, + 0,0,1249,1250,1,0,0,0,1250,1252,3,182,91,0,1251,1244,1,0,0,0,1252,1255, + 1,0,0,0,1253,1251,1,0,0,0,1253,1254,1,0,0,0,1254,121,1,0,0,0,1255,1253, + 1,0,0,0,1256,1257,5,94,0,0,1257,1262,3,126,63,0,1258,1260,5,146,0,0,1259, + 1258,1,0,0,0,1259,1260,1,0,0,0,1260,1261,1,0,0,0,1261,1263,3,140,70,0, + 1262,1259,1,0,0,0,1262,1263,1,0,0,0,1263,123,1,0,0,0,1264,1265,5,95,0, + 0,1265,1266,3,126,63,0,1266,125,1,0,0,0,1267,1269,5,146,0,0,1268,1267, + 1,0,0,0,1268,1269,1,0,0,0,1269,1270,1,0,0,0,1270,1272,5,96,0,0,1271,1268, + 1,0,0,0,1271,1272,1,0,0,0,1272,1273,1,0,0,0,1273,1274,5,146,0,0,1274, + 1277,3,128,64,0,1275,1276,5,146,0,0,1276,1278,3,132,66,0,1277,1275,1, + 0,0,0,1277,1278,1,0,0,0,1278,1281,1,0,0,0,1279,1280,5,146,0,0,1280,1282, + 3,134,67,0,1281,1279,1,0,0,0,1281,1282,1,0,0,0,1282,1285,1,0,0,0,1283, + 1284,5,146,0,0,1284,1286,3,136,68,0,1285,1283,1,0,0,0,1285,1286,1,0,0, + 0,1286,127,1,0,0,0,1287,1298,5,97,0,0,1288,1290,5,146,0,0,1289,1288,1, + 0,0,0,1289,1290,1,0,0,0,1290,1291,1,0,0,0,1291,1293,5,4,0,0,1292,1294, + 5,146,0,0,1293,1292,1,0,0,0,1293,1294,1,0,0,0,1294,1295,1,0,0,0,1295, + 1297,3,130,65,0,1296,1289,1,0,0,0,1297,1300,1,0,0,0,1298,1296,1,0,0,0, + 1298,1299,1,0,0,0,1299,1316,1,0,0,0,1300,1298,1,0,0,0,1301,1312,3,130, + 65,0,1302,1304,5,146,0,0,1303,1302,1,0,0,0,1303,1304,1,0,0,0,1304,1305, + 1,0,0,0,1305,1307,5,4,0,0,1306,1308,5,146,0,0,1307,1306,1,0,0,0,1307, + 1308,1,0,0,0,1308,1309,1,0,0,0,1309,1311,3,130,65,0,1310,1303,1,0,0,0, + 1311,1314,1,0,0,0,1312,1310,1,0,0,0,1312,1313,1,0,0,0,1313,1316,1,0,0, + 0,1314,1312,1,0,0,0,1315,1287,1,0,0,0,1315,1301,1,0,0,0,1316,129,1,0, + 0,0,1317,1318,3,182,91,0,1318,1319,5,146,0,0,1319,1320,5,98,0,0,1320, + 1321,5,146,0,0,1321,1322,3,262,131,0,1322,1325,1,0,0,0,1323,1325,3,182, + 91,0,1324,1317,1,0,0,0,1324,1323,1,0,0,0,1325,131,1,0,0,0,1326,1327,5, + 99,0,0,1327,1328,5,146,0,0,1328,1329,5,100,0,0,1329,1330,5,146,0,0,1330, + 1338,3,138,69,0,1331,1333,5,4,0,0,1332,1334,5,146,0,0,1333,1332,1,0,0, + 0,1333,1334,1,0,0,0,1334,1335,1,0,0,0,1335,1337,3,138,69,0,1336,1331, + 1,0,0,0,1337,1340,1,0,0,0,1338,1336,1,0,0,0,1338,1339,1,0,0,0,1339,133, + 1,0,0,0,1340,1338,1,0,0,0,1341,1342,5,101,0,0,1342,1343,5,146,0,0,1343, + 1344,3,182,91,0,1344,135,1,0,0,0,1345,1346,5,102,0,0,1346,1347,5,146, + 0,0,1347,1348,3,182,91,0,1348,137,1,0,0,0,1349,1354,3,182,91,0,1350,1352, + 5,146,0,0,1351,1350,1,0,0,0,1351,1352,1,0,0,0,1352,1353,1,0,0,0,1353, + 1355,7,1,0,0,1354,1351,1,0,0,0,1354,1355,1,0,0,0,1355,139,1,0,0,0,1356, + 1357,5,107,0,0,1357,1358,5,146,0,0,1358,1359,3,182,91,0,1359,141,1,0, + 0,0,1360,1371,3,144,72,0,1361,1363,5,146,0,0,1362,1361,1,0,0,0,1362,1363, + 1,0,0,0,1363,1364,1,0,0,0,1364,1366,5,4,0,0,1365,1367,5,146,0,0,1366, + 1365,1,0,0,0,1366,1367,1,0,0,0,1367,1368,1,0,0,0,1368,1370,3,144,72,0, + 1369,1362,1,0,0,0,1370,1373,1,0,0,0,1371,1369,1,0,0,0,1371,1372,1,0,0, + 0,1372,143,1,0,0,0,1373,1371,1,0,0,0,1374,1376,3,262,131,0,1375,1377, + 5,146,0,0,1376,1375,1,0,0,0,1376,1377,1,0,0,0,1377,1378,1,0,0,0,1378, + 1380,5,5,0,0,1379,1381,5,146,0,0,1380,1379,1,0,0,0,1380,1381,1,0,0,0, + 1381,1382,1,0,0,0,1382,1383,3,146,73,0,1383,1386,1,0,0,0,1384,1386,3, + 146,73,0,1385,1374,1,0,0,0,1385,1384,1,0,0,0,1386,145,1,0,0,0,1387,1388, + 3,148,74,0,1388,147,1,0,0,0,1389,1396,3,150,75,0,1390,1392,5,146,0,0, + 1391,1390,1,0,0,0,1391,1392,1,0,0,0,1392,1393,1,0,0,0,1393,1395,3,152, + 76,0,1394,1391,1,0,0,0,1395,1398,1,0,0,0,1396,1394,1,0,0,0,1396,1397, + 1,0,0,0,1397,1404,1,0,0,0,1398,1396,1,0,0,0,1399,1400,5,2,0,0,1400,1401, + 3,148,74,0,1401,1402,5,3,0,0,1402,1404,1,0,0,0,1403,1389,1,0,0,0,1403, + 1399,1,0,0,0,1404,149,1,0,0,0,1405,1407,5,2,0,0,1406,1408,5,146,0,0,1407, + 1406,1,0,0,0,1407,1408,1,0,0,0,1408,1413,1,0,0,0,1409,1411,3,262,131, + 0,1410,1412,5,146,0,0,1411,1410,1,0,0,0,1411,1412,1,0,0,0,1412,1414,1, + 0,0,0,1413,1409,1,0,0,0,1413,1414,1,0,0,0,1414,1419,1,0,0,0,1415,1417, + 3,162,81,0,1416,1418,5,146,0,0,1417,1416,1,0,0,0,1417,1418,1,0,0,0,1418, + 1420,1,0,0,0,1419,1415,1,0,0,0,1419,1420,1,0,0,0,1420,1425,1,0,0,0,1421, + 1423,3,158,79,0,1422,1424,5,146,0,0,1423,1422,1,0,0,0,1423,1424,1,0,0, + 0,1424,1426,1,0,0,0,1425,1421,1,0,0,0,1425,1426,1,0,0,0,1426,1427,1,0, + 0,0,1427,1428,5,3,0,0,1428,151,1,0,0,0,1429,1431,3,154,77,0,1430,1432, + 5,146,0,0,1431,1430,1,0,0,0,1431,1432,1,0,0,0,1432,1433,1,0,0,0,1433, + 1434,3,150,75,0,1434,153,1,0,0,0,1435,1437,3,282,141,0,1436,1438,5,146, + 0,0,1437,1436,1,0,0,0,1437,1438,1,0,0,0,1438,1439,1,0,0,0,1439,1441,3, + 286,143,0,1440,1442,5,146,0,0,1441,1440,1,0,0,0,1441,1442,1,0,0,0,1442, + 1444,1,0,0,0,1443,1445,3,156,78,0,1444,1443,1,0,0,0,1444,1445,1,0,0,0, + 1445,1447,1,0,0,0,1446,1448,5,146,0,0,1447,1446,1,0,0,0,1447,1448,1,0, + 0,0,1448,1449,1,0,0,0,1449,1450,3,286,143,0,1450,1480,1,0,0,0,1451,1453, + 3,286,143,0,1452,1454,5,146,0,0,1453,1452,1,0,0,0,1453,1454,1,0,0,0,1454, + 1456,1,0,0,0,1455,1457,3,156,78,0,1456,1455,1,0,0,0,1456,1457,1,0,0,0, + 1457,1459,1,0,0,0,1458,1460,5,146,0,0,1459,1458,1,0,0,0,1459,1460,1,0, + 0,0,1460,1461,1,0,0,0,1461,1463,3,286,143,0,1462,1464,5,146,0,0,1463, + 1462,1,0,0,0,1463,1464,1,0,0,0,1464,1465,1,0,0,0,1465,1466,3,284,142, + 0,1466,1480,1,0,0,0,1467,1469,3,286,143,0,1468,1470,5,146,0,0,1469,1468, + 1,0,0,0,1469,1470,1,0,0,0,1470,1472,1,0,0,0,1471,1473,3,156,78,0,1472, + 1471,1,0,0,0,1472,1473,1,0,0,0,1473,1475,1,0,0,0,1474,1476,5,146,0,0, + 1475,1474,1,0,0,0,1475,1476,1,0,0,0,1476,1477,1,0,0,0,1477,1478,3,286, + 143,0,1478,1480,1,0,0,0,1479,1435,1,0,0,0,1479,1451,1,0,0,0,1479,1467, + 1,0,0,0,1480,155,1,0,0,0,1481,1483,5,6,0,0,1482,1484,5,146,0,0,1483,1482, + 1,0,0,0,1483,1484,1,0,0,0,1484,1489,1,0,0,0,1485,1487,3,262,131,0,1486, + 1488,5,146,0,0,1487,1486,1,0,0,0,1487,1488,1,0,0,0,1488,1490,1,0,0,0, + 1489,1485,1,0,0,0,1489,1490,1,0,0,0,1490,1495,1,0,0,0,1491,1493,3,160, + 80,0,1492,1494,5,146,0,0,1493,1492,1,0,0,0,1493,1494,1,0,0,0,1494,1496, + 1,0,0,0,1495,1491,1,0,0,0,1495,1496,1,0,0,0,1496,1501,1,0,0,0,1497,1499, + 3,166,83,0,1498,1500,5,146,0,0,1499,1498,1,0,0,0,1499,1500,1,0,0,0,1500, + 1502,1,0,0,0,1501,1497,1,0,0,0,1501,1502,1,0,0,0,1502,1507,1,0,0,0,1503, + 1505,3,158,79,0,1504,1506,5,146,0,0,1505,1504,1,0,0,0,1505,1506,1,0,0, + 0,1506,1508,1,0,0,0,1507,1503,1,0,0,0,1507,1508,1,0,0,0,1508,1509,1,0, + 0,0,1509,1510,5,7,0,0,1510,157,1,0,0,0,1511,1513,5,8,0,0,1512,1514,5, + 146,0,0,1513,1512,1,0,0,0,1513,1514,1,0,0,0,1514,1548,1,0,0,0,1515,1517, + 3,270,135,0,1516,1518,5,146,0,0,1517,1516,1,0,0,0,1517,1518,1,0,0,0,1518, + 1519,1,0,0,0,1519,1521,5,116,0,0,1520,1522,5,146,0,0,1521,1520,1,0,0, + 0,1521,1522,1,0,0,0,1522,1523,1,0,0,0,1523,1525,3,182,91,0,1524,1526, + 5,146,0,0,1525,1524,1,0,0,0,1525,1526,1,0,0,0,1526,1545,1,0,0,0,1527, + 1529,5,4,0,0,1528,1530,5,146,0,0,1529,1528,1,0,0,0,1529,1530,1,0,0,0, + 1530,1531,1,0,0,0,1531,1533,3,270,135,0,1532,1534,5,146,0,0,1533,1532, + 1,0,0,0,1533,1534,1,0,0,0,1534,1535,1,0,0,0,1535,1537,5,116,0,0,1536, + 1538,5,146,0,0,1537,1536,1,0,0,0,1537,1538,1,0,0,0,1538,1539,1,0,0,0, + 1539,1541,3,182,91,0,1540,1542,5,146,0,0,1541,1540,1,0,0,0,1541,1542, + 1,0,0,0,1542,1544,1,0,0,0,1543,1527,1,0,0,0,1544,1547,1,0,0,0,1545,1543, + 1,0,0,0,1545,1546,1,0,0,0,1546,1549,1,0,0,0,1547,1545,1,0,0,0,1548,1515, + 1,0,0,0,1548,1549,1,0,0,0,1549,1550,1,0,0,0,1550,1551,5,9,0,0,1551,159, + 1,0,0,0,1552,1554,5,116,0,0,1553,1555,5,146,0,0,1554,1553,1,0,0,0,1554, + 1555,1,0,0,0,1555,1556,1,0,0,0,1556,1570,3,180,90,0,1557,1559,5,146,0, + 0,1558,1557,1,0,0,0,1558,1559,1,0,0,0,1559,1560,1,0,0,0,1560,1562,5,10, + 0,0,1561,1563,5,116,0,0,1562,1561,1,0,0,0,1562,1563,1,0,0,0,1563,1565, + 1,0,0,0,1564,1566,5,146,0,0,1565,1564,1,0,0,0,1565,1566,1,0,0,0,1566, + 1567,1,0,0,0,1567,1569,3,180,90,0,1568,1558,1,0,0,0,1569,1572,1,0,0,0, + 1570,1568,1,0,0,0,1570,1571,1,0,0,0,1571,161,1,0,0,0,1572,1570,1,0,0, + 0,1573,1580,3,164,82,0,1574,1576,5,146,0,0,1575,1574,1,0,0,0,1575,1576, + 1,0,0,0,1576,1577,1,0,0,0,1577,1579,3,164,82,0,1578,1575,1,0,0,0,1579, + 1582,1,0,0,0,1580,1578,1,0,0,0,1580,1581,1,0,0,0,1581,163,1,0,0,0,1582, + 1580,1,0,0,0,1583,1585,5,116,0,0,1584,1586,5,146,0,0,1585,1584,1,0,0, + 0,1585,1586,1,0,0,0,1586,1587,1,0,0,0,1587,1588,3,178,89,0,1588,165,1, + 0,0,0,1589,1591,5,97,0,0,1590,1592,5,146,0,0,1591,1590,1,0,0,0,1591,1592, + 1,0,0,0,1592,1597,1,0,0,0,1593,1598,5,108,0,0,1594,1595,5,82,0,0,1595, + 1596,5,146,0,0,1596,1598,5,108,0,0,1597,1593,1,0,0,0,1597,1594,1,0,0, + 0,1597,1598,1,0,0,0,1598,1600,1,0,0,0,1599,1601,5,146,0,0,1600,1599,1, + 0,0,0,1600,1601,1,0,0,0,1601,1616,1,0,0,0,1602,1604,3,174,87,0,1603,1602, + 1,0,0,0,1603,1604,1,0,0,0,1604,1606,1,0,0,0,1605,1607,5,146,0,0,1606, + 1605,1,0,0,0,1606,1607,1,0,0,0,1607,1608,1,0,0,0,1608,1610,5,11,0,0,1609, + 1611,5,146,0,0,1610,1609,1,0,0,0,1610,1611,1,0,0,0,1611,1613,1,0,0,0, + 1612,1614,3,176,88,0,1613,1612,1,0,0,0,1613,1614,1,0,0,0,1614,1617,1, + 0,0,0,1615,1617,3,272,136,0,1616,1603,1,0,0,0,1616,1615,1,0,0,0,1616, + 1617,1,0,0,0,1617,1622,1,0,0,0,1618,1620,5,146,0,0,1619,1618,1,0,0,0, + 1619,1620,1,0,0,0,1620,1621,1,0,0,0,1621,1623,3,168,84,0,1622,1619,1, + 0,0,0,1622,1623,1,0,0,0,1623,167,1,0,0,0,1624,1626,5,2,0,0,1625,1627, + 5,146,0,0,1626,1625,1,0,0,0,1626,1627,1,0,0,0,1627,1628,1,0,0,0,1628, + 1630,3,262,131,0,1629,1631,5,146,0,0,1630,1629,1,0,0,0,1630,1631,1,0, + 0,0,1631,1632,1,0,0,0,1632,1634,5,4,0,0,1633,1635,5,146,0,0,1634,1633, + 1,0,0,0,1634,1635,1,0,0,0,1635,1636,1,0,0,0,1636,1645,3,262,131,0,1637, + 1639,5,146,0,0,1638,1637,1,0,0,0,1638,1639,1,0,0,0,1639,1640,1,0,0,0, + 1640,1642,5,10,0,0,1641,1643,5,146,0,0,1642,1641,1,0,0,0,1642,1643,1, + 0,0,0,1643,1644,1,0,0,0,1644,1646,3,140,70,0,1645,1638,1,0,0,0,1645,1646, + 1,0,0,0,1646,1666,1,0,0,0,1647,1649,5,146,0,0,1648,1647,1,0,0,0,1648, + 1649,1,0,0,0,1649,1650,1,0,0,0,1650,1652,5,10,0,0,1651,1653,5,146,0,0, + 1652,1651,1,0,0,0,1652,1653,1,0,0,0,1653,1654,1,0,0,0,1654,1656,3,172, + 86,0,1655,1657,5,146,0,0,1656,1655,1,0,0,0,1656,1657,1,0,0,0,1657,1658, + 1,0,0,0,1658,1660,5,4,0,0,1659,1661,5,146,0,0,1660,1659,1,0,0,0,1660, + 1661,1,0,0,0,1661,1662,1,0,0,0,1662,1664,3,170,85,0,1663,1665,5,146,0, + 0,1664,1663,1,0,0,0,1664,1665,1,0,0,0,1665,1667,1,0,0,0,1666,1648,1,0, + 0,0,1666,1667,1,0,0,0,1667,1668,1,0,0,0,1668,1669,5,3,0,0,1669,169,1, + 0,0,0,1670,1672,5,8,0,0,1671,1673,5,146,0,0,1672,1671,1,0,0,0,1672,1673, + 1,0,0,0,1673,1675,1,0,0,0,1674,1676,3,128,64,0,1675,1674,1,0,0,0,1675, + 1676,1,0,0,0,1676,1678,1,0,0,0,1677,1679,5,146,0,0,1678,1677,1,0,0,0, + 1678,1679,1,0,0,0,1679,1680,1,0,0,0,1680,1681,5,9,0,0,1681,171,1,0,0, + 0,1682,1684,5,8,0,0,1683,1685,5,146,0,0,1684,1683,1,0,0,0,1684,1685,1, + 0,0,0,1685,1687,1,0,0,0,1686,1688,3,128,64,0,1687,1686,1,0,0,0,1687,1688, + 1,0,0,0,1688,1690,1,0,0,0,1689,1691,5,146,0,0,1690,1689,1,0,0,0,1690, + 1691,1,0,0,0,1691,1692,1,0,0,0,1692,1693,5,9,0,0,1693,173,1,0,0,0,1694, + 1695,5,134,0,0,1695,175,1,0,0,0,1696,1697,5,134,0,0,1697,177,1,0,0,0, + 1698,1699,3,276,138,0,1699,179,1,0,0,0,1700,1701,3,276,138,0,1701,181, + 1,0,0,0,1702,1703,3,184,92,0,1703,183,1,0,0,0,1704,1711,3,186,93,0,1705, + 1706,5,146,0,0,1706,1707,5,109,0,0,1707,1708,5,146,0,0,1708,1710,3,186, + 93,0,1709,1705,1,0,0,0,1710,1713,1,0,0,0,1711,1709,1,0,0,0,1711,1712, + 1,0,0,0,1712,185,1,0,0,0,1713,1711,1,0,0,0,1714,1721,3,188,94,0,1715, + 1716,5,146,0,0,1716,1717,5,110,0,0,1717,1718,5,146,0,0,1718,1720,3,188, + 94,0,1719,1715,1,0,0,0,1720,1723,1,0,0,0,1721,1719,1,0,0,0,1721,1722, + 1,0,0,0,1722,187,1,0,0,0,1723,1721,1,0,0,0,1724,1731,3,190,95,0,1725, + 1726,5,146,0,0,1726,1727,5,111,0,0,1727,1728,5,146,0,0,1728,1730,3,190, + 95,0,1729,1725,1,0,0,0,1730,1733,1,0,0,0,1731,1729,1,0,0,0,1731,1732, + 1,0,0,0,1732,189,1,0,0,0,1733,1731,1,0,0,0,1734,1736,5,112,0,0,1735,1737, + 5,146,0,0,1736,1735,1,0,0,0,1736,1737,1,0,0,0,1737,1739,1,0,0,0,1738, + 1734,1,0,0,0,1739,1742,1,0,0,0,1740,1738,1,0,0,0,1740,1741,1,0,0,0,1741, + 1743,1,0,0,0,1742,1740,1,0,0,0,1743,1744,3,192,96,0,1744,191,1,0,0,0, + 1745,1755,3,196,98,0,1746,1748,5,146,0,0,1747,1746,1,0,0,0,1747,1748, + 1,0,0,0,1748,1749,1,0,0,0,1749,1751,3,194,97,0,1750,1752,5,146,0,0,1751, + 1750,1,0,0,0,1751,1752,1,0,0,0,1752,1753,1,0,0,0,1753,1754,3,196,98,0, + 1754,1756,1,0,0,0,1755,1747,1,0,0,0,1755,1756,1,0,0,0,1756,1794,1,0,0, + 0,1757,1759,3,196,98,0,1758,1760,5,146,0,0,1759,1758,1,0,0,0,1759,1760, + 1,0,0,0,1760,1761,1,0,0,0,1761,1763,5,113,0,0,1762,1764,5,146,0,0,1763, + 1762,1,0,0,0,1763,1764,1,0,0,0,1764,1765,1,0,0,0,1765,1766,3,196,98,0, + 1766,1767,1,0,0,0,1767,1768,6,96,-1,0,1768,1794,1,0,0,0,1769,1771,3,196, + 98,0,1770,1772,5,146,0,0,1771,1770,1,0,0,0,1771,1772,1,0,0,0,1772,1773, + 1,0,0,0,1773,1775,3,194,97,0,1774,1776,5,146,0,0,1775,1774,1,0,0,0,1775, + 1776,1,0,0,0,1776,1777,1,0,0,0,1777,1787,3,196,98,0,1778,1780,5,146,0, + 0,1779,1778,1,0,0,0,1779,1780,1,0,0,0,1780,1781,1,0,0,0,1781,1783,3,194, + 97,0,1782,1784,5,146,0,0,1783,1782,1,0,0,0,1783,1784,1,0,0,0,1784,1785, + 1,0,0,0,1785,1786,3,196,98,0,1786,1788,1,0,0,0,1787,1779,1,0,0,0,1788, + 1789,1,0,0,0,1789,1787,1,0,0,0,1789,1790,1,0,0,0,1790,1791,1,0,0,0,1791, + 1792,6,96,-1,0,1792,1794,1,0,0,0,1793,1745,1,0,0,0,1793,1757,1,0,0,0, + 1793,1769,1,0,0,0,1794,193,1,0,0,0,1795,1796,7,2,0,0,1796,195,1,0,0,0, + 1797,1808,3,198,99,0,1798,1800,5,146,0,0,1799,1798,1,0,0,0,1799,1800, + 1,0,0,0,1800,1801,1,0,0,0,1801,1803,5,10,0,0,1802,1804,5,146,0,0,1803, + 1802,1,0,0,0,1803,1804,1,0,0,0,1804,1805,1,0,0,0,1805,1807,3,198,99,0, + 1806,1799,1,0,0,0,1807,1810,1,0,0,0,1808,1806,1,0,0,0,1808,1809,1,0,0, + 0,1809,197,1,0,0,0,1810,1808,1,0,0,0,1811,1822,3,200,100,0,1812,1814, + 5,146,0,0,1813,1812,1,0,0,0,1813,1814,1,0,0,0,1814,1815,1,0,0,0,1815, + 1817,5,17,0,0,1816,1818,5,146,0,0,1817,1816,1,0,0,0,1817,1818,1,0,0,0, + 1818,1819,1,0,0,0,1819,1821,3,200,100,0,1820,1813,1,0,0,0,1821,1824,1, + 0,0,0,1822,1820,1,0,0,0,1822,1823,1,0,0,0,1823,199,1,0,0,0,1824,1822, + 1,0,0,0,1825,1837,3,204,102,0,1826,1828,5,146,0,0,1827,1826,1,0,0,0,1827, + 1828,1,0,0,0,1828,1829,1,0,0,0,1829,1831,3,202,101,0,1830,1832,5,146, + 0,0,1831,1830,1,0,0,0,1831,1832,1,0,0,0,1832,1833,1,0,0,0,1833,1834,3, + 204,102,0,1834,1836,1,0,0,0,1835,1827,1,0,0,0,1836,1839,1,0,0,0,1837, + 1835,1,0,0,0,1837,1838,1,0,0,0,1838,201,1,0,0,0,1839,1837,1,0,0,0,1840, + 1841,7,3,0,0,1841,203,1,0,0,0,1842,1854,3,208,104,0,1843,1845,5,146,0, + 0,1844,1843,1,0,0,0,1844,1845,1,0,0,0,1845,1846,1,0,0,0,1846,1848,3,206, + 103,0,1847,1849,5,146,0,0,1848,1847,1,0,0,0,1848,1849,1,0,0,0,1849,1850, + 1,0,0,0,1850,1851,3,208,104,0,1851,1853,1,0,0,0,1852,1844,1,0,0,0,1853, + 1856,1,0,0,0,1854,1852,1,0,0,0,1854,1855,1,0,0,0,1855,205,1,0,0,0,1856, + 1854,1,0,0,0,1857,1858,7,4,0,0,1858,207,1,0,0,0,1859,1871,3,212,106,0, + 1860,1862,5,146,0,0,1861,1860,1,0,0,0,1861,1862,1,0,0,0,1862,1863,1,0, + 0,0,1863,1865,3,210,105,0,1864,1866,5,146,0,0,1865,1864,1,0,0,0,1865, + 1866,1,0,0,0,1866,1867,1,0,0,0,1867,1868,3,212,106,0,1868,1870,1,0,0, + 0,1869,1861,1,0,0,0,1870,1873,1,0,0,0,1871,1869,1,0,0,0,1871,1872,1,0, + 0,0,1872,209,1,0,0,0,1873,1871,1,0,0,0,1874,1875,7,5,0,0,1875,211,1,0, + 0,0,1876,1887,3,214,107,0,1877,1879,5,146,0,0,1878,1877,1,0,0,0,1878, + 1879,1,0,0,0,1879,1880,1,0,0,0,1880,1882,5,23,0,0,1881,1883,5,146,0,0, + 1882,1881,1,0,0,0,1882,1883,1,0,0,0,1883,1884,1,0,0,0,1884,1886,3,214, + 107,0,1885,1878,1,0,0,0,1886,1889,1,0,0,0,1887,1885,1,0,0,0,1887,1888, + 1,0,0,0,1888,213,1,0,0,0,1889,1887,1,0,0,0,1890,1892,5,114,0,0,1891,1893, + 5,146,0,0,1892,1891,1,0,0,0,1892,1893,1,0,0,0,1893,1895,1,0,0,0,1894, + 1890,1,0,0,0,1895,1898,1,0,0,0,1896,1894,1,0,0,0,1896,1897,1,0,0,0,1897, + 1899,1,0,0,0,1898,1896,1,0,0,0,1899,1904,3,216,108,0,1900,1902,5,146, + 0,0,1901,1900,1,0,0,0,1901,1902,1,0,0,0,1902,1903,1,0,0,0,1903,1905,5, + 115,0,0,1904,1901,1,0,0,0,1904,1905,1,0,0,0,1905,215,1,0,0,0,1906,1914, + 3,226,113,0,1907,1915,3,220,110,0,1908,1910,3,218,109,0,1909,1908,1,0, + 0,0,1910,1911,1,0,0,0,1911,1909,1,0,0,0,1911,1912,1,0,0,0,1912,1915,1, + 0,0,0,1913,1915,3,224,112,0,1914,1907,1,0,0,0,1914,1909,1,0,0,0,1914, + 1913,1,0,0,0,1914,1915,1,0,0,0,1915,217,1,0,0,0,1916,1917,5,146,0,0,1917, + 1919,5,117,0,0,1918,1920,5,146,0,0,1919,1918,1,0,0,0,1919,1920,1,0,0, + 0,1920,1921,1,0,0,0,1921,1936,3,226,113,0,1922,1923,5,6,0,0,1923,1924, + 3,182,91,0,1924,1925,5,7,0,0,1925,1936,1,0,0,0,1926,1928,5,6,0,0,1927, + 1929,3,182,91,0,1928,1927,1,0,0,0,1928,1929,1,0,0,0,1929,1930,1,0,0,0, + 1930,1932,5,116,0,0,1931,1933,3,182,91,0,1932,1931,1,0,0,0,1932,1933, + 1,0,0,0,1933,1934,1,0,0,0,1934,1936,5,7,0,0,1935,1916,1,0,0,0,1935,1922, + 1,0,0,0,1935,1926,1,0,0,0,1936,219,1,0,0,0,1937,1949,3,222,111,0,1938, + 1939,5,146,0,0,1939,1940,5,118,0,0,1940,1941,5,146,0,0,1941,1949,5,94, + 0,0,1942,1943,5,146,0,0,1943,1944,5,119,0,0,1944,1945,5,146,0,0,1945, + 1949,5,94,0,0,1946,1947,5,146,0,0,1947,1949,5,120,0,0,1948,1937,1,0,0, + 0,1948,1938,1,0,0,0,1948,1942,1,0,0,0,1948,1946,1,0,0,0,1949,1951,1,0, + 0,0,1950,1952,5,146,0,0,1951,1950,1,0,0,0,1951,1952,1,0,0,0,1952,1953, + 1,0,0,0,1953,1954,3,226,113,0,1954,221,1,0,0,0,1955,1957,5,146,0,0,1956, + 1955,1,0,0,0,1956,1957,1,0,0,0,1957,1958,1,0,0,0,1958,1959,5,24,0,0,1959, + 223,1,0,0,0,1960,1961,5,146,0,0,1961,1962,5,121,0,0,1962,1963,5,146,0, + 0,1963,1971,5,122,0,0,1964,1965,5,146,0,0,1965,1966,5,121,0,0,1966,1967, + 5,146,0,0,1967,1968,5,112,0,0,1968,1969,5,146,0,0,1969,1971,5,122,0,0, + 1970,1960,1,0,0,0,1970,1964,1,0,0,0,1971,225,1,0,0,0,1972,1979,3,228, + 114,0,1973,1975,5,146,0,0,1974,1973,1,0,0,0,1974,1975,1,0,0,0,1975,1976, + 1,0,0,0,1976,1978,3,256,128,0,1977,1974,1,0,0,0,1978,1981,1,0,0,0,1979, + 1977,1,0,0,0,1979,1980,1,0,0,0,1980,227,1,0,0,0,1981,1979,1,0,0,0,1982, + 1992,3,230,115,0,1983,1992,3,266,133,0,1984,1992,3,258,129,0,1985,1992, + 3,242,121,0,1986,1992,3,244,122,0,1987,1992,3,250,125,0,1988,1992,3,252, + 126,0,1989,1992,3,254,127,0,1990,1992,3,262,131,0,1991,1982,1,0,0,0,1991, + 1983,1,0,0,0,1991,1984,1,0,0,0,1991,1985,1,0,0,0,1991,1986,1,0,0,0,1991, + 1987,1,0,0,0,1991,1988,1,0,0,0,1991,1989,1,0,0,0,1991,1990,1,0,0,0,1992, + 229,1,0,0,0,1993,2000,3,264,132,0,1994,2000,5,132,0,0,1995,2000,3,232, + 116,0,1996,2000,5,122,0,0,1997,2000,3,234,117,0,1998,2000,3,238,119,0, + 1999,1993,1,0,0,0,1999,1994,1,0,0,0,1999,1995,1,0,0,0,1999,1996,1,0,0, + 0,1999,1997,1,0,0,0,1999,1998,1,0,0,0,2000,231,1,0,0,0,2001,2002,7,6, + 0,0,2002,233,1,0,0,0,2003,2005,5,6,0,0,2004,2006,5,146,0,0,2005,2004, + 1,0,0,0,2005,2006,1,0,0,0,2006,2020,1,0,0,0,2007,2009,3,182,91,0,2008, + 2010,5,146,0,0,2009,2008,1,0,0,0,2009,2010,1,0,0,0,2010,2017,1,0,0,0, + 2011,2013,3,236,118,0,2012,2014,5,146,0,0,2013,2012,1,0,0,0,2013,2014, + 1,0,0,0,2014,2016,1,0,0,0,2015,2011,1,0,0,0,2016,2019,1,0,0,0,2017,2015, + 1,0,0,0,2017,2018,1,0,0,0,2018,2021,1,0,0,0,2019,2017,1,0,0,0,2020,2007, + 1,0,0,0,2020,2021,1,0,0,0,2021,2022,1,0,0,0,2022,2023,5,7,0,0,2023,235, + 1,0,0,0,2024,2026,5,4,0,0,2025,2027,5,146,0,0,2026,2025,1,0,0,0,2026, + 2027,1,0,0,0,2027,2029,1,0,0,0,2028,2030,3,182,91,0,2029,2028,1,0,0,0, + 2029,2030,1,0,0,0,2030,237,1,0,0,0,2031,2033,5,8,0,0,2032,2034,5,146, + 0,0,2033,2032,1,0,0,0,2033,2034,1,0,0,0,2034,2035,1,0,0,0,2035,2037,3, + 240,120,0,2036,2038,5,146,0,0,2037,2036,1,0,0,0,2037,2038,1,0,0,0,2038, + 2049,1,0,0,0,2039,2041,5,4,0,0,2040,2042,5,146,0,0,2041,2040,1,0,0,0, + 2041,2042,1,0,0,0,2042,2043,1,0,0,0,2043,2045,3,240,120,0,2044,2046,5, + 146,0,0,2045,2044,1,0,0,0,2045,2046,1,0,0,0,2046,2048,1,0,0,0,2047,2039, + 1,0,0,0,2048,2051,1,0,0,0,2049,2047,1,0,0,0,2049,2050,1,0,0,0,2050,2052, + 1,0,0,0,2051,2049,1,0,0,0,2052,2053,5,9,0,0,2053,239,1,0,0,0,2054,2057, + 3,278,139,0,2055,2057,5,132,0,0,2056,2054,1,0,0,0,2056,2055,1,0,0,0,2057, + 2059,1,0,0,0,2058,2060,5,146,0,0,2059,2058,1,0,0,0,2059,2060,1,0,0,0, + 2060,2061,1,0,0,0,2061,2063,5,116,0,0,2062,2064,5,146,0,0,2063,2062,1, + 0,0,0,2063,2064,1,0,0,0,2064,2065,1,0,0,0,2065,2066,3,182,91,0,2066,241, + 1,0,0,0,2067,2069,5,2,0,0,2068,2070,5,146,0,0,2069,2068,1,0,0,0,2069, + 2070,1,0,0,0,2070,2071,1,0,0,0,2071,2073,3,182,91,0,2072,2074,5,146,0, + 0,2073,2072,1,0,0,0,2073,2074,1,0,0,0,2074,2075,1,0,0,0,2075,2076,5,3, + 0,0,2076,243,1,0,0,0,2077,2079,5,125,0,0,2078,2080,5,146,0,0,2079,2078, + 1,0,0,0,2079,2080,1,0,0,0,2080,2081,1,0,0,0,2081,2083,5,2,0,0,2082,2084, + 5,146,0,0,2083,2082,1,0,0,0,2083,2084,1,0,0,0,2084,2085,1,0,0,0,2085, + 2087,5,97,0,0,2086,2088,5,146,0,0,2087,2086,1,0,0,0,2087,2088,1,0,0,0, + 2088,2089,1,0,0,0,2089,2126,5,3,0,0,2090,2092,3,246,123,0,2091,2093,5, + 146,0,0,2092,2091,1,0,0,0,2092,2093,1,0,0,0,2093,2094,1,0,0,0,2094,2096, + 5,2,0,0,2095,2097,5,146,0,0,2096,2095,1,0,0,0,2096,2097,1,0,0,0,2097, + 2102,1,0,0,0,2098,2100,5,96,0,0,2099,2101,5,146,0,0,2100,2099,1,0,0,0, + 2100,2101,1,0,0,0,2101,2103,1,0,0,0,2102,2098,1,0,0,0,2102,2103,1,0,0, + 0,2103,2121,1,0,0,0,2104,2106,3,248,124,0,2105,2107,5,146,0,0,2106,2105, + 1,0,0,0,2106,2107,1,0,0,0,2107,2118,1,0,0,0,2108,2110,5,4,0,0,2109,2111, + 5,146,0,0,2110,2109,1,0,0,0,2110,2111,1,0,0,0,2111,2112,1,0,0,0,2112, + 2114,3,248,124,0,2113,2115,5,146,0,0,2114,2113,1,0,0,0,2114,2115,1,0, + 0,0,2115,2117,1,0,0,0,2116,2108,1,0,0,0,2117,2120,1,0,0,0,2118,2116,1, + 0,0,0,2118,2119,1,0,0,0,2119,2122,1,0,0,0,2120,2118,1,0,0,0,2121,2104, + 1,0,0,0,2121,2122,1,0,0,0,2122,2123,1,0,0,0,2123,2124,5,3,0,0,2124,2126, + 1,0,0,0,2125,2077,1,0,0,0,2125,2090,1,0,0,0,2126,245,1,0,0,0,2127,2128, + 3,278,139,0,2128,247,1,0,0,0,2129,2131,3,278,139,0,2130,2132,5,146,0, + 0,2131,2130,1,0,0,0,2131,2132,1,0,0,0,2132,2133,1,0,0,0,2133,2134,5,116, + 0,0,2134,2136,5,5,0,0,2135,2137,5,146,0,0,2136,2135,1,0,0,0,2136,2137, + 1,0,0,0,2137,2139,1,0,0,0,2138,2129,1,0,0,0,2138,2139,1,0,0,0,2139,2140, + 1,0,0,0,2140,2141,3,182,91,0,2141,249,1,0,0,0,2142,2147,3,150,75,0,2143, + 2145,5,146,0,0,2144,2143,1,0,0,0,2144,2145,1,0,0,0,2145,2146,1,0,0,0, + 2146,2148,3,152,76,0,2147,2144,1,0,0,0,2148,2149,1,0,0,0,2149,2147,1, + 0,0,0,2149,2150,1,0,0,0,2150,251,1,0,0,0,2151,2153,5,126,0,0,2152,2154, + 5,146,0,0,2153,2152,1,0,0,0,2153,2154,1,0,0,0,2154,2155,1,0,0,0,2155, + 2157,5,8,0,0,2156,2158,5,146,0,0,2157,2156,1,0,0,0,2157,2158,1,0,0,0, + 2158,2159,1,0,0,0,2159,2161,5,86,0,0,2160,2162,5,146,0,0,2161,2160,1, + 0,0,0,2161,2162,1,0,0,0,2162,2163,1,0,0,0,2163,2168,3,142,71,0,2164,2166, + 5,146,0,0,2165,2164,1,0,0,0,2165,2166,1,0,0,0,2166,2167,1,0,0,0,2167, + 2169,3,140,70,0,2168,2165,1,0,0,0,2168,2169,1,0,0,0,2169,2171,1,0,0,0, + 2170,2172,5,146,0,0,2171,2170,1,0,0,0,2171,2172,1,0,0,0,2172,2173,1,0, + 0,0,2173,2174,5,9,0,0,2174,253,1,0,0,0,2175,2177,5,125,0,0,2176,2178, + 5,146,0,0,2177,2176,1,0,0,0,2177,2178,1,0,0,0,2178,2179,1,0,0,0,2179, + 2181,5,8,0,0,2180,2182,5,146,0,0,2181,2180,1,0,0,0,2181,2182,1,0,0,0, + 2182,2183,1,0,0,0,2183,2185,5,86,0,0,2184,2186,5,146,0,0,2185,2184,1, + 0,0,0,2185,2186,1,0,0,0,2186,2187,1,0,0,0,2187,2192,3,142,71,0,2188,2190, + 5,146,0,0,2189,2188,1,0,0,0,2189,2190,1,0,0,0,2190,2191,1,0,0,0,2191, + 2193,3,140,70,0,2192,2189,1,0,0,0,2192,2193,1,0,0,0,2193,2195,1,0,0,0, + 2194,2196,5,146,0,0,2195,2194,1,0,0,0,2195,2196,1,0,0,0,2196,2197,1,0, + 0,0,2197,2198,5,9,0,0,2198,255,1,0,0,0,2199,2201,5,25,0,0,2200,2202,5, + 146,0,0,2201,2200,1,0,0,0,2201,2202,1,0,0,0,2202,2205,1,0,0,0,2203,2206, + 3,270,135,0,2204,2206,5,97,0,0,2205,2203,1,0,0,0,2205,2204,1,0,0,0,2206, + 257,1,0,0,0,2207,2212,5,127,0,0,2208,2210,5,146,0,0,2209,2208,1,0,0,0, + 2209,2210,1,0,0,0,2210,2211,1,0,0,0,2211,2213,3,260,130,0,2212,2209,1, + 0,0,0,2213,2214,1,0,0,0,2214,2212,1,0,0,0,2214,2215,1,0,0,0,2215,2230, + 1,0,0,0,2216,2218,5,127,0,0,2217,2219,5,146,0,0,2218,2217,1,0,0,0,2218, + 2219,1,0,0,0,2219,2220,1,0,0,0,2220,2225,3,182,91,0,2221,2223,5,146,0, + 0,2222,2221,1,0,0,0,2222,2223,1,0,0,0,2223,2224,1,0,0,0,2224,2226,3,260, + 130,0,2225,2222,1,0,0,0,2226,2227,1,0,0,0,2227,2225,1,0,0,0,2227,2228, + 1,0,0,0,2228,2230,1,0,0,0,2229,2207,1,0,0,0,2229,2216,1,0,0,0,2230,2239, + 1,0,0,0,2231,2233,5,146,0,0,2232,2231,1,0,0,0,2232,2233,1,0,0,0,2233, + 2234,1,0,0,0,2234,2236,5,128,0,0,2235,2237,5,146,0,0,2236,2235,1,0,0, + 0,2236,2237,1,0,0,0,2237,2238,1,0,0,0,2238,2240,3,182,91,0,2239,2232, + 1,0,0,0,2239,2240,1,0,0,0,2240,2242,1,0,0,0,2241,2243,5,146,0,0,2242, + 2241,1,0,0,0,2242,2243,1,0,0,0,2243,2244,1,0,0,0,2244,2245,5,129,0,0, + 2245,259,1,0,0,0,2246,2248,5,130,0,0,2247,2249,5,146,0,0,2248,2247,1, + 0,0,0,2248,2249,1,0,0,0,2249,2250,1,0,0,0,2250,2252,3,182,91,0,2251,2253, + 5,146,0,0,2252,2251,1,0,0,0,2252,2253,1,0,0,0,2253,2254,1,0,0,0,2254, + 2256,5,131,0,0,2255,2257,5,146,0,0,2256,2255,1,0,0,0,2256,2257,1,0,0, + 0,2257,2258,1,0,0,0,2258,2259,3,182,91,0,2259,261,1,0,0,0,2260,2261,3, + 278,139,0,2261,263,1,0,0,0,2262,2265,3,274,137,0,2263,2265,3,272,136, + 0,2264,2262,1,0,0,0,2264,2263,1,0,0,0,2265,265,1,0,0,0,2266,2269,5,26, + 0,0,2267,2270,3,278,139,0,2268,2270,5,134,0,0,2269,2267,1,0,0,0,2269, + 2268,1,0,0,0,2270,267,1,0,0,0,2271,2273,3,228,114,0,2272,2274,5,146,0, + 0,2273,2272,1,0,0,0,2273,2274,1,0,0,0,2274,2275,1,0,0,0,2275,2276,3,256, + 128,0,2276,269,1,0,0,0,2277,2278,3,276,138,0,2278,271,1,0,0,0,2279,2280, + 5,134,0,0,2280,273,1,0,0,0,2281,2282,5,141,0,0,2282,275,1,0,0,0,2283, + 2284,3,278,139,0,2284,277,1,0,0,0,2285,2291,5,142,0,0,2286,2287,5,145, + 0,0,2287,2291,6,139,-1,0,2288,2291,5,135,0,0,2289,2291,3,280,140,0,2290, + 2285,1,0,0,0,2290,2286,1,0,0,0,2290,2288,1,0,0,0,2290,2289,1,0,0,0,2291, + 279,1,0,0,0,2292,2293,7,7,0,0,2293,281,1,0,0,0,2294,2295,7,8,0,0,2295, + 283,1,0,0,0,2296,2297,7,9,0,0,2297,285,1,0,0,0,2298,2299,7,10,0,0,2299, + 287,1,0,0,0,401,290,294,299,303,308,311,315,318,331,337,341,345,349,352, + 358,361,365,369,373,377,381,386,397,401,405,410,423,427,435,439,443,447, + 455,459,463,467,473,477,499,503,506,509,512,515,519,524,528,538,542,547, + 552,557,563,567,571,576,583,587,591,594,598,602,607,612,616,626,636,640, + 644,648,653,665,669,673,677,681,683,687,691,693,707,711,715,719,724,727, + 731,735,737,741,745,747,783,794,816,820,825,836,840,844,852,856,860,866, + 870,874,880,884,888,892,896,900,906,913,918,924,944,948,956,966,971,976, + 980,985,991,996,999,1003,1007,1011,1017,1021,1026,1031,1035,1038,1042, + 1046,1050,1054,1058,1064,1068,1073,1077,1086,1092,1100,1104,1108,1112, + 1119,1123,1127,1131,1134,1137,1140,1146,1149,1153,1157,1161,1164,1168, + 1178,1184,1191,1204,1208,1212,1216,1221,1226,1230,1236,1240,1244,1248, + 1253,1259,1262,1268,1271,1277,1281,1285,1289,1293,1298,1303,1307,1312, + 1315,1324,1333,1338,1351,1354,1362,1366,1371,1376,1380,1385,1391,1396, + 1403,1407,1411,1413,1417,1419,1423,1425,1431,1437,1441,1444,1447,1453, + 1456,1459,1463,1469,1472,1475,1479,1483,1487,1489,1493,1495,1499,1501, + 1505,1507,1513,1517,1521,1525,1529,1533,1537,1541,1545,1548,1554,1558, + 1562,1565,1570,1575,1580,1585,1591,1597,1600,1603,1606,1610,1613,1616, + 1619,1622,1626,1630,1634,1638,1642,1645,1648,1652,1656,1660,1664,1666, + 1672,1675,1678,1684,1687,1690,1711,1721,1731,1736,1740,1747,1751,1755, + 1759,1763,1771,1775,1779,1783,1789,1793,1799,1803,1808,1813,1817,1822, + 1827,1831,1837,1844,1848,1854,1861,1865,1871,1878,1882,1887,1892,1896, + 1901,1904,1911,1914,1919,1928,1932,1935,1948,1951,1956,1970,1974,1979, + 1991,1999,2005,2009,2013,2017,2020,2026,2029,2033,2037,2041,2045,2049, + 2056,2059,2063,2069,2073,2079,2083,2087,2092,2096,2100,2102,2106,2110, + 2114,2118,2121,2125,2131,2136,2138,2144,2149,2153,2157,2161,2165,2168, + 2171,2177,2181,2185,2189,2192,2195,2201,2205,2209,2214,2218,2222,2227, + 2229,2232,2236,2239,2242,2248,2252,2256,2264,2269,2273,2290 }; staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); @@ -1073,20 +1080,125 @@ antlr4::atn::SerializedATNView CypherParser::getSerializedATN() const { } -//----------------- OC_CypherContext ------------------------------------------------------------------ +//----------------- Ku_StatementsContext ------------------------------------------------------------------ -CypherParser::OC_CypherContext::OC_CypherContext(ParserRuleContext *parent, size_t invokingState) +CypherParser::Ku_StatementsContext::Ku_StatementsContext(ParserRuleContext *parent, size_t invokingState) : ParserRuleContext(parent, invokingState) { } -tree::TerminalNode* CypherParser::OC_CypherContext::EOF() { +std::vector CypherParser::Ku_StatementsContext::oC_Cypher() { + return getRuleContexts(); +} + +CypherParser::OC_CypherContext* CypherParser::Ku_StatementsContext::oC_Cypher(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* CypherParser::Ku_StatementsContext::EOF() { return getToken(CypherParser::EOF, 0); } +std::vector CypherParser::Ku_StatementsContext::SP() { + return getTokens(CypherParser::SP); +} + +tree::TerminalNode* CypherParser::Ku_StatementsContext::SP(size_t i) { + return getToken(CypherParser::SP, i); +} + + +size_t CypherParser::Ku_StatementsContext::getRuleIndex() const { + return CypherParser::RuleKu_Statements; +} + + +CypherParser::Ku_StatementsContext* CypherParser::ku_Statements() { + Ku_StatementsContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 0, CypherParser::RuleKu_Statements); + size_t _la = 0; + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + size_t alt; + enterOuterAlt(_localctx, 1); + setState(288); + oC_Cypher(); + setState(299); + _errHandler->sync(this); + alt = getInterpreter()->adaptivePredict(_input, 2, _ctx); + while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { + if (alt == 1) { + setState(290); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(289); + match(CypherParser::SP); + } + setState(292); + match(CypherParser::T__0); + setState(294); + _errHandler->sync(this); + + switch (getInterpreter()->adaptivePredict(_input, 1, _ctx)) { + case 1: { + setState(293); + match(CypherParser::SP); + break; + } + + default: + break; + } + setState(296); + oC_Cypher(); + } + setState(301); + _errHandler->sync(this); + alt = getInterpreter()->adaptivePredict(_input, 2, _ctx); + } + setState(303); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(302); + match(CypherParser::SP); + } + setState(305); + match(CypherParser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- OC_CypherContext ------------------------------------------------------------------ + +CypherParser::OC_CypherContext::OC_CypherContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + CypherParser::OC_StatementContext* CypherParser::OC_CypherContext::oC_Statement() { return getRuleContext(0); } +CypherParser::OC_AnyCypherOptionContext* CypherParser::OC_CypherContext::oC_AnyCypherOption() { + return getRuleContext(0); +} + std::vector CypherParser::OC_CypherContext::SP() { return getTokens(CypherParser::SP); } @@ -1095,10 +1207,6 @@ tree::TerminalNode* CypherParser::OC_CypherContext::SP(size_t i) { return getToken(CypherParser::SP, i); } -CypherParser::OC_AnyCypherOptionContext* CypherParser::OC_CypherContext::oC_AnyCypherOption() { - return getRuleContext(0); -} - size_t CypherParser::OC_CypherContext::getRuleIndex() const { return CypherParser::RuleOC_Cypher; @@ -1107,7 +1215,7 @@ size_t CypherParser::OC_CypherContext::getRuleIndex() const { CypherParser::OC_CypherContext* CypherParser::oC_Cypher() { OC_CypherContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 0, CypherParser::RuleOC_Cypher); + enterRule(_localctx, 2, CypherParser::RuleOC_Cypher); size_t _la = 0; #if __cplusplus > 201703L @@ -1119,54 +1227,41 @@ CypherParser::OC_CypherContext* CypherParser::oC_Cypher() { }); try { enterOuterAlt(_localctx, 1); - setState(287); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 0, _ctx)) { - case 1: { - setState(286); - match(CypherParser::SP); - break; - } - - default: - break; - } - setState(290); + setState(308); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::EXPLAIN || _la == CypherParser::PROFILE) { - setState(289); + setState(307); oC_AnyCypherOption(); } - setState(293); + setState(311); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(292); + setState(310); match(CypherParser::SP); } - setState(295); + setState(313); oC_Statement(); - setState(300); + setState(318); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 4, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 7, _ctx)) { case 1: { - setState(297); + setState(315); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(296); + setState(314); match(CypherParser::SP); } - setState(299); + setState(317); match(CypherParser::T__0); break; } @@ -1174,16 +1269,6 @@ CypherParser::OC_CypherContext* CypherParser::oC_Cypher() { default: break; } - setState(303); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == CypherParser::SP) { - setState(302); - match(CypherParser::SP); - } - setState(305); - match(CypherParser::EOF); } catch (RecognitionException &e) { @@ -1253,7 +1338,7 @@ size_t CypherParser::OC_StatementContext::getRuleIndex() const { CypherParser::OC_StatementContext* CypherParser::oC_Statement() { OC_StatementContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 2, CypherParser::RuleOC_Statement); + enterRule(_localctx, 4, CypherParser::RuleOC_Statement); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -1263,82 +1348,82 @@ CypherParser::OC_StatementContext* CypherParser::oC_Statement() { exitRule(); }); try { - setState(318); + setState(331); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 6, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 8, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(307); + setState(320); oC_Query(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(308); + setState(321); kU_DDL(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(309); + setState(322); kU_CopyFrom(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(310); + setState(323); kU_CopyFromByColumn(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(311); + setState(324); kU_CopyTO(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(312); + setState(325); kU_StandaloneCall(); break; } case 7: { enterOuterAlt(_localctx, 7); - setState(313); + setState(326); kU_CreateMacro(); break; } case 8: { enterOuterAlt(_localctx, 8); - setState(314); + setState(327); kU_CommentOn(); break; } case 9: { enterOuterAlt(_localctx, 9); - setState(315); + setState(328); kU_Transaction(); break; } case 10: { enterOuterAlt(_localctx, 10); - setState(316); + setState(329); kU_Extension(); break; } case 11: { enterOuterAlt(_localctx, 11); - setState(317); + setState(330); kU_ExportDatabase(); break; } @@ -1407,7 +1492,7 @@ size_t CypherParser::KU_CopyFromContext::getRuleIndex() const { CypherParser::KU_CopyFromContext* CypherParser::kU_CopyFrom() { KU_CopyFromContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 4, CypherParser::RuleKU_CopyFrom); + enterRule(_localctx, 6, CypherParser::RuleKU_CopyFrom); size_t _la = 0; #if __cplusplus > 201703L @@ -1419,59 +1504,59 @@ CypherParser::KU_CopyFromContext* CypherParser::kU_CopyFrom() { }); try { enterOuterAlt(_localctx, 1); - setState(320); + setState(333); match(CypherParser::COPY); - setState(321); + setState(334); match(CypherParser::SP); - setState(322); + setState(335); oC_SchemaName(); - setState(339); + setState(352); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 11, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 13, _ctx)) { case 1: { - setState(324); + setState(337); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(323); + setState(336); match(CypherParser::SP); } - setState(326); + setState(339); match(CypherParser::T__1); - setState(328); + setState(341); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(327); + setState(340); match(CypherParser::SP); } - setState(330); + setState(343); kU_ColumnNames(); - setState(332); + setState(345); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(331); + setState(344); match(CypherParser::SP); } - setState(334); + setState(347); match(CypherParser::T__2); - setState(336); + setState(349); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(335); + setState(348); match(CypherParser::SP); } break; } case 2: { - setState(338); + setState(351); match(CypherParser::SP); break; } @@ -1479,17 +1564,17 @@ CypherParser::KU_CopyFromContext* CypherParser::kU_CopyFrom() { default: break; } - setState(341); + setState(354); match(CypherParser::FROM); - setState(342); + setState(355); match(CypherParser::SP); - setState(345); + setState(358); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__5: case CypherParser::GLOB: case CypherParser::StringLiteral: { - setState(343); + setState(356); kU_FilePaths(); break; } @@ -1506,7 +1591,7 @@ CypherParser::KU_CopyFromContext* CypherParser::kU_CopyFrom() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(344); + setState(357); oC_Variable(); break; } @@ -1514,40 +1599,40 @@ CypherParser::KU_CopyFromContext* CypherParser::kU_CopyFrom() { default: throw NoViableAltException(this); } - setState(360); + setState(373); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 16, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 18, _ctx)) { case 1: { - setState(348); + setState(361); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(347); + setState(360); match(CypherParser::SP); } - setState(350); + setState(363); match(CypherParser::T__1); - setState(352); + setState(365); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(351); + setState(364); match(CypherParser::SP); } - setState(354); + setState(367); kU_ParsingOptions(); - setState(356); + setState(369); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(355); + setState(368); match(CypherParser::SP); } - setState(358); + setState(371); match(CypherParser::T__2); break; } @@ -1596,7 +1681,7 @@ size_t CypherParser::KU_ColumnNamesContext::getRuleIndex() const { CypherParser::KU_ColumnNamesContext* CypherParser::kU_ColumnNames() { KU_ColumnNamesContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 6, CypherParser::RuleKU_ColumnNames); + enterRule(_localctx, 8, CypherParser::RuleKU_ColumnNames); size_t _la = 0; #if __cplusplus > 201703L @@ -1609,37 +1694,37 @@ CypherParser::KU_ColumnNamesContext* CypherParser::kU_ColumnNames() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(362); + setState(375); oC_SchemaName(); - setState(373); + setState(386); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 19, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 21, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(364); + setState(377); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(363); + setState(376); match(CypherParser::SP); } - setState(366); + setState(379); match(CypherParser::T__3); - setState(368); + setState(381); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(367); + setState(380); match(CypherParser::SP); } - setState(370); + setState(383); oC_SchemaName(); } - setState(375); + setState(388); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 19, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 21, _ctx); } } @@ -1702,7 +1787,7 @@ size_t CypherParser::KU_CopyFromByColumnContext::getRuleIndex() const { CypherParser::KU_CopyFromByColumnContext* CypherParser::kU_CopyFromByColumn() { KU_CopyFromByColumnContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 8, CypherParser::RuleKU_CopyFromByColumn); + enterRule(_localctx, 10, CypherParser::RuleKU_CopyFromByColumn); size_t _la = 0; #if __cplusplus > 201703L @@ -1714,67 +1799,67 @@ CypherParser::KU_CopyFromByColumnContext* CypherParser::kU_CopyFromByColumn() { }); try { enterOuterAlt(_localctx, 1); - setState(376); + setState(389); match(CypherParser::COPY); - setState(377); + setState(390); match(CypherParser::SP); - setState(378); + setState(391); oC_SchemaName(); - setState(379); + setState(392); match(CypherParser::SP); - setState(380); + setState(393); match(CypherParser::FROM); - setState(381); + setState(394); match(CypherParser::SP); - setState(382); + setState(395); match(CypherParser::T__1); - setState(384); + setState(397); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(383); + setState(396); match(CypherParser::SP); } - setState(386); + setState(399); match(CypherParser::StringLiteral); - setState(397); + setState(410); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(388); + setState(401); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(387); + setState(400); match(CypherParser::SP); } - setState(390); + setState(403); match(CypherParser::T__3); - setState(392); + setState(405); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(391); + setState(404); match(CypherParser::SP); } - setState(394); + setState(407); match(CypherParser::StringLiteral); - setState(399); + setState(412); _errHandler->sync(this); _la = _input->LA(1); } - setState(400); + setState(413); match(CypherParser::T__2); - setState(401); + setState(414); match(CypherParser::SP); - setState(402); + setState(415); match(CypherParser::BY); - setState(403); + setState(416); match(CypherParser::SP); - setState(404); + setState(417); match(CypherParser::COLUMN); } @@ -1829,7 +1914,7 @@ size_t CypherParser::KU_CopyTOContext::getRuleIndex() const { CypherParser::KU_CopyTOContext* CypherParser::kU_CopyTO() { KU_CopyTOContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 10, CypherParser::RuleKU_CopyTO); + enterRule(_localctx, 12, CypherParser::RuleKU_CopyTO); size_t _la = 0; #if __cplusplus > 201703L @@ -1841,74 +1926,74 @@ CypherParser::KU_CopyTOContext* CypherParser::kU_CopyTO() { }); try { enterOuterAlt(_localctx, 1); - setState(406); + setState(419); match(CypherParser::COPY); - setState(407); + setState(420); match(CypherParser::SP); - setState(408); + setState(421); match(CypherParser::T__1); - setState(410); + setState(423); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(409); + setState(422); match(CypherParser::SP); } - setState(412); + setState(425); oC_Query(); - setState(414); + setState(427); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(413); + setState(426); match(CypherParser::SP); } - setState(416); + setState(429); match(CypherParser::T__2); - setState(417); + setState(430); match(CypherParser::SP); - setState(418); + setState(431); match(CypherParser::TO); - setState(419); + setState(432); match(CypherParser::SP); - setState(420); + setState(433); match(CypherParser::StringLiteral); - setState(434); + setState(447); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 29, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 31, _ctx)) { case 1: { - setState(422); + setState(435); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(421); + setState(434); match(CypherParser::SP); } - setState(424); + setState(437); match(CypherParser::T__1); - setState(426); + setState(439); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(425); + setState(438); match(CypherParser::SP); } - setState(428); + setState(441); kU_ParsingOptions(); - setState(430); + setState(443); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(429); + setState(442); match(CypherParser::SP); } - setState(432); + setState(445); match(CypherParser::T__2); break; } @@ -1965,7 +2050,7 @@ size_t CypherParser::KU_ExportDatabaseContext::getRuleIndex() const { CypherParser::KU_ExportDatabaseContext* CypherParser::kU_ExportDatabase() { KU_ExportDatabaseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 12, CypherParser::RuleKU_ExportDatabase); + enterRule(_localctx, 14, CypherParser::RuleKU_ExportDatabase); size_t _la = 0; #if __cplusplus > 201703L @@ -1977,50 +2062,50 @@ CypherParser::KU_ExportDatabaseContext* CypherParser::kU_ExportDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(436); + setState(449); match(CypherParser::EXPORT); - setState(437); + setState(450); match(CypherParser::SP); - setState(438); + setState(451); match(CypherParser::DATABASE); - setState(439); + setState(452); match(CypherParser::SP); - setState(440); + setState(453); match(CypherParser::StringLiteral); - setState(454); + setState(467); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 33, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 35, _ctx)) { case 1: { - setState(442); + setState(455); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(441); + setState(454); match(CypherParser::SP); } - setState(444); + setState(457); match(CypherParser::T__1); - setState(446); + setState(459); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(445); + setState(458); match(CypherParser::SP); } - setState(448); + setState(461); kU_ParsingOptions(); - setState(450); + setState(463); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(449); + setState(462); match(CypherParser::SP); } - setState(452); + setState(465); match(CypherParser::T__2); break; } @@ -2073,7 +2158,7 @@ size_t CypherParser::KU_StandaloneCallContext::getRuleIndex() const { CypherParser::KU_StandaloneCallContext* CypherParser::kU_StandaloneCall() { KU_StandaloneCallContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 14, CypherParser::RuleKU_StandaloneCall); + enterRule(_localctx, 16, CypherParser::RuleKU_StandaloneCall); size_t _la = 0; #if __cplusplus > 201703L @@ -2085,31 +2170,31 @@ CypherParser::KU_StandaloneCallContext* CypherParser::kU_StandaloneCall() { }); try { enterOuterAlt(_localctx, 1); - setState(456); + setState(469); match(CypherParser::CALL); - setState(457); + setState(470); match(CypherParser::SP); - setState(458); + setState(471); oC_SymbolicName(); - setState(460); + setState(473); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(459); + setState(472); match(CypherParser::SP); } - setState(462); + setState(475); match(CypherParser::T__4); - setState(464); + setState(477); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(463); + setState(476); match(CypherParser::SP); } - setState(466); + setState(479); oC_Literal(); } @@ -2168,7 +2253,7 @@ size_t CypherParser::KU_CommentOnContext::getRuleIndex() const { CypherParser::KU_CommentOnContext* CypherParser::kU_CommentOn() { KU_CommentOnContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 16, CypherParser::RuleKU_CommentOn); + enterRule(_localctx, 18, CypherParser::RuleKU_CommentOn); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -2179,27 +2264,27 @@ CypherParser::KU_CommentOnContext* CypherParser::kU_CommentOn() { }); try { enterOuterAlt(_localctx, 1); - setState(468); + setState(481); match(CypherParser::COMMENT); - setState(469); + setState(482); match(CypherParser::SP); - setState(470); + setState(483); match(CypherParser::ON); - setState(471); + setState(484); match(CypherParser::SP); - setState(472); + setState(485); match(CypherParser::TABLE); - setState(473); + setState(486); match(CypherParser::SP); - setState(474); + setState(487); oC_SchemaName(); - setState(475); + setState(488); match(CypherParser::SP); - setState(476); + setState(489); match(CypherParser::IS); - setState(477); + setState(490); match(CypherParser::SP); - setState(478); + setState(491); match(CypherParser::StringLiteral); } @@ -2266,7 +2351,7 @@ size_t CypherParser::KU_CreateMacroContext::getRuleIndex() const { CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { KU_CreateMacroContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 18, CypherParser::RuleKU_CreateMacro); + enterRule(_localctx, 20, CypherParser::RuleKU_CreateMacro); size_t _la = 0; #if __cplusplus > 201703L @@ -2279,32 +2364,32 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(480); + setState(493); match(CypherParser::CREATE); - setState(481); + setState(494); match(CypherParser::SP); - setState(482); + setState(495); match(CypherParser::MACRO); - setState(483); + setState(496); match(CypherParser::SP); - setState(484); + setState(497); oC_FunctionName(); - setState(486); + setState(499); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(485); + setState(498); match(CypherParser::SP); } - setState(488); + setState(501); match(CypherParser::T__1); - setState(490); + setState(503); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 37, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 39, _ctx)) { case 1: { - setState(489); + setState(502); match(CypherParser::SP); break; } @@ -2312,12 +2397,12 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(493); + setState(506); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 38, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 40, _ctx)) { case 1: { - setState(492); + setState(505); kU_PositionalArgs(); break; } @@ -2325,12 +2410,12 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(496); + setState(509); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 39, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 41, _ctx)) { case 1: { - setState(495); + setState(508); match(CypherParser::SP); break; } @@ -2338,63 +2423,63 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(499); + setState(512); _errHandler->sync(this); _la = _input->LA(1); if (((((_la - 47) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 47)) & 8913345) != 0) || ((((_la - 117) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 117)) & 302256385) != 0)) { - setState(498); + setState(511); kU_DefaultArg(); } - setState(511); + setState(524); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 43, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 45, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(502); + setState(515); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(501); + setState(514); match(CypherParser::SP); } - setState(504); + setState(517); match(CypherParser::T__3); - setState(506); + setState(519); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(505); + setState(518); match(CypherParser::SP); } - setState(508); + setState(521); kU_DefaultArg(); } - setState(513); + setState(526); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 43, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 45, _ctx); } - setState(515); + setState(528); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(514); + setState(527); match(CypherParser::SP); } - setState(517); + setState(530); match(CypherParser::T__2); - setState(518); + setState(531); match(CypherParser::SP); - setState(519); + setState(532); match(CypherParser::AS); - setState(520); + setState(533); match(CypherParser::SP); - setState(521); + setState(534); oC_Expression(); } @@ -2437,7 +2522,7 @@ size_t CypherParser::KU_PositionalArgsContext::getRuleIndex() const { CypherParser::KU_PositionalArgsContext* CypherParser::kU_PositionalArgs() { KU_PositionalArgsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 20, CypherParser::RuleKU_PositionalArgs); + enterRule(_localctx, 22, CypherParser::RuleKU_PositionalArgs); size_t _la = 0; #if __cplusplus > 201703L @@ -2450,37 +2535,37 @@ CypherParser::KU_PositionalArgsContext* CypherParser::kU_PositionalArgs() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(523); + setState(536); oC_SymbolicName(); - setState(534); + setState(547); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 47, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 49, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(525); + setState(538); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(524); + setState(537); match(CypherParser::SP); } - setState(527); + setState(540); match(CypherParser::T__3); - setState(529); + setState(542); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(528); + setState(541); match(CypherParser::SP); } - setState(531); + setState(544); oC_SymbolicName(); } - setState(536); + setState(549); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 47, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 49, _ctx); } } @@ -2527,7 +2612,7 @@ size_t CypherParser::KU_DefaultArgContext::getRuleIndex() const { CypherParser::KU_DefaultArgContext* CypherParser::kU_DefaultArg() { KU_DefaultArgContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 22, CypherParser::RuleKU_DefaultArg); + enterRule(_localctx, 24, CypherParser::RuleKU_DefaultArg); size_t _la = 0; #if __cplusplus > 201703L @@ -2539,29 +2624,29 @@ CypherParser::KU_DefaultArgContext* CypherParser::kU_DefaultArg() { }); try { enterOuterAlt(_localctx, 1); - setState(537); + setState(550); oC_SymbolicName(); - setState(539); + setState(552); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(538); + setState(551); match(CypherParser::SP); } - setState(541); + setState(554); match(CypherParser::COLON); - setState(542); + setState(555); match(CypherParser::T__4); - setState(544); + setState(557); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(543); + setState(556); match(CypherParser::SP); } - setState(546); + setState(559); oC_Literal(); } @@ -2608,7 +2693,7 @@ size_t CypherParser::KU_FilePathsContext::getRuleIndex() const { CypherParser::KU_FilePathsContext* CypherParser::kU_FilePaths() { KU_FilePathsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 24, CypherParser::RuleKU_FilePaths); + enterRule(_localctx, 26, CypherParser::RuleKU_FilePaths); size_t _la = 0; #if __cplusplus > 201703L @@ -2619,96 +2704,96 @@ CypherParser::KU_FilePathsContext* CypherParser::kU_FilePaths() { exitRule(); }); try { - setState(581); + setState(594); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__5: { enterOuterAlt(_localctx, 1); - setState(548); + setState(561); match(CypherParser::T__5); - setState(550); + setState(563); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(549); + setState(562); match(CypherParser::SP); } - setState(552); + setState(565); match(CypherParser::StringLiteral); - setState(563); + setState(576); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(554); + setState(567); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(553); + setState(566); match(CypherParser::SP); } - setState(556); + setState(569); match(CypherParser::T__3); - setState(558); + setState(571); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(557); + setState(570); match(CypherParser::SP); } - setState(560); + setState(573); match(CypherParser::StringLiteral); - setState(565); + setState(578); _errHandler->sync(this); _la = _input->LA(1); } - setState(566); + setState(579); match(CypherParser::T__6); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(567); + setState(580); match(CypherParser::StringLiteral); break; } case CypherParser::GLOB: { enterOuterAlt(_localctx, 3); - setState(568); + setState(581); match(CypherParser::GLOB); - setState(570); + setState(583); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(569); + setState(582); match(CypherParser::SP); } - setState(572); + setState(585); match(CypherParser::T__1); - setState(574); + setState(587); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(573); + setState(586); match(CypherParser::SP); } - setState(576); + setState(589); match(CypherParser::StringLiteral); - setState(578); + setState(591); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(577); + setState(590); match(CypherParser::SP); } - setState(580); + setState(593); match(CypherParser::T__2); break; } @@ -2757,7 +2842,7 @@ size_t CypherParser::KU_ParsingOptionsContext::getRuleIndex() const { CypherParser::KU_ParsingOptionsContext* CypherParser::kU_ParsingOptions() { KU_ParsingOptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 26, CypherParser::RuleKU_ParsingOptions); + enterRule(_localctx, 28, CypherParser::RuleKU_ParsingOptions); size_t _la = 0; #if __cplusplus > 201703L @@ -2770,37 +2855,37 @@ CypherParser::KU_ParsingOptionsContext* CypherParser::kU_ParsingOptions() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(583); + setState(596); kU_ParsingOption(); - setState(594); + setState(607); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 60, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 62, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(585); + setState(598); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(584); + setState(597); match(CypherParser::SP); } - setState(587); + setState(600); match(CypherParser::T__3); - setState(589); + setState(602); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(588); + setState(601); match(CypherParser::SP); } - setState(591); + setState(604); kU_ParsingOption(); } - setState(596); + setState(609); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 60, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 62, _ctx); } } @@ -2843,7 +2928,7 @@ size_t CypherParser::KU_ParsingOptionContext::getRuleIndex() const { CypherParser::KU_ParsingOptionContext* CypherParser::kU_ParsingOption() { KU_ParsingOptionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 28, CypherParser::RuleKU_ParsingOption); + enterRule(_localctx, 30, CypherParser::RuleKU_ParsingOption); size_t _la = 0; #if __cplusplus > 201703L @@ -2855,27 +2940,27 @@ CypherParser::KU_ParsingOptionContext* CypherParser::kU_ParsingOption() { }); try { enterOuterAlt(_localctx, 1); - setState(597); + setState(610); oC_SymbolicName(); - setState(599); + setState(612); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(598); + setState(611); match(CypherParser::SP); } - setState(601); + setState(614); match(CypherParser::T__4); - setState(603); + setState(616); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(602); + setState(615); match(CypherParser::SP); } - setState(605); + setState(618); oC_Literal(); } @@ -2926,7 +3011,7 @@ size_t CypherParser::KU_DDLContext::getRuleIndex() const { CypherParser::KU_DDLContext* CypherParser::kU_DDL() { KU_DDLContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 30, CypherParser::RuleKU_DDL); + enterRule(_localctx, 32, CypherParser::RuleKU_DDL); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -2936,47 +3021,47 @@ CypherParser::KU_DDLContext* CypherParser::kU_DDL() { exitRule(); }); try { - setState(613); + setState(626); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 63, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 65, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(607); + setState(620); kU_CreateNodeTable(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(608); + setState(621); kU_CreateRelTable(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(609); + setState(622); kU_CreateRelTableGroup(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(610); + setState(623); kU_CreateRdfGraph(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(611); + setState(624); kU_DropTable(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(612); + setState(625); kU_AlterTable(); break; } @@ -3041,7 +3126,7 @@ size_t CypherParser::KU_CreateNodeTableContext::getRuleIndex() const { CypherParser::KU_CreateNodeTableContext* CypherParser::kU_CreateNodeTable() { KU_CreateNodeTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 32, CypherParser::RuleKU_CreateNodeTable); + enterRule(_localctx, 34, CypherParser::RuleKU_CreateNodeTable); size_t _la = 0; #if __cplusplus > 201703L @@ -3053,70 +3138,70 @@ CypherParser::KU_CreateNodeTableContext* CypherParser::kU_CreateNodeTable() { }); try { enterOuterAlt(_localctx, 1); - setState(615); + setState(628); match(CypherParser::CREATE); - setState(616); + setState(629); match(CypherParser::SP); - setState(617); + setState(630); match(CypherParser::NODE); - setState(618); + setState(631); match(CypherParser::SP); - setState(619); + setState(632); match(CypherParser::TABLE); - setState(620); + setState(633); match(CypherParser::SP); - setState(621); + setState(634); oC_SchemaName(); - setState(623); + setState(636); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(622); + setState(635); match(CypherParser::SP); } - setState(625); + setState(638); match(CypherParser::T__1); - setState(627); + setState(640); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(626); + setState(639); match(CypherParser::SP); } - setState(629); + setState(642); kU_PropertyDefinitions(); - setState(631); + setState(644); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(630); + setState(643); match(CypherParser::SP); } - setState(633); + setState(646); match(CypherParser::T__3); - setState(635); + setState(648); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(634); + setState(647); match(CypherParser::SP); } - setState(637); + setState(650); kU_CreateNodeConstraint(); - setState(640); + setState(653); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(639); + setState(652); match(CypherParser::SP); } - setState(642); + setState(655); match(CypherParser::T__2); } @@ -3179,7 +3264,7 @@ size_t CypherParser::KU_CreateRelTableContext::getRuleIndex() const { CypherParser::KU_CreateRelTableContext* CypherParser::kU_CreateRelTable() { KU_CreateRelTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 34, CypherParser::RuleKU_CreateRelTable); + enterRule(_localctx, 36, CypherParser::RuleKU_CreateRelTable); size_t _la = 0; #if __cplusplus > 201703L @@ -3191,71 +3276,71 @@ CypherParser::KU_CreateRelTableContext* CypherParser::kU_CreateRelTable() { }); try { enterOuterAlt(_localctx, 1); - setState(644); + setState(657); match(CypherParser::CREATE); - setState(645); + setState(658); match(CypherParser::SP); - setState(646); + setState(659); match(CypherParser::REL); - setState(647); + setState(660); match(CypherParser::SP); - setState(648); + setState(661); match(CypherParser::TABLE); - setState(649); + setState(662); match(CypherParser::SP); - setState(650); + setState(663); oC_SchemaName(); - setState(652); + setState(665); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(651); + setState(664); match(CypherParser::SP); } - setState(654); + setState(667); match(CypherParser::T__1); - setState(656); + setState(669); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(655); + setState(668); match(CypherParser::SP); } - setState(658); + setState(671); kU_RelTableConnection(); - setState(660); + setState(673); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(659); + setState(672); match(CypherParser::SP); } - setState(670); + setState(683); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 74, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 76, _ctx)) { case 1: { - setState(662); + setState(675); match(CypherParser::T__3); - setState(664); + setState(677); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(663); + setState(676); match(CypherParser::SP); } - setState(666); + setState(679); kU_PropertyDefinitions(); - setState(668); + setState(681); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(667); + setState(680); match(CypherParser::SP); } break; @@ -3264,33 +3349,33 @@ CypherParser::KU_CreateRelTableContext* CypherParser::kU_CreateRelTable() { default: break; } - setState(680); + setState(693); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(672); + setState(685); match(CypherParser::T__3); - setState(674); + setState(687); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(673); + setState(686); match(CypherParser::SP); } - setState(676); + setState(689); oC_SymbolicName(); - setState(678); + setState(691); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(677); + setState(690); match(CypherParser::SP); } } - setState(682); + setState(695); match(CypherParser::T__2); } @@ -3361,7 +3446,7 @@ size_t CypherParser::KU_CreateRelTableGroupContext::getRuleIndex() const { CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGroup() { KU_CreateRelTableGroupContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 36, CypherParser::RuleKU_CreateRelTableGroup); + enterRule(_localctx, 38, CypherParser::RuleKU_CreateRelTableGroup); size_t _la = 0; #if __cplusplus > 201703L @@ -3374,69 +3459,69 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou try { size_t alt; enterOuterAlt(_localctx, 1); - setState(684); + setState(697); match(CypherParser::CREATE); - setState(685); + setState(698); match(CypherParser::SP); - setState(686); + setState(699); match(CypherParser::REL); - setState(687); + setState(700); match(CypherParser::SP); - setState(688); + setState(701); match(CypherParser::TABLE); - setState(689); + setState(702); match(CypherParser::SP); - setState(690); + setState(703); match(CypherParser::GROUP); - setState(691); + setState(704); match(CypherParser::SP); - setState(692); + setState(705); oC_SchemaName(); - setState(694); + setState(707); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(693); + setState(706); match(CypherParser::SP); } - setState(696); + setState(709); match(CypherParser::T__1); - setState(698); + setState(711); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(697); + setState(710); match(CypherParser::SP); } - setState(700); + setState(713); kU_RelTableConnection(); - setState(702); + setState(715); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(701); + setState(714); match(CypherParser::SP); } - setState(709); + setState(722); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(704); + setState(717); match(CypherParser::T__3); - setState(706); + setState(719); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(705); + setState(718); match(CypherParser::SP); } - setState(708); + setState(721); kU_RelTableConnection(); break; } @@ -3444,41 +3529,41 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou default: throw NoViableAltException(this); } - setState(711); + setState(724); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 82, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 84, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(714); + setState(727); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(713); + setState(726); match(CypherParser::SP); } - setState(724); + setState(737); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 86, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 88, _ctx)) { case 1: { - setState(716); + setState(729); match(CypherParser::T__3); - setState(718); + setState(731); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(717); + setState(730); match(CypherParser::SP); } - setState(720); + setState(733); kU_PropertyDefinitions(); - setState(722); + setState(735); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(721); + setState(734); match(CypherParser::SP); } break; @@ -3487,33 +3572,33 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou default: break; } - setState(734); + setState(747); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(726); + setState(739); match(CypherParser::T__3); - setState(728); + setState(741); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(727); + setState(740); match(CypherParser::SP); } - setState(730); + setState(743); oC_SymbolicName(); - setState(732); + setState(745); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(731); + setState(744); match(CypherParser::SP); } } - setState(736); + setState(749); match(CypherParser::T__2); } @@ -3564,7 +3649,7 @@ size_t CypherParser::KU_RelTableConnectionContext::getRuleIndex() const { CypherParser::KU_RelTableConnectionContext* CypherParser::kU_RelTableConnection() { KU_RelTableConnectionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 38, CypherParser::RuleKU_RelTableConnection); + enterRule(_localctx, 40, CypherParser::RuleKU_RelTableConnection); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3575,19 +3660,19 @@ CypherParser::KU_RelTableConnectionContext* CypherParser::kU_RelTableConnection( }); try { enterOuterAlt(_localctx, 1); - setState(738); + setState(751); match(CypherParser::FROM); - setState(739); + setState(752); match(CypherParser::SP); - setState(740); + setState(753); oC_SchemaName(); - setState(741); + setState(754); match(CypherParser::SP); - setState(742); + setState(755); match(CypherParser::TO); - setState(743); + setState(756); match(CypherParser::SP); - setState(744); + setState(757); oC_SchemaName(); } @@ -3634,7 +3719,7 @@ size_t CypherParser::KU_CreateRdfGraphContext::getRuleIndex() const { CypherParser::KU_CreateRdfGraphContext* CypherParser::kU_CreateRdfGraph() { KU_CreateRdfGraphContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 40, CypherParser::RuleKU_CreateRdfGraph); + enterRule(_localctx, 42, CypherParser::RuleKU_CreateRdfGraph); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3645,15 +3730,15 @@ CypherParser::KU_CreateRdfGraphContext* CypherParser::kU_CreateRdfGraph() { }); try { enterOuterAlt(_localctx, 1); - setState(746); + setState(759); match(CypherParser::CREATE); - setState(747); + setState(760); match(CypherParser::SP); - setState(748); + setState(761); match(CypherParser::RDFGRAPH); - setState(749); + setState(762); match(CypherParser::SP); - setState(750); + setState(763); oC_SchemaName(); } @@ -3704,7 +3789,7 @@ size_t CypherParser::KU_DropTableContext::getRuleIndex() const { CypherParser::KU_DropTableContext* CypherParser::kU_DropTable() { KU_DropTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 42, CypherParser::RuleKU_DropTable); + enterRule(_localctx, 44, CypherParser::RuleKU_DropTable); size_t _la = 0; #if __cplusplus > 201703L @@ -3716,11 +3801,11 @@ CypherParser::KU_DropTableContext* CypherParser::kU_DropTable() { }); try { enterOuterAlt(_localctx, 1); - setState(752); + setState(765); match(CypherParser::DROP); - setState(753); + setState(766); match(CypherParser::SP); - setState(754); + setState(767); _la = _input->LA(1); if (!(_la == CypherParser::TABLE @@ -3731,9 +3816,9 @@ CypherParser::KU_DropTableContext* CypherParser::kU_DropTable() { _errHandler->reportMatch(this); consume(); } - setState(755); + setState(768); match(CypherParser::SP); - setState(756); + setState(769); oC_SchemaName(); } @@ -3784,7 +3869,7 @@ size_t CypherParser::KU_AlterTableContext::getRuleIndex() const { CypherParser::KU_AlterTableContext* CypherParser::kU_AlterTable() { KU_AlterTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 44, CypherParser::RuleKU_AlterTable); + enterRule(_localctx, 46, CypherParser::RuleKU_AlterTable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3795,19 +3880,19 @@ CypherParser::KU_AlterTableContext* CypherParser::kU_AlterTable() { }); try { enterOuterAlt(_localctx, 1); - setState(758); + setState(771); match(CypherParser::ALTER); - setState(759); + setState(772); match(CypherParser::SP); - setState(760); + setState(773); match(CypherParser::TABLE); - setState(761); + setState(774); match(CypherParser::SP); - setState(762); + setState(775); oC_SchemaName(); - setState(763); + setState(776); match(CypherParser::SP); - setState(764); + setState(777); kU_AlterOptions(); } @@ -3850,7 +3935,7 @@ size_t CypherParser::KU_AlterOptionsContext::getRuleIndex() const { CypherParser::KU_AlterOptionsContext* CypherParser::kU_AlterOptions() { KU_AlterOptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 46, CypherParser::RuleKU_AlterOptions); + enterRule(_localctx, 48, CypherParser::RuleKU_AlterOptions); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3860,33 +3945,33 @@ CypherParser::KU_AlterOptionsContext* CypherParser::kU_AlterOptions() { exitRule(); }); try { - setState(770); + setState(783); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 90, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 92, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(766); + setState(779); kU_AddProperty(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(767); + setState(780); kU_DropProperty(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(768); + setState(781); kU_RenameTable(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(769); + setState(782); kU_RenameProperty(); break; } @@ -3947,7 +4032,7 @@ size_t CypherParser::KU_AddPropertyContext::getRuleIndex() const { CypherParser::KU_AddPropertyContext* CypherParser::kU_AddProperty() { KU_AddPropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 48, CypherParser::RuleKU_AddProperty); + enterRule(_localctx, 50, CypherParser::RuleKU_AddProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3958,28 +4043,28 @@ CypherParser::KU_AddPropertyContext* CypherParser::kU_AddProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(772); + setState(785); match(CypherParser::ADD); - setState(773); + setState(786); match(CypherParser::SP); - setState(774); + setState(787); oC_PropertyKeyName(); - setState(775); + setState(788); match(CypherParser::SP); - setState(776); + setState(789); kU_DataType(0); - setState(781); + setState(794); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 91, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 93, _ctx)) { case 1: { - setState(777); + setState(790); match(CypherParser::SP); - setState(778); + setState(791); match(CypherParser::DEFAULT); - setState(779); + setState(792); match(CypherParser::SP); - setState(780); + setState(793); oC_Expression(); break; } @@ -4024,7 +4109,7 @@ size_t CypherParser::KU_DropPropertyContext::getRuleIndex() const { CypherParser::KU_DropPropertyContext* CypherParser::kU_DropProperty() { KU_DropPropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 50, CypherParser::RuleKU_DropProperty); + enterRule(_localctx, 52, CypherParser::RuleKU_DropProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4035,11 +4120,11 @@ CypherParser::KU_DropPropertyContext* CypherParser::kU_DropProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(783); + setState(796); match(CypherParser::DROP); - setState(784); + setState(797); match(CypherParser::SP); - setState(785); + setState(798); oC_PropertyKeyName(); } @@ -4086,7 +4171,7 @@ size_t CypherParser::KU_RenameTableContext::getRuleIndex() const { CypherParser::KU_RenameTableContext* CypherParser::kU_RenameTable() { KU_RenameTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 52, CypherParser::RuleKU_RenameTable); + enterRule(_localctx, 54, CypherParser::RuleKU_RenameTable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4097,15 +4182,15 @@ CypherParser::KU_RenameTableContext* CypherParser::kU_RenameTable() { }); try { enterOuterAlt(_localctx, 1); - setState(787); + setState(800); match(CypherParser::RENAME); - setState(788); + setState(801); match(CypherParser::SP); - setState(789); + setState(802); match(CypherParser::TO); - setState(790); + setState(803); match(CypherParser::SP); - setState(791); + setState(804); oC_SchemaName(); } @@ -4156,7 +4241,7 @@ size_t CypherParser::KU_RenamePropertyContext::getRuleIndex() const { CypherParser::KU_RenamePropertyContext* CypherParser::kU_RenameProperty() { KU_RenamePropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 54, CypherParser::RuleKU_RenameProperty); + enterRule(_localctx, 56, CypherParser::RuleKU_RenameProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4167,19 +4252,19 @@ CypherParser::KU_RenamePropertyContext* CypherParser::kU_RenameProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(793); + setState(806); match(CypherParser::RENAME); - setState(794); + setState(807); match(CypherParser::SP); - setState(795); + setState(808); oC_PropertyKeyName(); - setState(796); + setState(809); match(CypherParser::SP); - setState(797); + setState(810); match(CypherParser::TO); - setState(798); + setState(811); match(CypherParser::SP); - setState(799); + setState(812); oC_PropertyKeyName(); } @@ -4222,7 +4307,7 @@ size_t CypherParser::KU_PropertyDefinitionsContext::getRuleIndex() const { CypherParser::KU_PropertyDefinitionsContext* CypherParser::kU_PropertyDefinitions() { KU_PropertyDefinitionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 56, CypherParser::RuleKU_PropertyDefinitions); + enterRule(_localctx, 58, CypherParser::RuleKU_PropertyDefinitions); size_t _la = 0; #if __cplusplus > 201703L @@ -4235,37 +4320,37 @@ CypherParser::KU_PropertyDefinitionsContext* CypherParser::kU_PropertyDefinition try { size_t alt; enterOuterAlt(_localctx, 1); - setState(801); + setState(814); kU_PropertyDefinition(); - setState(812); + setState(825); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 94, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 96, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(803); + setState(816); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(802); + setState(815); match(CypherParser::SP); } - setState(805); + setState(818); match(CypherParser::T__3); - setState(807); + setState(820); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(806); + setState(819); match(CypherParser::SP); } - setState(809); + setState(822); kU_PropertyDefinition(); } - setState(814); + setState(827); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 94, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 96, _ctx); } } @@ -4304,7 +4389,7 @@ size_t CypherParser::KU_PropertyDefinitionContext::getRuleIndex() const { CypherParser::KU_PropertyDefinitionContext* CypherParser::kU_PropertyDefinition() { KU_PropertyDefinitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 58, CypherParser::RuleKU_PropertyDefinition); + enterRule(_localctx, 60, CypherParser::RuleKU_PropertyDefinition); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4315,11 +4400,11 @@ CypherParser::KU_PropertyDefinitionContext* CypherParser::kU_PropertyDefinition( }); try { enterOuterAlt(_localctx, 1); - setState(815); + setState(828); oC_PropertyKeyName(); - setState(816); + setState(829); match(CypherParser::SP); - setState(817); + setState(830); kU_DataType(0); } @@ -4366,7 +4451,7 @@ size_t CypherParser::KU_CreateNodeConstraintContext::getRuleIndex() const { CypherParser::KU_CreateNodeConstraintContext* CypherParser::kU_CreateNodeConstraint() { KU_CreateNodeConstraintContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 60, CypherParser::RuleKU_CreateNodeConstraint); + enterRule(_localctx, 62, CypherParser::RuleKU_CreateNodeConstraint); size_t _la = 0; #if __cplusplus > 201703L @@ -4378,41 +4463,41 @@ CypherParser::KU_CreateNodeConstraintContext* CypherParser::kU_CreateNodeConstra }); try { enterOuterAlt(_localctx, 1); - setState(819); + setState(832); match(CypherParser::PRIMARY); - setState(820); + setState(833); match(CypherParser::SP); - setState(821); + setState(834); match(CypherParser::KEY); - setState(823); + setState(836); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(822); + setState(835); match(CypherParser::SP); } - setState(825); + setState(838); match(CypherParser::T__1); - setState(827); + setState(840); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(826); + setState(839); match(CypherParser::SP); } - setState(829); + setState(842); oC_PropertyKeyName(); - setState(831); + setState(844); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(830); + setState(843); match(CypherParser::SP); } - setState(833); + setState(846); match(CypherParser::T__2); } @@ -4480,8 +4565,8 @@ CypherParser::KU_DataTypeContext* CypherParser::kU_DataType(int precedence) { CypherParser::KU_DataTypeContext *_localctx = _tracker.createInstance(_ctx, parentState); CypherParser::KU_DataTypeContext *previousContext = _localctx; (void)previousContext; // Silence compiler, in case the context is not used by generated code. - size_t startState = 62; - enterRecursionRule(_localctx, 62, CypherParser::RuleKU_DataType, precedence); + size_t startState = 64; + enterRecursionRule(_localctx, 64, CypherParser::RuleKU_DataType, precedence); size_t _la = 0; @@ -4495,139 +4580,139 @@ CypherParser::KU_DataTypeContext* CypherParser::kU_DataType(int precedence) { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(887); + setState(900); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 109, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 111, _ctx)) { case 1: { - setState(836); + setState(849); oC_SymbolicName(); break; } case 2: { - setState(837); + setState(850); match(CypherParser::UNION); - setState(839); + setState(852); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(838); + setState(851); match(CypherParser::SP); } - setState(841); + setState(854); match(CypherParser::T__1); - setState(843); + setState(856); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(842); + setState(855); match(CypherParser::SP); } - setState(845); + setState(858); kU_PropertyDefinitions(); - setState(847); + setState(860); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(846); + setState(859); match(CypherParser::SP); } - setState(849); + setState(862); match(CypherParser::T__2); break; } case 3: { - setState(851); + setState(864); oC_SymbolicName(); - setState(853); + setState(866); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(852); + setState(865); match(CypherParser::SP); } - setState(855); + setState(868); match(CypherParser::T__1); - setState(857); + setState(870); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(856); + setState(869); match(CypherParser::SP); } - setState(859); + setState(872); kU_PropertyDefinitions(); - setState(861); + setState(874); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(860); + setState(873); match(CypherParser::SP); } - setState(863); + setState(876); match(CypherParser::T__2); break; } case 4: { - setState(865); + setState(878); oC_SymbolicName(); - setState(867); + setState(880); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(866); + setState(879); match(CypherParser::SP); } - setState(869); + setState(882); match(CypherParser::T__1); - setState(871); + setState(884); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(870); + setState(883); match(CypherParser::SP); } - setState(873); + setState(886); kU_DataType(0); - setState(875); + setState(888); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(874); + setState(887); match(CypherParser::SP); } - setState(877); + setState(890); match(CypherParser::T__3); - setState(879); + setState(892); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(878); + setState(891); match(CypherParser::SP); } - setState(881); + setState(894); kU_DataType(0); - setState(883); + setState(896); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(882); + setState(895); match(CypherParser::SP); } - setState(885); + setState(898); match(CypherParser::T__2); break; } @@ -4636,9 +4721,9 @@ CypherParser::KU_DataTypeContext* CypherParser::kU_DataType(int precedence) { break; } _ctx->stop = _input->LT(-1); - setState(893); + setState(906); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 110, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 112, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { if (!_parseListeners.empty()) @@ -4646,15 +4731,15 @@ CypherParser::KU_DataTypeContext* CypherParser::kU_DataType(int precedence) { previousContext = _localctx; _localctx = _tracker.createInstance(parentContext, parentState); pushNewRecursionContext(_localctx, startState, RuleKU_DataType); - setState(889); + setState(902); if (!(precpred(_ctx, 4))) throw FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(890); + setState(903); kU_ListIdentifiers(); } - setState(895); + setState(908); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 110, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 112, _ctx); } } catch (RecognitionException &e) { @@ -4687,7 +4772,7 @@ size_t CypherParser::KU_ListIdentifiersContext::getRuleIndex() const { CypherParser::KU_ListIdentifiersContext* CypherParser::kU_ListIdentifiers() { KU_ListIdentifiersContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 64, CypherParser::RuleKU_ListIdentifiers); + enterRule(_localctx, 66, CypherParser::RuleKU_ListIdentifiers); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4699,19 +4784,19 @@ CypherParser::KU_ListIdentifiersContext* CypherParser::kU_ListIdentifiers() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(896); + setState(909); kU_ListIdentifier(); - setState(900); + setState(913); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 113, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(897); + setState(910); kU_ListIdentifier(); } - setState(902); + setState(915); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 113, _ctx); } } @@ -4742,7 +4827,7 @@ size_t CypherParser::KU_ListIdentifierContext::getRuleIndex() const { CypherParser::KU_ListIdentifierContext* CypherParser::kU_ListIdentifier() { KU_ListIdentifierContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 66, CypherParser::RuleKU_ListIdentifier); + enterRule(_localctx, 68, CypherParser::RuleKU_ListIdentifier); size_t _la = 0; #if __cplusplus > 201703L @@ -4754,17 +4839,17 @@ CypherParser::KU_ListIdentifierContext* CypherParser::kU_ListIdentifier() { }); try { enterOuterAlt(_localctx, 1); - setState(903); + setState(916); match(CypherParser::T__5); - setState(905); + setState(918); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(904); + setState(917); oC_IntegerLiteral(); } - setState(907); + setState(920); match(CypherParser::T__6); } @@ -4799,7 +4884,7 @@ size_t CypherParser::OC_AnyCypherOptionContext::getRuleIndex() const { CypherParser::OC_AnyCypherOptionContext* CypherParser::oC_AnyCypherOption() { OC_AnyCypherOptionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 68, CypherParser::RuleOC_AnyCypherOption); + enterRule(_localctx, 70, CypherParser::RuleOC_AnyCypherOption); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4809,19 +4894,19 @@ CypherParser::OC_AnyCypherOptionContext* CypherParser::oC_AnyCypherOption() { exitRule(); }); try { - setState(911); + setState(924); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::EXPLAIN: { enterOuterAlt(_localctx, 1); - setState(909); + setState(922); oC_Explain(); break; } case CypherParser::PROFILE: { enterOuterAlt(_localctx, 2); - setState(910); + setState(923); oC_Profile(); break; } @@ -4858,7 +4943,7 @@ size_t CypherParser::OC_ExplainContext::getRuleIndex() const { CypherParser::OC_ExplainContext* CypherParser::oC_Explain() { OC_ExplainContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 70, CypherParser::RuleOC_Explain); + enterRule(_localctx, 72, CypherParser::RuleOC_Explain); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4869,7 +4954,7 @@ CypherParser::OC_ExplainContext* CypherParser::oC_Explain() { }); try { enterOuterAlt(_localctx, 1); - setState(913); + setState(926); match(CypherParser::EXPLAIN); } @@ -4900,7 +4985,7 @@ size_t CypherParser::OC_ProfileContext::getRuleIndex() const { CypherParser::OC_ProfileContext* CypherParser::oC_Profile() { OC_ProfileContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 72, CypherParser::RuleOC_Profile); + enterRule(_localctx, 74, CypherParser::RuleOC_Profile); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4911,7 +4996,7 @@ CypherParser::OC_ProfileContext* CypherParser::oC_Profile() { }); try { enterOuterAlt(_localctx, 1); - setState(915); + setState(928); match(CypherParser::PROFILE); } @@ -4978,7 +5063,7 @@ size_t CypherParser::KU_TransactionContext::getRuleIndex() const { CypherParser::KU_TransactionContext* CypherParser::kU_Transaction() { KU_TransactionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 74, CypherParser::RuleKU_Transaction); + enterRule(_localctx, 76, CypherParser::RuleKU_Transaction); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4988,63 +5073,63 @@ CypherParser::KU_TransactionContext* CypherParser::kU_Transaction() { exitRule(); }); try { - setState(931); + setState(944); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 114, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 116, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(917); + setState(930); match(CypherParser::BEGIN); - setState(918); + setState(931); match(CypherParser::SP); - setState(919); + setState(932); match(CypherParser::TRANSACTION); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(920); + setState(933); match(CypherParser::BEGIN); - setState(921); + setState(934); match(CypherParser::SP); - setState(922); + setState(935); match(CypherParser::TRANSACTION); - setState(923); + setState(936); match(CypherParser::SP); - setState(924); + setState(937); match(CypherParser::READ); - setState(925); + setState(938); match(CypherParser::SP); - setState(926); + setState(939); match(CypherParser::ONLY); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(927); + setState(940); match(CypherParser::COMMIT); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(928); + setState(941); match(CypherParser::COMMIT_SKIP_CHECKPOINT); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(929); + setState(942); match(CypherParser::ROLLBACK); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(930); + setState(943); match(CypherParser::ROLLBACK_SKIP_CHECKPOINT); break; } @@ -5085,7 +5170,7 @@ size_t CypherParser::KU_ExtensionContext::getRuleIndex() const { CypherParser::KU_ExtensionContext* CypherParser::kU_Extension() { KU_ExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 76, CypherParser::RuleKU_Extension); + enterRule(_localctx, 78, CypherParser::RuleKU_Extension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5095,19 +5180,19 @@ CypherParser::KU_ExtensionContext* CypherParser::kU_Extension() { exitRule(); }); try { - setState(935); + setState(948); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::LOAD: { enterOuterAlt(_localctx, 1); - setState(933); + setState(946); kU_LoadExtension(); break; } case CypherParser::INSTALL: { enterOuterAlt(_localctx, 2); - setState(934); + setState(947); kU_InstallExtension(); break; } @@ -5164,7 +5249,7 @@ size_t CypherParser::KU_LoadExtensionContext::getRuleIndex() const { CypherParser::KU_LoadExtensionContext* CypherParser::kU_LoadExtension() { KU_LoadExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 78, CypherParser::RuleKU_LoadExtension); + enterRule(_localctx, 80, CypherParser::RuleKU_LoadExtension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5175,19 +5260,19 @@ CypherParser::KU_LoadExtensionContext* CypherParser::kU_LoadExtension() { }); try { enterOuterAlt(_localctx, 1); - setState(937); + setState(950); match(CypherParser::LOAD); - setState(938); + setState(951); match(CypherParser::SP); - setState(939); + setState(952); match(CypherParser::EXTENSION); - setState(940); + setState(953); match(CypherParser::SP); - setState(943); + setState(956); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::StringLiteral: { - setState(941); + setState(954); match(CypherParser::StringLiteral); break; } @@ -5204,7 +5289,7 @@ CypherParser::KU_LoadExtensionContext* CypherParser::kU_LoadExtension() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(942); + setState(955); oC_Variable(); break; } @@ -5249,7 +5334,7 @@ size_t CypherParser::KU_InstallExtensionContext::getRuleIndex() const { CypherParser::KU_InstallExtensionContext* CypherParser::kU_InstallExtension() { KU_InstallExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 80, CypherParser::RuleKU_InstallExtension); + enterRule(_localctx, 82, CypherParser::RuleKU_InstallExtension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5260,11 +5345,11 @@ CypherParser::KU_InstallExtensionContext* CypherParser::kU_InstallExtension() { }); try { enterOuterAlt(_localctx, 1); - setState(945); + setState(958); match(CypherParser::INSTALL); - setState(946); + setState(959); match(CypherParser::SP); - setState(947); + setState(960); oC_Variable(); } @@ -5295,7 +5380,7 @@ size_t CypherParser::OC_QueryContext::getRuleIndex() const { CypherParser::OC_QueryContext* CypherParser::oC_Query() { OC_QueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 82, CypherParser::RuleOC_Query); + enterRule(_localctx, 84, CypherParser::RuleOC_Query); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5306,7 +5391,7 @@ CypherParser::OC_QueryContext* CypherParser::oC_Query() { }); try { enterOuterAlt(_localctx, 1); - setState(949); + setState(962); oC_RegularQuery(); } @@ -5361,7 +5446,7 @@ size_t CypherParser::OC_RegularQueryContext::getRuleIndex() const { CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { OC_RegularQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 84, CypherParser::RuleOC_RegularQuery); + enterRule(_localctx, 86, CypherParser::RuleOC_RegularQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -5373,52 +5458,52 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { }); try { size_t alt; - setState(972); + setState(985); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 121, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 123, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(951); + setState(964); oC_SingleQuery(); - setState(958); + setState(971); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 118, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 120, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(953); + setState(966); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(952); + setState(965); match(CypherParser::SP); } - setState(955); + setState(968); oC_Union(); } - setState(960); + setState(973); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 118, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 120, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(965); + setState(978); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(961); + setState(974); oC_Return(); - setState(963); + setState(976); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(962); + setState(975); match(CypherParser::SP); } break; @@ -5427,11 +5512,11 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { default: throw NoViableAltException(this); } - setState(967); + setState(980); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 120, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 122, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(969); + setState(982); oC_SingleQuery(); notifyReturnNotAtEnd(_localctx->start); break; @@ -5485,7 +5570,7 @@ size_t CypherParser::OC_UnionContext::getRuleIndex() const { CypherParser::OC_UnionContext* CypherParser::oC_Union() { OC_UnionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 86, CypherParser::RuleOC_Union); + enterRule(_localctx, 88, CypherParser::RuleOC_Union); size_t _la = 0; #if __cplusplus > 201703L @@ -5496,43 +5581,43 @@ CypherParser::OC_UnionContext* CypherParser::oC_Union() { exitRule(); }); try { - setState(986); + setState(999); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 124, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 126, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(974); + setState(987); match(CypherParser::UNION); - setState(975); + setState(988); match(CypherParser::SP); - setState(976); + setState(989); match(CypherParser::ALL); - setState(978); + setState(991); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(977); + setState(990); match(CypherParser::SP); } - setState(980); + setState(993); oC_SingleQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(981); + setState(994); match(CypherParser::UNION); - setState(983); + setState(996); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(982); + setState(995); match(CypherParser::SP); } - setState(985); + setState(998); oC_SingleQuery(); break; } @@ -5573,7 +5658,7 @@ size_t CypherParser::OC_SingleQueryContext::getRuleIndex() const { CypherParser::OC_SingleQueryContext* CypherParser::oC_SingleQuery() { OC_SingleQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 88, CypherParser::RuleOC_SingleQuery); + enterRule(_localctx, 90, CypherParser::RuleOC_SingleQuery); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5583,19 +5668,19 @@ CypherParser::OC_SingleQueryContext* CypherParser::oC_SingleQuery() { exitRule(); }); try { - setState(990); + setState(1003); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 125, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 127, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(988); + setState(1001); oC_SinglePartQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(989); + setState(1002); oC_MultiPartQuery(); break; } @@ -5656,7 +5741,7 @@ size_t CypherParser::OC_SinglePartQueryContext::getRuleIndex() const { CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { OC_SinglePartQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 90, CypherParser::RuleOC_SinglePartQuery); + enterRule(_localctx, 92, CypherParser::RuleOC_SinglePartQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -5668,92 +5753,92 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { }); try { size_t alt; - setState(1037); + setState(1050); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 136, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 138, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(998); + setState(1011); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 46) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 46)) & 3985729650689) != 0)) { - setState(992); + setState(1005); oC_ReadingClause(); - setState(994); + setState(1007); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(993); + setState(1006); match(CypherParser::SP); } - setState(1000); + setState(1013); _errHandler->sync(this); _la = _input->LA(1); } - setState(1001); + setState(1014); oC_Return(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1008); + setState(1021); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 46) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 46)) & 3985729650689) != 0)) { - setState(1002); + setState(1015); oC_ReadingClause(); - setState(1004); + setState(1017); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1003); + setState(1016); match(CypherParser::SP); } - setState(1010); + setState(1023); _errHandler->sync(this); _la = _input->LA(1); } - setState(1011); + setState(1024); oC_UpdatingClause(); - setState(1018); + setState(1031); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 131, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 133, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1013); + setState(1026); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1012); + setState(1025); match(CypherParser::SP); } - setState(1015); + setState(1028); oC_UpdatingClause(); } - setState(1020); + setState(1033); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 131, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 133, _ctx); } - setState(1025); + setState(1038); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 133, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 135, _ctx)) { case 1: { - setState(1022); + setState(1035); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1021); + setState(1034); match(CypherParser::SP); } - setState(1024); + setState(1037); oC_Return(); break; } @@ -5766,18 +5851,18 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { case 3: { enterOuterAlt(_localctx, 3); - setState(1031); + setState(1044); _errHandler->sync(this); _la = _input->LA(1); do { - setState(1027); + setState(1040); oC_ReadingClause(); - setState(1029); + setState(1042); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 134, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 136, _ctx)) { case 1: { - setState(1028); + setState(1041); match(CypherParser::SP); break; } @@ -5785,7 +5870,7 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { default: break; } - setState(1033); + setState(1046); _errHandler->sync(this); _la = _input->LA(1); } while (((((_la - 46) & ~ 0x3fULL) == 0) && @@ -5842,7 +5927,7 @@ size_t CypherParser::OC_MultiPartQueryContext::getRuleIndex() const { CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { OC_MultiPartQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 92, CypherParser::RuleOC_MultiPartQuery); + enterRule(_localctx, 94, CypherParser::RuleOC_MultiPartQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -5855,20 +5940,20 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1043); + setState(1056); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1039); + setState(1052); kU_QueryPart(); - setState(1041); + setState(1054); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1040); + setState(1053); match(CypherParser::SP); } break; @@ -5877,11 +5962,11 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { default: throw NoViableAltException(this); } - setState(1045); + setState(1058); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 138, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 140, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(1047); + setState(1060); oC_SinglePartQuery(); } @@ -5936,7 +6021,7 @@ size_t CypherParser::KU_QueryPartContext::getRuleIndex() const { CypherParser::KU_QueryPartContext* CypherParser::kU_QueryPart() { KU_QueryPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 94, CypherParser::RuleKU_QueryPart); + enterRule(_localctx, 96, CypherParser::RuleKU_QueryPart); size_t _la = 0; #if __cplusplus > 201703L @@ -5948,45 +6033,45 @@ CypherParser::KU_QueryPartContext* CypherParser::kU_QueryPart() { }); try { enterOuterAlt(_localctx, 1); - setState(1055); + setState(1068); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 46) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 46)) & 3985729650689) != 0)) { - setState(1049); + setState(1062); oC_ReadingClause(); - setState(1051); + setState(1064); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1050); + setState(1063); match(CypherParser::SP); } - setState(1057); + setState(1070); _errHandler->sync(this); _la = _input->LA(1); } - setState(1064); + setState(1077); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 88) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 88)) & 59) != 0)) { - setState(1058); + setState(1071); oC_UpdatingClause(); - setState(1060); + setState(1073); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1059); + setState(1072); match(CypherParser::SP); } - setState(1066); + setState(1079); _errHandler->sync(this); _la = _input->LA(1); } - setState(1067); + setState(1080); oC_With(); } @@ -6029,7 +6114,7 @@ size_t CypherParser::OC_UpdatingClauseContext::getRuleIndex() const { CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { OC_UpdatingClauseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 96, CypherParser::RuleOC_UpdatingClause); + enterRule(_localctx, 98, CypherParser::RuleOC_UpdatingClause); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6039,26 +6124,26 @@ CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { exitRule(); }); try { - setState(1073); + setState(1086); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::CREATE: { enterOuterAlt(_localctx, 1); - setState(1069); + setState(1082); oC_Create(); break; } case CypherParser::MERGE: { enterOuterAlt(_localctx, 2); - setState(1070); + setState(1083); oC_Merge(); break; } case CypherParser::SET: { enterOuterAlt(_localctx, 3); - setState(1071); + setState(1084); oC_Set(); break; } @@ -6066,7 +6151,7 @@ CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { case CypherParser::DETACH: case CypherParser::DELETE: { enterOuterAlt(_localctx, 4); - setState(1072); + setState(1085); oC_Delete(); break; } @@ -6115,7 +6200,7 @@ size_t CypherParser::OC_ReadingClauseContext::getRuleIndex() const { CypherParser::OC_ReadingClauseContext* CypherParser::oC_ReadingClause() { OC_ReadingClauseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 98, CypherParser::RuleOC_ReadingClause); + enterRule(_localctx, 100, CypherParser::RuleOC_ReadingClause); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6125,34 +6210,34 @@ CypherParser::OC_ReadingClauseContext* CypherParser::oC_ReadingClause() { exitRule(); }); try { - setState(1079); + setState(1092); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::OPTIONAL: case CypherParser::MATCH: { enterOuterAlt(_localctx, 1); - setState(1075); + setState(1088); oC_Match(); break; } case CypherParser::UNWIND: { enterOuterAlt(_localctx, 2); - setState(1076); + setState(1089); oC_Unwind(); break; } case CypherParser::CALL: { enterOuterAlt(_localctx, 3); - setState(1077); + setState(1090); kU_InQueryCall(); break; } case CypherParser::LOAD: { enterOuterAlt(_localctx, 4); - setState(1078); + setState(1091); kU_LoadFrom(); break; } @@ -6229,7 +6314,7 @@ size_t CypherParser::KU_LoadFromContext::getRuleIndex() const { CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { KU_LoadFromContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 100, CypherParser::RuleKU_LoadFrom); + enterRule(_localctx, 102, CypherParser::RuleKU_LoadFrom); size_t _la = 0; #if __cplusplus > 201703L @@ -6241,50 +6326,50 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { }); try { enterOuterAlt(_localctx, 1); - setState(1081); + setState(1094); match(CypherParser::LOAD); - setState(1099); + setState(1112); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 148, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 150, _ctx)) { case 1: { - setState(1082); + setState(1095); match(CypherParser::SP); - setState(1083); + setState(1096); match(CypherParser::WITH); - setState(1084); + setState(1097); match(CypherParser::SP); - setState(1085); + setState(1098); match(CypherParser::HEADERS); - setState(1087); + setState(1100); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1086); + setState(1099); match(CypherParser::SP); } - setState(1089); + setState(1102); match(CypherParser::T__1); - setState(1091); + setState(1104); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1090); + setState(1103); match(CypherParser::SP); } - setState(1093); + setState(1106); kU_PropertyDefinitions(); - setState(1095); + setState(1108); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1094); + setState(1107); match(CypherParser::SP); } - setState(1097); + setState(1110); match(CypherParser::T__2); break; } @@ -6292,54 +6377,54 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { default: break; } - setState(1101); + setState(1114); match(CypherParser::SP); - setState(1102); + setState(1115); match(CypherParser::FROM); - setState(1103); + setState(1116); match(CypherParser::SP); - setState(1121); + setState(1134); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__5: case CypherParser::GLOB: case CypherParser::StringLiteral: { - setState(1104); + setState(1117); kU_FilePaths(); - setState(1118); + setState(1131); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 152, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 154, _ctx)) { case 1: { - setState(1106); + setState(1119); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1105); + setState(1118); match(CypherParser::SP); } - setState(1108); + setState(1121); match(CypherParser::T__1); - setState(1110); + setState(1123); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1109); + setState(1122); match(CypherParser::SP); } - setState(1112); + setState(1125); kU_ParsingOptions(); - setState(1114); + setState(1127); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1113); + setState(1126); match(CypherParser::SP); } - setState(1116); + setState(1129); match(CypherParser::T__2); break; } @@ -6362,7 +6447,7 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(1120); + setState(1133); oC_Variable(); break; } @@ -6370,20 +6455,20 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { default: throw NoViableAltException(this); } - setState(1127); + setState(1140); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 155, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 157, _ctx)) { case 1: { - setState(1124); + setState(1137); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1123); + setState(1136); match(CypherParser::SP); } - setState(1126); + setState(1139); oC_Where(); break; } @@ -6436,7 +6521,7 @@ size_t CypherParser::KU_InQueryCallContext::getRuleIndex() const { CypherParser::KU_InQueryCallContext* CypherParser::kU_InQueryCall() { KU_InQueryCallContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 102, CypherParser::RuleKU_InQueryCall); + enterRule(_localctx, 104, CypherParser::RuleKU_InQueryCall); size_t _la = 0; #if __cplusplus > 201703L @@ -6448,26 +6533,26 @@ CypherParser::KU_InQueryCallContext* CypherParser::kU_InQueryCall() { }); try { enterOuterAlt(_localctx, 1); - setState(1129); + setState(1142); match(CypherParser::CALL); - setState(1130); + setState(1143); match(CypherParser::SP); - setState(1131); + setState(1144); oC_FunctionInvocation(); - setState(1136); + setState(1149); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 157, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 159, _ctx)) { case 1: { - setState(1133); + setState(1146); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1132); + setState(1145); match(CypherParser::SP); } - setState(1135); + setState(1148); oC_Where(); break; } @@ -6524,7 +6609,7 @@ size_t CypherParser::OC_MatchContext::getRuleIndex() const { CypherParser::OC_MatchContext* CypherParser::oC_Match() { OC_MatchContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 104, CypherParser::RuleOC_Match); + enterRule(_localctx, 106, CypherParser::RuleOC_Match); size_t _la = 0; #if __cplusplus > 201703L @@ -6536,42 +6621,42 @@ CypherParser::OC_MatchContext* CypherParser::oC_Match() { }); try { enterOuterAlt(_localctx, 1); - setState(1140); + setState(1153); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::OPTIONAL) { - setState(1138); + setState(1151); match(CypherParser::OPTIONAL); - setState(1139); + setState(1152); match(CypherParser::SP); } - setState(1142); + setState(1155); match(CypherParser::MATCH); - setState(1144); + setState(1157); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1143); + setState(1156); match(CypherParser::SP); } - setState(1146); + setState(1159); oC_Pattern(); - setState(1151); + setState(1164); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 161, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 163, _ctx)) { case 1: { - setState(1148); + setState(1161); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1147); + setState(1160); match(CypherParser::SP); } - setState(1150); + setState(1163); oC_Where(); break; } @@ -6628,7 +6713,7 @@ size_t CypherParser::OC_UnwindContext::getRuleIndex() const { CypherParser::OC_UnwindContext* CypherParser::oC_Unwind() { OC_UnwindContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 106, CypherParser::RuleOC_Unwind); + enterRule(_localctx, 108, CypherParser::RuleOC_Unwind); size_t _la = 0; #if __cplusplus > 201703L @@ -6640,25 +6725,25 @@ CypherParser::OC_UnwindContext* CypherParser::oC_Unwind() { }); try { enterOuterAlt(_localctx, 1); - setState(1153); + setState(1166); match(CypherParser::UNWIND); - setState(1155); + setState(1168); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1154); + setState(1167); match(CypherParser::SP); } - setState(1157); + setState(1170); oC_Expression(); - setState(1158); + setState(1171); match(CypherParser::SP); - setState(1159); + setState(1172); match(CypherParser::AS); - setState(1160); + setState(1173); match(CypherParser::SP); - setState(1161); + setState(1174); oC_Variable(); } @@ -6697,7 +6782,7 @@ size_t CypherParser::OC_CreateContext::getRuleIndex() const { CypherParser::OC_CreateContext* CypherParser::oC_Create() { OC_CreateContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 108, CypherParser::RuleOC_Create); + enterRule(_localctx, 110, CypherParser::RuleOC_Create); size_t _la = 0; #if __cplusplus > 201703L @@ -6709,17 +6794,17 @@ CypherParser::OC_CreateContext* CypherParser::oC_Create() { }); try { enterOuterAlt(_localctx, 1); - setState(1163); + setState(1176); match(CypherParser::CREATE); - setState(1165); + setState(1178); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1164); + setState(1177); match(CypherParser::SP); } - setState(1167); + setState(1180); oC_Pattern(); } @@ -6770,7 +6855,7 @@ size_t CypherParser::OC_MergeContext::getRuleIndex() const { CypherParser::OC_MergeContext* CypherParser::oC_Merge() { OC_MergeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 110, CypherParser::RuleOC_Merge); + enterRule(_localctx, 112, CypherParser::RuleOC_Merge); size_t _la = 0; #if __cplusplus > 201703L @@ -6783,31 +6868,31 @@ CypherParser::OC_MergeContext* CypherParser::oC_Merge() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1169); + setState(1182); match(CypherParser::MERGE); - setState(1171); + setState(1184); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1170); + setState(1183); match(CypherParser::SP); } - setState(1173); + setState(1186); oC_Pattern(); - setState(1178); + setState(1191); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 165, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 167, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1174); + setState(1187); match(CypherParser::SP); - setState(1175); + setState(1188); oC_MergeAction(); } - setState(1180); + setState(1193); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 165, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 167, _ctx); } } @@ -6858,7 +6943,7 @@ size_t CypherParser::OC_MergeActionContext::getRuleIndex() const { CypherParser::OC_MergeActionContext* CypherParser::oC_MergeAction() { OC_MergeActionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 112, CypherParser::RuleOC_MergeAction); + enterRule(_localctx, 114, CypherParser::RuleOC_MergeAction); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6868,35 +6953,35 @@ CypherParser::OC_MergeActionContext* CypherParser::oC_MergeAction() { exitRule(); }); try { - setState(1191); + setState(1204); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 166, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 168, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1181); + setState(1194); match(CypherParser::ON); - setState(1182); + setState(1195); match(CypherParser::SP); - setState(1183); + setState(1196); match(CypherParser::MATCH); - setState(1184); + setState(1197); match(CypherParser::SP); - setState(1185); + setState(1198); oC_Set(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1186); + setState(1199); match(CypherParser::ON); - setState(1187); + setState(1200); match(CypherParser::SP); - setState(1188); + setState(1201); match(CypherParser::CREATE); - setState(1189); + setState(1202); match(CypherParser::SP); - setState(1190); + setState(1203); oC_Set(); break; } @@ -6949,7 +7034,7 @@ size_t CypherParser::OC_SetContext::getRuleIndex() const { CypherParser::OC_SetContext* CypherParser::oC_Set() { OC_SetContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 114, CypherParser::RuleOC_Set); + enterRule(_localctx, 116, CypherParser::RuleOC_Set); size_t _la = 0; #if __cplusplus > 201703L @@ -6962,47 +7047,47 @@ CypherParser::OC_SetContext* CypherParser::oC_Set() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1193); + setState(1206); match(CypherParser::SET); - setState(1195); + setState(1208); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1194); + setState(1207); match(CypherParser::SP); } - setState(1197); + setState(1210); oC_SetItem(); - setState(1208); + setState(1221); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 170, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 172, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1199); + setState(1212); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1198); + setState(1211); match(CypherParser::SP); } - setState(1201); + setState(1214); match(CypherParser::T__3); - setState(1203); + setState(1216); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1202); + setState(1215); match(CypherParser::SP); } - setState(1205); + setState(1218); oC_SetItem(); } - setState(1210); + setState(1223); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 170, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 172, _ctx); } } @@ -7045,7 +7130,7 @@ size_t CypherParser::OC_SetItemContext::getRuleIndex() const { CypherParser::OC_SetItemContext* CypherParser::oC_SetItem() { OC_SetItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 116, CypherParser::RuleOC_SetItem); + enterRule(_localctx, 118, CypherParser::RuleOC_SetItem); size_t _la = 0; #if __cplusplus > 201703L @@ -7057,27 +7142,27 @@ CypherParser::OC_SetItemContext* CypherParser::oC_SetItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1211); + setState(1224); oC_PropertyExpression(); - setState(1213); + setState(1226); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1212); + setState(1225); match(CypherParser::SP); } - setState(1215); + setState(1228); match(CypherParser::T__4); - setState(1217); + setState(1230); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1216); + setState(1229); match(CypherParser::SP); } - setState(1219); + setState(1232); oC_Expression(); } @@ -7128,7 +7213,7 @@ size_t CypherParser::OC_DeleteContext::getRuleIndex() const { CypherParser::OC_DeleteContext* CypherParser::oC_Delete() { OC_DeleteContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 118, CypherParser::RuleOC_Delete); + enterRule(_localctx, 120, CypherParser::RuleOC_Delete); size_t _la = 0; #if __cplusplus > 201703L @@ -7141,57 +7226,57 @@ CypherParser::OC_DeleteContext* CypherParser::oC_Delete() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1223); + setState(1236); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DETACH) { - setState(1221); + setState(1234); match(CypherParser::DETACH); - setState(1222); + setState(1235); match(CypherParser::SP); } - setState(1225); + setState(1238); match(CypherParser::DELETE); - setState(1227); + setState(1240); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1226); + setState(1239); match(CypherParser::SP); } - setState(1229); + setState(1242); oC_Expression(); - setState(1240); + setState(1253); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 177, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 179, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1231); + setState(1244); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1230); + setState(1243); match(CypherParser::SP); } - setState(1233); + setState(1246); match(CypherParser::T__3); - setState(1235); + setState(1248); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1234); + setState(1247); match(CypherParser::SP); } - setState(1237); + setState(1250); oC_Expression(); } - setState(1242); + setState(1255); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 177, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 179, _ctx); } } @@ -7234,7 +7319,7 @@ size_t CypherParser::OC_WithContext::getRuleIndex() const { CypherParser::OC_WithContext* CypherParser::oC_With() { OC_WithContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 120, CypherParser::RuleOC_With); + enterRule(_localctx, 122, CypherParser::RuleOC_With); size_t _la = 0; #if __cplusplus > 201703L @@ -7246,24 +7331,24 @@ CypherParser::OC_WithContext* CypherParser::oC_With() { }); try { enterOuterAlt(_localctx, 1); - setState(1243); + setState(1256); match(CypherParser::WITH); - setState(1244); + setState(1257); oC_ProjectionBody(); - setState(1249); + setState(1262); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 179, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 181, _ctx)) { case 1: { - setState(1246); + setState(1259); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1245); + setState(1258); match(CypherParser::SP); } - setState(1248); + setState(1261); oC_Where(); break; } @@ -7304,7 +7389,7 @@ size_t CypherParser::OC_ReturnContext::getRuleIndex() const { CypherParser::OC_ReturnContext* CypherParser::oC_Return() { OC_ReturnContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 122, CypherParser::RuleOC_Return); + enterRule(_localctx, 124, CypherParser::RuleOC_Return); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7315,9 +7400,9 @@ CypherParser::OC_ReturnContext* CypherParser::oC_Return() { }); try { enterOuterAlt(_localctx, 1); - setState(1251); + setState(1264); match(CypherParser::RETURN); - setState(1252); + setState(1265); oC_ProjectionBody(); } @@ -7372,7 +7457,7 @@ size_t CypherParser::OC_ProjectionBodyContext::getRuleIndex() const { CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { OC_ProjectionBodyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 124, CypherParser::RuleOC_ProjectionBody); + enterRule(_localctx, 126, CypherParser::RuleOC_ProjectionBody); size_t _la = 0; #if __cplusplus > 201703L @@ -7384,20 +7469,20 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { }); try { enterOuterAlt(_localctx, 1); - setState(1258); + setState(1271); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 181, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 183, _ctx)) { case 1: { - setState(1255); + setState(1268); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1254); + setState(1267); match(CypherParser::SP); } - setState(1257); + setState(1270); match(CypherParser::DISTINCT); break; } @@ -7405,18 +7490,18 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1260); + setState(1273); match(CypherParser::SP); - setState(1261); + setState(1274); oC_ProjectionItems(); - setState(1264); + setState(1277); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 182, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 184, _ctx)) { case 1: { - setState(1262); + setState(1275); match(CypherParser::SP); - setState(1263); + setState(1276); oC_Order(); break; } @@ -7424,14 +7509,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1268); + setState(1281); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 183, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 185, _ctx)) { case 1: { - setState(1266); + setState(1279); match(CypherParser::SP); - setState(1267); + setState(1280); oC_Skip(); break; } @@ -7439,14 +7524,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1272); + setState(1285); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 184, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 186, _ctx)) { case 1: { - setState(1270); + setState(1283); match(CypherParser::SP); - setState(1271); + setState(1284); oC_Limit(); break; } @@ -7499,7 +7584,7 @@ size_t CypherParser::OC_ProjectionItemsContext::getRuleIndex() const { CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { OC_ProjectionItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 126, CypherParser::RuleOC_ProjectionItems); + enterRule(_localctx, 128, CypherParser::RuleOC_ProjectionItems); size_t _la = 0; #if __cplusplus > 201703L @@ -7511,42 +7596,42 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { }); try { size_t alt; - setState(1302); + setState(1315); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::STAR: { enterOuterAlt(_localctx, 1); - setState(1274); + setState(1287); match(CypherParser::STAR); - setState(1285); + setState(1298); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 187, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 189, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1276); + setState(1289); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1275); + setState(1288); match(CypherParser::SP); } - setState(1278); + setState(1291); match(CypherParser::T__3); - setState(1280); + setState(1293); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1279); + setState(1292); match(CypherParser::SP); } - setState(1282); + setState(1295); oC_ProjectionItem(); } - setState(1287); + setState(1300); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 187, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 189, _ctx); } break; } @@ -7578,37 +7663,37 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(1288); + setState(1301); oC_ProjectionItem(); - setState(1299); + setState(1312); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 190, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 192, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1290); + setState(1303); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1289); + setState(1302); match(CypherParser::SP); } - setState(1292); + setState(1305); match(CypherParser::T__3); - setState(1294); + setState(1307); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1293); + setState(1306); match(CypherParser::SP); } - setState(1296); + setState(1309); oC_ProjectionItem(); } - setState(1301); + setState(1314); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 190, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 192, _ctx); } break; } @@ -7661,7 +7746,7 @@ size_t CypherParser::OC_ProjectionItemContext::getRuleIndex() const { CypherParser::OC_ProjectionItemContext* CypherParser::oC_ProjectionItem() { OC_ProjectionItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 128, CypherParser::RuleOC_ProjectionItem); + enterRule(_localctx, 130, CypherParser::RuleOC_ProjectionItem); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7671,27 +7756,27 @@ CypherParser::OC_ProjectionItemContext* CypherParser::oC_ProjectionItem() { exitRule(); }); try { - setState(1311); + setState(1324); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 192, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 194, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1304); + setState(1317); oC_Expression(); - setState(1305); + setState(1318); match(CypherParser::SP); - setState(1306); + setState(1319); match(CypherParser::AS); - setState(1307); + setState(1320); match(CypherParser::SP); - setState(1308); + setState(1321); oC_Variable(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1310); + setState(1323); oC_Expression(); break; } @@ -7748,7 +7833,7 @@ size_t CypherParser::OC_OrderContext::getRuleIndex() const { CypherParser::OC_OrderContext* CypherParser::oC_Order() { OC_OrderContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 130, CypherParser::RuleOC_Order); + enterRule(_localctx, 132, CypherParser::RuleOC_Order); size_t _la = 0; #if __cplusplus > 201703L @@ -7760,33 +7845,33 @@ CypherParser::OC_OrderContext* CypherParser::oC_Order() { }); try { enterOuterAlt(_localctx, 1); - setState(1313); + setState(1326); match(CypherParser::ORDER); - setState(1314); + setState(1327); match(CypherParser::SP); - setState(1315); + setState(1328); match(CypherParser::BY); - setState(1316); + setState(1329); match(CypherParser::SP); - setState(1317); + setState(1330); oC_SortItem(); - setState(1325); + setState(1338); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1318); + setState(1331); match(CypherParser::T__3); - setState(1320); + setState(1333); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1319); + setState(1332); match(CypherParser::SP); } - setState(1322); + setState(1335); oC_SortItem(); - setState(1327); + setState(1340); _errHandler->sync(this); _la = _input->LA(1); } @@ -7827,7 +7912,7 @@ size_t CypherParser::OC_SkipContext::getRuleIndex() const { CypherParser::OC_SkipContext* CypherParser::oC_Skip() { OC_SkipContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 132, CypherParser::RuleOC_Skip); + enterRule(_localctx, 134, CypherParser::RuleOC_Skip); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7838,11 +7923,11 @@ CypherParser::OC_SkipContext* CypherParser::oC_Skip() { }); try { enterOuterAlt(_localctx, 1); - setState(1328); + setState(1341); match(CypherParser::L_SKIP); - setState(1329); + setState(1342); match(CypherParser::SP); - setState(1330); + setState(1343); oC_Expression(); } @@ -7881,7 +7966,7 @@ size_t CypherParser::OC_LimitContext::getRuleIndex() const { CypherParser::OC_LimitContext* CypherParser::oC_Limit() { OC_LimitContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 134, CypherParser::RuleOC_Limit); + enterRule(_localctx, 136, CypherParser::RuleOC_Limit); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7892,11 +7977,11 @@ CypherParser::OC_LimitContext* CypherParser::oC_Limit() { }); try { enterOuterAlt(_localctx, 1); - setState(1332); + setState(1345); match(CypherParser::LIMIT); - setState(1333); + setState(1346); match(CypherParser::SP); - setState(1334); + setState(1347); oC_Expression(); } @@ -7947,7 +8032,7 @@ size_t CypherParser::OC_SortItemContext::getRuleIndex() const { CypherParser::OC_SortItemContext* CypherParser::oC_SortItem() { OC_SortItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 136, CypherParser::RuleOC_SortItem); + enterRule(_localctx, 138, CypherParser::RuleOC_SortItem); size_t _la = 0; #if __cplusplus > 201703L @@ -7959,22 +8044,22 @@ CypherParser::OC_SortItemContext* CypherParser::oC_SortItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1336); + setState(1349); oC_Expression(); - setState(1341); + setState(1354); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 196, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 198, _ctx)) { case 1: { - setState(1338); + setState(1351); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1337); + setState(1350); match(CypherParser::SP); } - setState(1340); + setState(1353); _la = _input->LA(1); if (!(((((_la - 103) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 103)) & 15) != 0))) { @@ -8027,7 +8112,7 @@ size_t CypherParser::OC_WhereContext::getRuleIndex() const { CypherParser::OC_WhereContext* CypherParser::oC_Where() { OC_WhereContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 138, CypherParser::RuleOC_Where); + enterRule(_localctx, 140, CypherParser::RuleOC_Where); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8038,11 +8123,11 @@ CypherParser::OC_WhereContext* CypherParser::oC_Where() { }); try { enterOuterAlt(_localctx, 1); - setState(1343); + setState(1356); match(CypherParser::WHERE); - setState(1344); + setState(1357); match(CypherParser::SP); - setState(1345); + setState(1358); oC_Expression(); } @@ -8085,7 +8170,7 @@ size_t CypherParser::OC_PatternContext::getRuleIndex() const { CypherParser::OC_PatternContext* CypherParser::oC_Pattern() { OC_PatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 140, CypherParser::RuleOC_Pattern); + enterRule(_localctx, 142, CypherParser::RuleOC_Pattern); size_t _la = 0; #if __cplusplus > 201703L @@ -8098,37 +8183,37 @@ CypherParser::OC_PatternContext* CypherParser::oC_Pattern() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1347); + setState(1360); oC_PatternPart(); - setState(1358); + setState(1371); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 199, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 201, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1349); + setState(1362); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1348); + setState(1361); match(CypherParser::SP); } - setState(1351); + setState(1364); match(CypherParser::T__3); - setState(1353); + setState(1366); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1352); + setState(1365); match(CypherParser::SP); } - setState(1355); + setState(1368); oC_PatternPart(); } - setState(1360); + setState(1373); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 199, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 201, _ctx); } } @@ -8171,7 +8256,7 @@ size_t CypherParser::OC_PatternPartContext::getRuleIndex() const { CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { OC_PatternPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 142, CypherParser::RuleOC_PatternPart); + enterRule(_localctx, 144, CypherParser::RuleOC_PatternPart); size_t _la = 0; #if __cplusplus > 201703L @@ -8182,7 +8267,7 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { exitRule(); }); try { - setState(1372); + setState(1385); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: @@ -8198,34 +8283,34 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(1361); + setState(1374); oC_Variable(); - setState(1363); + setState(1376); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1362); + setState(1375); match(CypherParser::SP); } - setState(1365); + setState(1378); match(CypherParser::T__4); - setState(1367); + setState(1380); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1366); + setState(1379); match(CypherParser::SP); } - setState(1369); + setState(1382); oC_AnonymousPatternPart(); break; } case CypherParser::T__1: { enterOuterAlt(_localctx, 2); - setState(1371); + setState(1384); oC_AnonymousPatternPart(); break; } @@ -8262,7 +8347,7 @@ size_t CypherParser::OC_AnonymousPatternPartContext::getRuleIndex() const { CypherParser::OC_AnonymousPatternPartContext* CypherParser::oC_AnonymousPatternPart() { OC_AnonymousPatternPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 144, CypherParser::RuleOC_AnonymousPatternPart); + enterRule(_localctx, 146, CypherParser::RuleOC_AnonymousPatternPart); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8273,7 +8358,7 @@ CypherParser::OC_AnonymousPatternPartContext* CypherParser::oC_AnonymousPatternP }); try { enterOuterAlt(_localctx, 1); - setState(1374); + setState(1387); oC_PatternElement(); } @@ -8324,7 +8409,7 @@ size_t CypherParser::OC_PatternElementContext::getRuleIndex() const { CypherParser::OC_PatternElementContext* CypherParser::oC_PatternElement() { OC_PatternElementContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 146, CypherParser::RuleOC_PatternElement); + enterRule(_localctx, 148, CypherParser::RuleOC_PatternElement); size_t _la = 0; #if __cplusplus > 201703L @@ -8336,43 +8421,43 @@ CypherParser::OC_PatternElementContext* CypherParser::oC_PatternElement() { }); try { size_t alt; - setState(1390); + setState(1403); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 205, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 207, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1376); + setState(1389); oC_NodePattern(); - setState(1383); + setState(1396); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 204, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 206, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1378); + setState(1391); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1377); + setState(1390); match(CypherParser::SP); } - setState(1380); + setState(1393); oC_PatternElementChain(); } - setState(1385); + setState(1398); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 204, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 206, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1386); + setState(1399); match(CypherParser::T__1); - setState(1387); + setState(1400); oC_PatternElement(); - setState(1388); + setState(1401); match(CypherParser::T__2); break; } @@ -8425,7 +8510,7 @@ size_t CypherParser::OC_NodePatternContext::getRuleIndex() const { CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { OC_NodePatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 148, CypherParser::RuleOC_NodePattern); + enterRule(_localctx, 150, CypherParser::RuleOC_NodePattern); size_t _la = 0; #if __cplusplus > 201703L @@ -8437,67 +8522,67 @@ CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { }); try { enterOuterAlt(_localctx, 1); - setState(1392); + setState(1405); match(CypherParser::T__1); - setState(1394); + setState(1407); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1393); + setState(1406); match(CypherParser::SP); } - setState(1400); + setState(1413); _errHandler->sync(this); _la = _input->LA(1); if (((((_la - 47) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 47)) & 8913345) != 0) || ((((_la - 117) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 117)) & 302256385) != 0)) { - setState(1396); + setState(1409); oC_Variable(); - setState(1398); + setState(1411); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1397); + setState(1410); match(CypherParser::SP); } } - setState(1406); + setState(1419); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(1402); + setState(1415); oC_NodeLabels(); - setState(1404); + setState(1417); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1403); + setState(1416); match(CypherParser::SP); } } - setState(1412); + setState(1425); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__7) { - setState(1408); + setState(1421); kU_Properties(); - setState(1410); + setState(1423); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1409); + setState(1422); match(CypherParser::SP); } } - setState(1414); + setState(1427); match(CypherParser::T__2); } @@ -8536,7 +8621,7 @@ size_t CypherParser::OC_PatternElementChainContext::getRuleIndex() const { CypherParser::OC_PatternElementChainContext* CypherParser::oC_PatternElementChain() { OC_PatternElementChainContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 150, CypherParser::RuleOC_PatternElementChain); + enterRule(_localctx, 152, CypherParser::RuleOC_PatternElementChain); size_t _la = 0; #if __cplusplus > 201703L @@ -8548,17 +8633,17 @@ CypherParser::OC_PatternElementChainContext* CypherParser::oC_PatternElementChai }); try { enterOuterAlt(_localctx, 1); - setState(1416); + setState(1429); oC_RelationshipPattern(); - setState(1418); + setState(1431); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1417); + setState(1430); match(CypherParser::SP); } - setState(1420); + setState(1433); oC_NodePattern(); } @@ -8613,7 +8698,7 @@ size_t CypherParser::OC_RelationshipPatternContext::getRuleIndex() const { CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPattern() { OC_RelationshipPatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 152, CypherParser::RuleOC_RelationshipPattern); + enterRule(_localctx, 154, CypherParser::RuleOC_RelationshipPattern); size_t _la = 0; #if __cplusplus > 201703L @@ -8624,29 +8709,29 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter exitRule(); }); try { - setState(1466); + setState(1479); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 225, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 227, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1422); + setState(1435); oC_LeftArrowHead(); - setState(1424); + setState(1437); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1423); + setState(1436); match(CypherParser::SP); } - setState(1426); + setState(1439); oC_Dash(); - setState(1428); + setState(1441); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 215, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 217, _ctx)) { case 1: { - setState(1427); + setState(1440); match(CypherParser::SP); break; } @@ -8654,37 +8739,37 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1431); + setState(1444); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1430); + setState(1443); oC_RelationshipDetail(); } - setState(1434); + setState(1447); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1433); + setState(1446); match(CypherParser::SP); } - setState(1436); + setState(1449); oC_Dash(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1438); + setState(1451); oC_Dash(); - setState(1440); + setState(1453); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 218, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 220, _ctx)) { case 1: { - setState(1439); + setState(1452); match(CypherParser::SP); break; } @@ -8692,47 +8777,47 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1443); + setState(1456); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1442); + setState(1455); oC_RelationshipDetail(); } - setState(1446); + setState(1459); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1445); + setState(1458); match(CypherParser::SP); } - setState(1448); + setState(1461); oC_Dash(); - setState(1450); + setState(1463); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1449); + setState(1462); match(CypherParser::SP); } - setState(1452); + setState(1465); oC_RightArrowHead(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1454); + setState(1467); oC_Dash(); - setState(1456); + setState(1469); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 222, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 224, _ctx)) { case 1: { - setState(1455); + setState(1468); match(CypherParser::SP); break; } @@ -8740,23 +8825,23 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1459); + setState(1472); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1458); + setState(1471); oC_RelationshipDetail(); } - setState(1462); + setState(1475); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1461); + setState(1474); match(CypherParser::SP); } - setState(1464); + setState(1477); oC_Dash(); break; } @@ -8813,7 +8898,7 @@ size_t CypherParser::OC_RelationshipDetailContext::getRuleIndex() const { CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail() { OC_RelationshipDetailContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 154, CypherParser::RuleOC_RelationshipDetail); + enterRule(_localctx, 156, CypherParser::RuleOC_RelationshipDetail); size_t _la = 0; #if __cplusplus > 201703L @@ -8825,83 +8910,83 @@ CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail( }); try { enterOuterAlt(_localctx, 1); - setState(1468); + setState(1481); match(CypherParser::T__5); - setState(1470); + setState(1483); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1469); + setState(1482); match(CypherParser::SP); } - setState(1476); + setState(1489); _errHandler->sync(this); _la = _input->LA(1); if (((((_la - 47) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 47)) & 8913345) != 0) || ((((_la - 117) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 117)) & 302256385) != 0)) { - setState(1472); + setState(1485); oC_Variable(); - setState(1474); + setState(1487); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1473); + setState(1486); match(CypherParser::SP); } } - setState(1482); + setState(1495); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(1478); + setState(1491); oC_RelationshipTypes(); - setState(1480); + setState(1493); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1479); + setState(1492); match(CypherParser::SP); } } - setState(1488); + setState(1501); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::STAR) { - setState(1484); + setState(1497); oC_RangeLiteral(); - setState(1486); + setState(1499); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1485); + setState(1498); match(CypherParser::SP); } } - setState(1494); + setState(1507); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__7) { - setState(1490); + setState(1503); kU_Properties(); - setState(1492); + setState(1505); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1491); + setState(1504); match(CypherParser::SP); } } - setState(1496); + setState(1509); match(CypherParser::T__6); } @@ -8960,7 +9045,7 @@ size_t CypherParser::KU_PropertiesContext::getRuleIndex() const { CypherParser::KU_PropertiesContext* CypherParser::kU_Properties() { KU_PropertiesContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 156, CypherParser::RuleKU_Properties); + enterRule(_localctx, 158, CypherParser::RuleKU_Properties); size_t _la = 0; #if __cplusplus > 201703L @@ -8972,103 +9057,103 @@ CypherParser::KU_PropertiesContext* CypherParser::kU_Properties() { }); try { enterOuterAlt(_localctx, 1); - setState(1498); + setState(1511); match(CypherParser::T__7); - setState(1500); + setState(1513); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1499); + setState(1512); match(CypherParser::SP); } - setState(1535); + setState(1548); _errHandler->sync(this); _la = _input->LA(1); if (((((_la - 47) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 47)) & 8913345) != 0) || ((((_la - 117) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 117)) & 302256385) != 0)) { - setState(1502); + setState(1515); oC_PropertyKeyName(); - setState(1504); + setState(1517); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1503); + setState(1516); match(CypherParser::SP); } - setState(1506); + setState(1519); match(CypherParser::COLON); - setState(1508); + setState(1521); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1507); + setState(1520); match(CypherParser::SP); } - setState(1510); + setState(1523); oC_Expression(); - setState(1512); + setState(1525); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1511); + setState(1524); match(CypherParser::SP); } - setState(1532); + setState(1545); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1514); + setState(1527); match(CypherParser::T__3); - setState(1516); + setState(1529); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1515); + setState(1528); match(CypherParser::SP); } - setState(1518); + setState(1531); oC_PropertyKeyName(); - setState(1520); + setState(1533); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1519); + setState(1532); match(CypherParser::SP); } - setState(1522); + setState(1535); match(CypherParser::COLON); - setState(1524); + setState(1537); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1523); + setState(1536); match(CypherParser::SP); } - setState(1526); + setState(1539); oC_Expression(); - setState(1528); + setState(1541); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1527); + setState(1540); match(CypherParser::SP); } - setState(1534); + setState(1547); _errHandler->sync(this); _la = _input->LA(1); } } - setState(1537); + setState(1550); match(CypherParser::T__8); } @@ -9119,7 +9204,7 @@ size_t CypherParser::OC_RelationshipTypesContext::getRuleIndex() const { CypherParser::OC_RelationshipTypesContext* CypherParser::oC_RelationshipTypes() { OC_RelationshipTypesContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 158, CypherParser::RuleOC_RelationshipTypes); + enterRule(_localctx, 160, CypherParser::RuleOC_RelationshipTypes); size_t _la = 0; #if __cplusplus > 201703L @@ -9132,55 +9217,55 @@ CypherParser::OC_RelationshipTypesContext* CypherParser::oC_RelationshipTypes() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1539); + setState(1552); match(CypherParser::COLON); - setState(1541); + setState(1554); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1540); + setState(1553); match(CypherParser::SP); } - setState(1543); + setState(1556); oC_RelTypeName(); - setState(1557); + setState(1570); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 249, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 251, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1545); + setState(1558); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1544); + setState(1557); match(CypherParser::SP); } - setState(1547); + setState(1560); match(CypherParser::T__9); - setState(1549); + setState(1562); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(1548); + setState(1561); match(CypherParser::COLON); } - setState(1552); + setState(1565); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1551); + setState(1564); match(CypherParser::SP); } - setState(1554); + setState(1567); oC_RelTypeName(); } - setState(1559); + setState(1572); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 249, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 251, _ctx); } } @@ -9223,7 +9308,7 @@ size_t CypherParser::OC_NodeLabelsContext::getRuleIndex() const { CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { OC_NodeLabelsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 160, CypherParser::RuleOC_NodeLabels); + enterRule(_localctx, 162, CypherParser::RuleOC_NodeLabels); size_t _la = 0; #if __cplusplus > 201703L @@ -9236,27 +9321,27 @@ CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1560); + setState(1573); oC_NodeLabel(); - setState(1567); + setState(1580); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 251, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 253, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1562); + setState(1575); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1561); + setState(1574); match(CypherParser::SP); } - setState(1564); + setState(1577); oC_NodeLabel(); } - setState(1569); + setState(1582); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 251, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 253, _ctx); } } @@ -9295,7 +9380,7 @@ size_t CypherParser::OC_NodeLabelContext::getRuleIndex() const { CypherParser::OC_NodeLabelContext* CypherParser::oC_NodeLabel() { OC_NodeLabelContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 162, CypherParser::RuleOC_NodeLabel); + enterRule(_localctx, 164, CypherParser::RuleOC_NodeLabel); size_t _la = 0; #if __cplusplus > 201703L @@ -9307,17 +9392,17 @@ CypherParser::OC_NodeLabelContext* CypherParser::oC_NodeLabel() { }); try { enterOuterAlt(_localctx, 1); - setState(1570); + setState(1583); match(CypherParser::COLON); - setState(1572); + setState(1585); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1571); + setState(1584); match(CypherParser::SP); } - setState(1574); + setState(1587); oC_LabelName(); } @@ -9380,7 +9465,7 @@ size_t CypherParser::OC_RangeLiteralContext::getRuleIndex() const { CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { OC_RangeLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 164, CypherParser::RuleOC_RangeLiteral); + enterRule(_localctx, 166, CypherParser::RuleOC_RangeLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -9392,14 +9477,14 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1576); + setState(1589); match(CypherParser::STAR); - setState(1578); + setState(1591); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 253, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 255, _ctx)) { case 1: { - setState(1577); + setState(1590); match(CypherParser::SP); break; } @@ -9407,21 +9492,21 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1584); + setState(1597); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::SHORTEST: { - setState(1580); + setState(1593); match(CypherParser::SHORTEST); break; } case CypherParser::ALL: { - setState(1581); + setState(1594); match(CypherParser::ALL); - setState(1582); + setState(1595); match(CypherParser::SP); - setState(1583); + setState(1596); match(CypherParser::SHORTEST); break; } @@ -9438,12 +9523,12 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1587); + setState(1600); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 255, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 257, _ctx)) { case 1: { - setState(1586); + setState(1599); match(CypherParser::SP); break; } @@ -9451,35 +9536,35 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1603); + setState(1616); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 260, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 262, _ctx)) { case 1: { - setState(1590); + setState(1603); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(1589); + setState(1602); oC_LowerBound(); } - setState(1593); + setState(1606); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1592); + setState(1605); match(CypherParser::SP); } - setState(1595); + setState(1608); match(CypherParser::T__10); - setState(1597); + setState(1610); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 258, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 260, _ctx)) { case 1: { - setState(1596); + setState(1609); match(CypherParser::SP); break; } @@ -9487,19 +9572,19 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1600); + setState(1613); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(1599); + setState(1612); oC_UpperBound(); } break; } case 2: { - setState(1602); + setState(1615); oC_IntegerLiteral(); break; } @@ -9507,20 +9592,20 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1609); + setState(1622); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 262, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 264, _ctx)) { case 1: { - setState(1606); + setState(1619); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1605); + setState(1618); match(CypherParser::SP); } - setState(1608); + setState(1621); kU_RecursiveRelationshipComprehension(); break; } @@ -9581,7 +9666,7 @@ size_t CypherParser::KU_RecursiveRelationshipComprehensionContext::getRuleIndex( CypherParser::KU_RecursiveRelationshipComprehensionContext* CypherParser::kU_RecursiveRelationshipComprehension() { KU_RecursiveRelationshipComprehensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 166, CypherParser::RuleKU_RecursiveRelationshipComprehension); + enterRule(_localctx, 168, CypherParser::RuleKU_RecursiveRelationshipComprehension); size_t _la = 0; #if __cplusplus > 201703L @@ -9593,62 +9678,62 @@ CypherParser::KU_RecursiveRelationshipComprehensionContext* CypherParser::kU_Rec }); try { enterOuterAlt(_localctx, 1); - setState(1611); + setState(1624); match(CypherParser::T__1); - setState(1613); + setState(1626); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1612); + setState(1625); match(CypherParser::SP); } - setState(1615); + setState(1628); oC_Variable(); - setState(1617); + setState(1630); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1616); + setState(1629); match(CypherParser::SP); } - setState(1619); + setState(1632); match(CypherParser::T__3); - setState(1621); + setState(1634); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1620); + setState(1633); match(CypherParser::SP); } - setState(1623); + setState(1636); oC_Variable(); - setState(1632); + setState(1645); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 268, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 270, _ctx)) { case 1: { - setState(1625); + setState(1638); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1624); + setState(1637); match(CypherParser::SP); } - setState(1627); + setState(1640); match(CypherParser::T__9); - setState(1629); + setState(1642); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1628); + setState(1641); match(CypherParser::SP); } - setState(1631); + setState(1644); oC_Where(); break; } @@ -9656,61 +9741,61 @@ CypherParser::KU_RecursiveRelationshipComprehensionContext* CypherParser::kU_Rec default: break; } - setState(1653); + setState(1666); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__9 || _la == CypherParser::SP) { - setState(1635); + setState(1648); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1634); + setState(1647); match(CypherParser::SP); } - setState(1637); + setState(1650); match(CypherParser::T__9); - setState(1639); + setState(1652); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1638); + setState(1651); match(CypherParser::SP); } - setState(1641); + setState(1654); kU_IntermediateRelProjectionItems(); - setState(1643); + setState(1656); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1642); + setState(1655); match(CypherParser::SP); } - setState(1645); + setState(1658); match(CypherParser::T__3); - setState(1647); + setState(1660); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1646); + setState(1659); match(CypherParser::SP); } - setState(1649); + setState(1662); kU_IntermediateNodeProjectionItems(); - setState(1651); + setState(1664); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1650); + setState(1663); match(CypherParser::SP); } } - setState(1655); + setState(1668); match(CypherParser::T__2); } @@ -9749,7 +9834,7 @@ size_t CypherParser::KU_IntermediateNodeProjectionItemsContext::getRuleIndex() c CypherParser::KU_IntermediateNodeProjectionItemsContext* CypherParser::kU_IntermediateNodeProjectionItems() { KU_IntermediateNodeProjectionItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 168, CypherParser::RuleKU_IntermediateNodeProjectionItems); + enterRule(_localctx, 170, CypherParser::RuleKU_IntermediateNodeProjectionItems); size_t _la = 0; #if __cplusplus > 201703L @@ -9761,14 +9846,14 @@ CypherParser::KU_IntermediateNodeProjectionItemsContext* CypherParser::kU_Interm }); try { enterOuterAlt(_localctx, 1); - setState(1657); + setState(1670); match(CypherParser::T__7); - setState(1659); + setState(1672); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 275, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 277, _ctx)) { case 1: { - setState(1658); + setState(1671); match(CypherParser::SP); break; } @@ -9776,7 +9861,7 @@ CypherParser::KU_IntermediateNodeProjectionItemsContext* CypherParser::kU_Interm default: break; } - setState(1662); + setState(1675); _errHandler->sync(this); _la = _input->LA(1); @@ -9784,18 +9869,18 @@ CypherParser::KU_IntermediateNodeProjectionItemsContext* CypherParser::kU_Interm ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139966783258607) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(1661); + setState(1674); oC_ProjectionItems(); } - setState(1665); + setState(1678); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1664); + setState(1677); match(CypherParser::SP); } - setState(1667); + setState(1680); match(CypherParser::T__8); } @@ -9834,7 +9919,7 @@ size_t CypherParser::KU_IntermediateRelProjectionItemsContext::getRuleIndex() co CypherParser::KU_IntermediateRelProjectionItemsContext* CypherParser::kU_IntermediateRelProjectionItems() { KU_IntermediateRelProjectionItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 170, CypherParser::RuleKU_IntermediateRelProjectionItems); + enterRule(_localctx, 172, CypherParser::RuleKU_IntermediateRelProjectionItems); size_t _la = 0; #if __cplusplus > 201703L @@ -9846,14 +9931,14 @@ CypherParser::KU_IntermediateRelProjectionItemsContext* CypherParser::kU_Interme }); try { enterOuterAlt(_localctx, 1); - setState(1669); + setState(1682); match(CypherParser::T__7); - setState(1671); + setState(1684); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 278, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 280, _ctx)) { case 1: { - setState(1670); + setState(1683); match(CypherParser::SP); break; } @@ -9861,7 +9946,7 @@ CypherParser::KU_IntermediateRelProjectionItemsContext* CypherParser::kU_Interme default: break; } - setState(1674); + setState(1687); _errHandler->sync(this); _la = _input->LA(1); @@ -9869,18 +9954,18 @@ CypherParser::KU_IntermediateRelProjectionItemsContext* CypherParser::kU_Interme ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139966783258607) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(1673); + setState(1686); oC_ProjectionItems(); } - setState(1677); + setState(1690); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1676); + setState(1689); match(CypherParser::SP); } - setState(1679); + setState(1692); match(CypherParser::T__8); } @@ -9911,7 +9996,7 @@ size_t CypherParser::OC_LowerBoundContext::getRuleIndex() const { CypherParser::OC_LowerBoundContext* CypherParser::oC_LowerBound() { OC_LowerBoundContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 172, CypherParser::RuleOC_LowerBound); + enterRule(_localctx, 174, CypherParser::RuleOC_LowerBound); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9922,7 +10007,7 @@ CypherParser::OC_LowerBoundContext* CypherParser::oC_LowerBound() { }); try { enterOuterAlt(_localctx, 1); - setState(1681); + setState(1694); match(CypherParser::DecimalInteger); } @@ -9953,7 +10038,7 @@ size_t CypherParser::OC_UpperBoundContext::getRuleIndex() const { CypherParser::OC_UpperBoundContext* CypherParser::oC_UpperBound() { OC_UpperBoundContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 174, CypherParser::RuleOC_UpperBound); + enterRule(_localctx, 176, CypherParser::RuleOC_UpperBound); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9964,7 +10049,7 @@ CypherParser::OC_UpperBoundContext* CypherParser::oC_UpperBound() { }); try { enterOuterAlt(_localctx, 1); - setState(1683); + setState(1696); match(CypherParser::DecimalInteger); } @@ -9995,7 +10080,7 @@ size_t CypherParser::OC_LabelNameContext::getRuleIndex() const { CypherParser::OC_LabelNameContext* CypherParser::oC_LabelName() { OC_LabelNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 176, CypherParser::RuleOC_LabelName); + enterRule(_localctx, 178, CypherParser::RuleOC_LabelName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10006,7 +10091,7 @@ CypherParser::OC_LabelNameContext* CypherParser::oC_LabelName() { }); try { enterOuterAlt(_localctx, 1); - setState(1685); + setState(1698); oC_SchemaName(); } @@ -10037,7 +10122,7 @@ size_t CypherParser::OC_RelTypeNameContext::getRuleIndex() const { CypherParser::OC_RelTypeNameContext* CypherParser::oC_RelTypeName() { OC_RelTypeNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 178, CypherParser::RuleOC_RelTypeName); + enterRule(_localctx, 180, CypherParser::RuleOC_RelTypeName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10048,7 +10133,7 @@ CypherParser::OC_RelTypeNameContext* CypherParser::oC_RelTypeName() { }); try { enterOuterAlt(_localctx, 1); - setState(1687); + setState(1700); oC_SchemaName(); } @@ -10079,7 +10164,7 @@ size_t CypherParser::OC_ExpressionContext::getRuleIndex() const { CypherParser::OC_ExpressionContext* CypherParser::oC_Expression() { OC_ExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 180, CypherParser::RuleOC_Expression); + enterRule(_localctx, 182, CypherParser::RuleOC_Expression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10090,7 +10175,7 @@ CypherParser::OC_ExpressionContext* CypherParser::oC_Expression() { }); try { enterOuterAlt(_localctx, 1); - setState(1689); + setState(1702); oC_OrExpression(); } @@ -10141,7 +10226,7 @@ size_t CypherParser::OC_OrExpressionContext::getRuleIndex() const { CypherParser::OC_OrExpressionContext* CypherParser::oC_OrExpression() { OC_OrExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 182, CypherParser::RuleOC_OrExpression); + enterRule(_localctx, 184, CypherParser::RuleOC_OrExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10153,25 +10238,25 @@ CypherParser::OC_OrExpressionContext* CypherParser::oC_OrExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1691); + setState(1704); oC_XorExpression(); - setState(1698); + setState(1711); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 281, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 283, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1692); + setState(1705); match(CypherParser::SP); - setState(1693); + setState(1706); match(CypherParser::OR); - setState(1694); + setState(1707); match(CypherParser::SP); - setState(1695); + setState(1708); oC_XorExpression(); } - setState(1700); + setState(1713); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 281, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 283, _ctx); } } @@ -10222,7 +10307,7 @@ size_t CypherParser::OC_XorExpressionContext::getRuleIndex() const { CypherParser::OC_XorExpressionContext* CypherParser::oC_XorExpression() { OC_XorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 184, CypherParser::RuleOC_XorExpression); + enterRule(_localctx, 186, CypherParser::RuleOC_XorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10234,25 +10319,25 @@ CypherParser::OC_XorExpressionContext* CypherParser::oC_XorExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1701); + setState(1714); oC_AndExpression(); - setState(1708); + setState(1721); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 282, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 284, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1702); + setState(1715); match(CypherParser::SP); - setState(1703); + setState(1716); match(CypherParser::XOR); - setState(1704); + setState(1717); match(CypherParser::SP); - setState(1705); + setState(1718); oC_AndExpression(); } - setState(1710); + setState(1723); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 282, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 284, _ctx); } } @@ -10303,7 +10388,7 @@ size_t CypherParser::OC_AndExpressionContext::getRuleIndex() const { CypherParser::OC_AndExpressionContext* CypherParser::oC_AndExpression() { OC_AndExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 186, CypherParser::RuleOC_AndExpression); + enterRule(_localctx, 188, CypherParser::RuleOC_AndExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10315,25 +10400,25 @@ CypherParser::OC_AndExpressionContext* CypherParser::oC_AndExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1711); + setState(1724); oC_NotExpression(); - setState(1718); + setState(1731); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 283, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 285, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1712); + setState(1725); match(CypherParser::SP); - setState(1713); + setState(1726); match(CypherParser::AND); - setState(1714); + setState(1727); match(CypherParser::SP); - setState(1715); + setState(1728); oC_NotExpression(); } - setState(1720); + setState(1733); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 283, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 285, _ctx); } } @@ -10380,7 +10465,7 @@ size_t CypherParser::OC_NotExpressionContext::getRuleIndex() const { CypherParser::OC_NotExpressionContext* CypherParser::oC_NotExpression() { OC_NotExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 188, CypherParser::RuleOC_NotExpression); + enterRule(_localctx, 190, CypherParser::RuleOC_NotExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -10392,25 +10477,25 @@ CypherParser::OC_NotExpressionContext* CypherParser::oC_NotExpression() { }); try { enterOuterAlt(_localctx, 1); - setState(1727); + setState(1740); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::NOT) { - setState(1721); + setState(1734); match(CypherParser::NOT); - setState(1723); + setState(1736); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1722); + setState(1735); match(CypherParser::SP); } - setState(1729); + setState(1742); _errHandler->sync(this); _la = _input->LA(1); } - setState(1730); + setState(1743); oC_ComparisonExpression(); } @@ -10465,7 +10550,7 @@ size_t CypherParser::OC_ComparisonExpressionContext::getRuleIndex() const { CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpression() { OC_ComparisonExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 190, CypherParser::RuleOC_ComparisonExpression); + enterRule(_localctx, 192, CypherParser::RuleOC_ComparisonExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -10477,37 +10562,37 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress }); try { size_t alt; - setState(1780); + setState(1793); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 296, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 298, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1732); + setState(1745); kU_BitwiseOrOperatorExpression(); - setState(1742); + setState(1755); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 288, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 290, _ctx)) { case 1: { - setState(1734); + setState(1747); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1733); + setState(1746); match(CypherParser::SP); } - setState(1736); + setState(1749); kU_ComparisonOperator(); - setState(1738); + setState(1751); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1737); + setState(1750); match(CypherParser::SP); } - setState(1740); + setState(1753); kU_BitwiseOrOperatorExpression(); break; } @@ -10520,28 +10605,28 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 2: { enterOuterAlt(_localctx, 2); - setState(1744); + setState(1757); kU_BitwiseOrOperatorExpression(); - setState(1746); + setState(1759); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1745); + setState(1758); match(CypherParser::SP); } - setState(1748); + setState(1761); antlrcpp::downCast(_localctx)->invalid_not_equalToken = match(CypherParser::INVALID_NOT_EQUAL); - setState(1750); + setState(1763); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1749); + setState(1762); match(CypherParser::SP); } - setState(1752); + setState(1765); kU_BitwiseOrOperatorExpression(); notifyInvalidNotEqualOperator(antlrcpp::downCast(_localctx)->invalid_not_equalToken); break; @@ -10549,53 +10634,53 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 3: { enterOuterAlt(_localctx, 3); - setState(1756); + setState(1769); kU_BitwiseOrOperatorExpression(); - setState(1758); + setState(1771); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1757); + setState(1770); match(CypherParser::SP); } - setState(1760); + setState(1773); kU_ComparisonOperator(); - setState(1762); + setState(1775); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1761); + setState(1774); match(CypherParser::SP); } - setState(1764); + setState(1777); kU_BitwiseOrOperatorExpression(); - setState(1774); + setState(1787); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1766); + setState(1779); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1765); + setState(1778); match(CypherParser::SP); } - setState(1768); + setState(1781); kU_ComparisonOperator(); - setState(1770); + setState(1783); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1769); + setState(1782); match(CypherParser::SP); } - setState(1772); + setState(1785); kU_BitwiseOrOperatorExpression(); break; } @@ -10603,9 +10688,9 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress default: throw NoViableAltException(this); } - setState(1776); + setState(1789); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 295, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 297, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); notifyNonBinaryComparison(_localctx->start); break; @@ -10639,7 +10724,7 @@ size_t CypherParser::KU_ComparisonOperatorContext::getRuleIndex() const { CypherParser::KU_ComparisonOperatorContext* CypherParser::kU_ComparisonOperator() { KU_ComparisonOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 192, CypherParser::RuleKU_ComparisonOperator); + enterRule(_localctx, 194, CypherParser::RuleKU_ComparisonOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -10651,7 +10736,7 @@ CypherParser::KU_ComparisonOperatorContext* CypherParser::kU_ComparisonOperator( }); try { enterOuterAlt(_localctx, 1); - setState(1782); + setState(1795); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 127008) != 0))) { @@ -10702,7 +10787,7 @@ size_t CypherParser::KU_BitwiseOrOperatorExpressionContext::getRuleIndex() const CypherParser::KU_BitwiseOrOperatorExpressionContext* CypherParser::kU_BitwiseOrOperatorExpression() { KU_BitwiseOrOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 194, CypherParser::RuleKU_BitwiseOrOperatorExpression); + enterRule(_localctx, 196, CypherParser::RuleKU_BitwiseOrOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -10715,37 +10800,37 @@ CypherParser::KU_BitwiseOrOperatorExpressionContext* CypherParser::kU_BitwiseOrO try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1784); + setState(1797); kU_BitwiseAndOperatorExpression(); - setState(1795); + setState(1808); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 299, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 301, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1786); + setState(1799); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1785); + setState(1798); match(CypherParser::SP); } - setState(1788); + setState(1801); match(CypherParser::T__9); - setState(1790); + setState(1803); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1789); + setState(1802); match(CypherParser::SP); } - setState(1792); + setState(1805); kU_BitwiseAndOperatorExpression(); } - setState(1797); + setState(1810); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 299, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 301, _ctx); } } @@ -10788,7 +10873,7 @@ size_t CypherParser::KU_BitwiseAndOperatorExpressionContext::getRuleIndex() cons CypherParser::KU_BitwiseAndOperatorExpressionContext* CypherParser::kU_BitwiseAndOperatorExpression() { KU_BitwiseAndOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 196, CypherParser::RuleKU_BitwiseAndOperatorExpression); + enterRule(_localctx, 198, CypherParser::RuleKU_BitwiseAndOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -10801,37 +10886,37 @@ CypherParser::KU_BitwiseAndOperatorExpressionContext* CypherParser::kU_BitwiseAn try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1798); + setState(1811); kU_BitShiftOperatorExpression(); - setState(1809); + setState(1822); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 302, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 304, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1800); + setState(1813); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1799); + setState(1812); match(CypherParser::SP); } - setState(1802); + setState(1815); match(CypherParser::T__16); - setState(1804); + setState(1817); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1803); + setState(1816); match(CypherParser::SP); } - setState(1806); + setState(1819); kU_BitShiftOperatorExpression(); } - setState(1811); + setState(1824); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 302, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 304, _ctx); } } @@ -10882,7 +10967,7 @@ size_t CypherParser::KU_BitShiftOperatorExpressionContext::getRuleIndex() const CypherParser::KU_BitShiftOperatorExpressionContext* CypherParser::kU_BitShiftOperatorExpression() { KU_BitShiftOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 198, CypherParser::RuleKU_BitShiftOperatorExpression); + enterRule(_localctx, 200, CypherParser::RuleKU_BitShiftOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -10895,37 +10980,37 @@ CypherParser::KU_BitShiftOperatorExpressionContext* CypherParser::kU_BitShiftOpe try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1812); + setState(1825); oC_AddOrSubtractExpression(); - setState(1824); + setState(1837); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 305, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 307, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1814); + setState(1827); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1813); + setState(1826); match(CypherParser::SP); } - setState(1816); + setState(1829); kU_BitShiftOperator(); - setState(1818); + setState(1831); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1817); + setState(1830); match(CypherParser::SP); } - setState(1820); + setState(1833); oC_AddOrSubtractExpression(); } - setState(1826); + setState(1839); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 305, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 307, _ctx); } } @@ -10952,7 +11037,7 @@ size_t CypherParser::KU_BitShiftOperatorContext::getRuleIndex() const { CypherParser::KU_BitShiftOperatorContext* CypherParser::kU_BitShiftOperator() { KU_BitShiftOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 200, CypherParser::RuleKU_BitShiftOperator); + enterRule(_localctx, 202, CypherParser::RuleKU_BitShiftOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -10964,7 +11049,7 @@ CypherParser::KU_BitShiftOperatorContext* CypherParser::kU_BitShiftOperator() { }); try { enterOuterAlt(_localctx, 1); - setState(1827); + setState(1840); _la = _input->LA(1); if (!(_la == CypherParser::T__17 @@ -11024,7 +11109,7 @@ size_t CypherParser::OC_AddOrSubtractExpressionContext::getRuleIndex() const { CypherParser::OC_AddOrSubtractExpressionContext* CypherParser::oC_AddOrSubtractExpression() { OC_AddOrSubtractExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 202, CypherParser::RuleOC_AddOrSubtractExpression); + enterRule(_localctx, 204, CypherParser::RuleOC_AddOrSubtractExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11037,37 +11122,37 @@ CypherParser::OC_AddOrSubtractExpressionContext* CypherParser::oC_AddOrSubtractE try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1829); + setState(1842); oC_MultiplyDivideModuloExpression(); - setState(1841); + setState(1854); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 308, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 310, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1831); + setState(1844); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1830); + setState(1843); match(CypherParser::SP); } - setState(1833); + setState(1846); kU_AddOrSubtractOperator(); - setState(1835); + setState(1848); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1834); + setState(1847); match(CypherParser::SP); } - setState(1837); + setState(1850); oC_MultiplyDivideModuloExpression(); } - setState(1843); + setState(1856); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 308, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 310, _ctx); } } @@ -11098,7 +11183,7 @@ size_t CypherParser::KU_AddOrSubtractOperatorContext::getRuleIndex() const { CypherParser::KU_AddOrSubtractOperatorContext* CypherParser::kU_AddOrSubtractOperator() { KU_AddOrSubtractOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 204, CypherParser::RuleKU_AddOrSubtractOperator); + enterRule(_localctx, 206, CypherParser::RuleKU_AddOrSubtractOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -11110,7 +11195,7 @@ CypherParser::KU_AddOrSubtractOperatorContext* CypherParser::kU_AddOrSubtractOpe }); try { enterOuterAlt(_localctx, 1); - setState(1844); + setState(1857); _la = _input->LA(1); if (!(_la == CypherParser::T__19 || _la == CypherParser::MINUS)) { _errHandler->recoverInline(this); @@ -11168,7 +11253,7 @@ size_t CypherParser::OC_MultiplyDivideModuloExpressionContext::getRuleIndex() co CypherParser::OC_MultiplyDivideModuloExpressionContext* CypherParser::oC_MultiplyDivideModuloExpression() { OC_MultiplyDivideModuloExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 206, CypherParser::RuleOC_MultiplyDivideModuloExpression); + enterRule(_localctx, 208, CypherParser::RuleOC_MultiplyDivideModuloExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11181,37 +11266,37 @@ CypherParser::OC_MultiplyDivideModuloExpressionContext* CypherParser::oC_Multipl try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1846); + setState(1859); oC_PowerOfExpression(); - setState(1858); + setState(1871); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 311, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 313, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1848); + setState(1861); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1847); + setState(1860); match(CypherParser::SP); } - setState(1850); + setState(1863); kU_MultiplyDivideModuloOperator(); - setState(1852); + setState(1865); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1851); + setState(1864); match(CypherParser::SP); } - setState(1854); + setState(1867); oC_PowerOfExpression(); } - setState(1860); + setState(1873); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 311, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 313, _ctx); } } @@ -11242,7 +11327,7 @@ size_t CypherParser::KU_MultiplyDivideModuloOperatorContext::getRuleIndex() cons CypherParser::KU_MultiplyDivideModuloOperatorContext* CypherParser::kU_MultiplyDivideModuloOperator() { KU_MultiplyDivideModuloOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 208, CypherParser::RuleKU_MultiplyDivideModuloOperator); + enterRule(_localctx, 210, CypherParser::RuleKU_MultiplyDivideModuloOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -11254,7 +11339,7 @@ CypherParser::KU_MultiplyDivideModuloOperatorContext* CypherParser::kU_MultiplyD }); try { enterOuterAlt(_localctx, 1); - setState(1861); + setState(1874); _la = _input->LA(1); if (!(_la == CypherParser::T__20 @@ -11306,7 +11391,7 @@ size_t CypherParser::OC_PowerOfExpressionContext::getRuleIndex() const { CypherParser::OC_PowerOfExpressionContext* CypherParser::oC_PowerOfExpression() { OC_PowerOfExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 210, CypherParser::RuleOC_PowerOfExpression); + enterRule(_localctx, 212, CypherParser::RuleOC_PowerOfExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11319,37 +11404,37 @@ CypherParser::OC_PowerOfExpressionContext* CypherParser::oC_PowerOfExpression() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1863); + setState(1876); oC_UnaryAddSubtractOrFactorialExpression(); - setState(1874); + setState(1887); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 314, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 316, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1865); + setState(1878); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1864); + setState(1877); match(CypherParser::SP); } - setState(1867); + setState(1880); match(CypherParser::T__22); - setState(1869); + setState(1882); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1868); + setState(1881); match(CypherParser::SP); } - setState(1871); + setState(1884); oC_UnaryAddSubtractOrFactorialExpression(); } - setState(1876); + setState(1889); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 314, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 316, _ctx); } } @@ -11400,7 +11485,7 @@ size_t CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext::getRuleInd CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext* CypherParser::oC_UnaryAddSubtractOrFactorialExpression() { OC_UnaryAddSubtractOrFactorialExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 212, CypherParser::RuleOC_UnaryAddSubtractOrFactorialExpression); + enterRule(_localctx, 214, CypherParser::RuleOC_UnaryAddSubtractOrFactorialExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11412,40 +11497,40 @@ CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext* CypherParser::oC_ }); try { enterOuterAlt(_localctx, 1); - setState(1883); + setState(1896); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::MINUS) { - setState(1877); + setState(1890); match(CypherParser::MINUS); - setState(1879); + setState(1892); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1878); + setState(1891); match(CypherParser::SP); } - setState(1885); + setState(1898); _errHandler->sync(this); _la = _input->LA(1); } - setState(1886); + setState(1899); oC_StringListNullOperatorExpression(); - setState(1891); + setState(1904); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 318, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 320, _ctx)) { case 1: { - setState(1888); + setState(1901); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1887); + setState(1900); match(CypherParser::SP); } - setState(1890); + setState(1903); match(CypherParser::FACTORIAL); break; } @@ -11498,7 +11583,7 @@ size_t CypherParser::OC_StringListNullOperatorExpressionContext::getRuleIndex() CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_StringListNullOperatorExpression() { OC_StringListNullOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 214, CypherParser::RuleOC_StringListNullOperatorExpression); + enterRule(_localctx, 216, CypherParser::RuleOC_StringListNullOperatorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -11510,26 +11595,26 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1893); + setState(1906); oC_PropertyOrLabelsExpression(); - setState(1901); + setState(1914); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 320, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 322, _ctx)) { case 1: { - setState(1894); + setState(1907); oC_StringOperatorExpression(); break; } case 2: { - setState(1896); + setState(1909); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1895); + setState(1908); oC_ListOperatorExpression(); break; } @@ -11537,15 +11622,15 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin default: throw NoViableAltException(this); } - setState(1898); + setState(1911); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 319, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 321, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } case 3: { - setState(1900); + setState(1913); oC_NullOperatorExpression(); break; } @@ -11606,7 +11691,7 @@ size_t CypherParser::OC_ListOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExpression() { OC_ListOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 216, CypherParser::RuleOC_ListOperatorExpression); + enterRule(_localctx, 218, CypherParser::RuleOC_ListOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11617,44 +11702,44 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp exitRule(); }); try { - setState(1922); + setState(1935); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 324, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 326, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1903); + setState(1916); match(CypherParser::SP); - setState(1904); + setState(1917); match(CypherParser::IN); - setState(1906); + setState(1919); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1905); + setState(1918); match(CypherParser::SP); } - setState(1908); + setState(1921); oC_PropertyOrLabelsExpression(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1909); + setState(1922); match(CypherParser::T__5); - setState(1910); + setState(1923); oC_Expression(); - setState(1911); + setState(1924); match(CypherParser::T__6); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1913); + setState(1926); match(CypherParser::T__5); - setState(1915); + setState(1928); _errHandler->sync(this); _la = _input->LA(1); @@ -11662,12 +11747,12 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139968930742255) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(1914); + setState(1927); oC_Expression(); } - setState(1917); + setState(1930); match(CypherParser::COLON); - setState(1919); + setState(1932); _errHandler->sync(this); _la = _input->LA(1); @@ -11675,10 +11760,10 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139968930742255) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(1918); + setState(1931); oC_Expression(); } - setState(1921); + setState(1934); match(CypherParser::T__6); break; } @@ -11743,7 +11828,7 @@ size_t CypherParser::OC_StringOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperatorExpression() { OC_StringOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 218, CypherParser::RuleOC_StringOperatorExpression); + enterRule(_localctx, 220, CypherParser::RuleOC_StringOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11755,43 +11840,43 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato }); try { enterOuterAlt(_localctx, 1); - setState(1935); + setState(1948); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 325, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 327, _ctx)) { case 1: { - setState(1924); + setState(1937); oC_RegularExpression(); break; } case 2: { - setState(1925); + setState(1938); match(CypherParser::SP); - setState(1926); + setState(1939); match(CypherParser::STARTS); - setState(1927); + setState(1940); match(CypherParser::SP); - setState(1928); + setState(1941); match(CypherParser::WITH); break; } case 3: { - setState(1929); + setState(1942); match(CypherParser::SP); - setState(1930); + setState(1943); match(CypherParser::ENDS); - setState(1931); + setState(1944); match(CypherParser::SP); - setState(1932); + setState(1945); match(CypherParser::WITH); break; } case 4: { - setState(1933); + setState(1946); match(CypherParser::SP); - setState(1934); + setState(1947); match(CypherParser::CONTAINS); break; } @@ -11799,15 +11884,15 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato default: break; } - setState(1938); + setState(1951); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1937); + setState(1950); match(CypherParser::SP); } - setState(1940); + setState(1953); oC_PropertyOrLabelsExpression(); } @@ -11838,7 +11923,7 @@ size_t CypherParser::OC_RegularExpressionContext::getRuleIndex() const { CypherParser::OC_RegularExpressionContext* CypherParser::oC_RegularExpression() { OC_RegularExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 220, CypherParser::RuleOC_RegularExpression); + enterRule(_localctx, 222, CypherParser::RuleOC_RegularExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -11850,15 +11935,15 @@ CypherParser::OC_RegularExpressionContext* CypherParser::oC_RegularExpression() }); try { enterOuterAlt(_localctx, 1); - setState(1943); + setState(1956); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1942); + setState(1955); match(CypherParser::SP); } - setState(1945); + setState(1958); match(CypherParser::T__23); } @@ -11905,7 +11990,7 @@ size_t CypherParser::OC_NullOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_NullOperatorExpressionContext* CypherParser::oC_NullOperatorExpression() { OC_NullOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 222, CypherParser::RuleOC_NullOperatorExpression); + enterRule(_localctx, 224, CypherParser::RuleOC_NullOperatorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -11915,35 +12000,35 @@ CypherParser::OC_NullOperatorExpressionContext* CypherParser::oC_NullOperatorExp exitRule(); }); try { - setState(1957); + setState(1970); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 328, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 330, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1947); + setState(1960); match(CypherParser::SP); - setState(1948); + setState(1961); match(CypherParser::IS); - setState(1949); + setState(1962); match(CypherParser::SP); - setState(1950); + setState(1963); match(CypherParser::NULL_); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1951); + setState(1964); match(CypherParser::SP); - setState(1952); + setState(1965); match(CypherParser::IS); - setState(1953); + setState(1966); match(CypherParser::SP); - setState(1954); + setState(1967); match(CypherParser::NOT); - setState(1955); + setState(1968); match(CypherParser::SP); - setState(1956); + setState(1969); match(CypherParser::NULL_); break; } @@ -11996,7 +12081,7 @@ size_t CypherParser::OC_PropertyOrLabelsExpressionContext::getRuleIndex() const CypherParser::OC_PropertyOrLabelsExpressionContext* CypherParser::oC_PropertyOrLabelsExpression() { OC_PropertyOrLabelsExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 224, CypherParser::RuleOC_PropertyOrLabelsExpression); + enterRule(_localctx, 226, CypherParser::RuleOC_PropertyOrLabelsExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -12009,27 +12094,27 @@ CypherParser::OC_PropertyOrLabelsExpressionContext* CypherParser::oC_PropertyOrL try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1959); + setState(1972); oC_Atom(); - setState(1966); + setState(1979); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 330, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 332, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1961); + setState(1974); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1960); + setState(1973); match(CypherParser::SP); } - setState(1963); + setState(1976); oC_PropertyLookup(); } - setState(1968); + setState(1981); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 330, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 332, _ctx); } } @@ -12092,7 +12177,7 @@ size_t CypherParser::OC_AtomContext::getRuleIndex() const { CypherParser::OC_AtomContext* CypherParser::oC_Atom() { OC_AtomContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 226, CypherParser::RuleOC_Atom); + enterRule(_localctx, 228, CypherParser::RuleOC_Atom); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12102,68 +12187,68 @@ CypherParser::OC_AtomContext* CypherParser::oC_Atom() { exitRule(); }); try { - setState(1978); + setState(1991); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 331, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 333, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1969); + setState(1982); oC_Literal(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1970); + setState(1983); oC_Parameter(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1971); + setState(1984); oC_CaseExpression(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(1972); + setState(1985); oC_ParenthesizedExpression(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(1973); + setState(1986); oC_FunctionInvocation(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(1974); + setState(1987); oC_PathPatterns(); break; } case 7: { enterOuterAlt(_localctx, 7); - setState(1975); + setState(1988); oC_ExistSubquery(); break; } case 8: { enterOuterAlt(_localctx, 8); - setState(1976); + setState(1989); kU_CountSubquery(); break; } case 9: { enterOuterAlt(_localctx, 9); - setState(1977); + setState(1990); oC_Variable(); break; } @@ -12220,7 +12305,7 @@ size_t CypherParser::OC_LiteralContext::getRuleIndex() const { CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { OC_LiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 228, CypherParser::RuleOC_Literal); + enterRule(_localctx, 230, CypherParser::RuleOC_Literal); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12230,20 +12315,20 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { exitRule(); }); try { - setState(1986); + setState(1999); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::DecimalInteger: case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(1980); + setState(1993); oC_NumberLiteral(); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(1981); + setState(1994); match(CypherParser::StringLiteral); break; } @@ -12251,28 +12336,28 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { case CypherParser::TRUE: case CypherParser::FALSE: { enterOuterAlt(_localctx, 3); - setState(1982); + setState(1995); oC_BooleanLiteral(); break; } case CypherParser::NULL_: { enterOuterAlt(_localctx, 4); - setState(1983); + setState(1996); match(CypherParser::NULL_); break; } case CypherParser::T__5: { enterOuterAlt(_localctx, 5); - setState(1984); + setState(1997); oC_ListLiteral(); break; } case CypherParser::T__7: { enterOuterAlt(_localctx, 6); - setState(1985); + setState(1998); kU_StructLiteral(); break; } @@ -12313,7 +12398,7 @@ size_t CypherParser::OC_BooleanLiteralContext::getRuleIndex() const { CypherParser::OC_BooleanLiteralContext* CypherParser::oC_BooleanLiteral() { OC_BooleanLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 230, CypherParser::RuleOC_BooleanLiteral); + enterRule(_localctx, 232, CypherParser::RuleOC_BooleanLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -12325,7 +12410,7 @@ CypherParser::OC_BooleanLiteralContext* CypherParser::oC_BooleanLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1988); + setState(2001); _la = _input->LA(1); if (!(_la == CypherParser::TRUE @@ -12381,7 +12466,7 @@ size_t CypherParser::OC_ListLiteralContext::getRuleIndex() const { CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { OC_ListLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 232, CypherParser::RuleOC_ListLiteral); + enterRule(_localctx, 234, CypherParser::RuleOC_ListLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -12393,17 +12478,17 @@ CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1990); + setState(2003); match(CypherParser::T__5); - setState(1992); + setState(2005); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1991); + setState(2004); match(CypherParser::SP); } - setState(2007); + setState(2020); _errHandler->sync(this); _la = _input->LA(1); @@ -12411,36 +12496,36 @@ CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139968930742255) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(1994); + setState(2007); oC_Expression(); - setState(1996); + setState(2009); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1995); + setState(2008); match(CypherParser::SP); } - setState(2004); + setState(2017); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1998); + setState(2011); kU_ListEntry(); - setState(2000); + setState(2013); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1999); + setState(2012); match(CypherParser::SP); } - setState(2006); + setState(2019); _errHandler->sync(this); _la = _input->LA(1); } } - setState(2009); + setState(2022); match(CypherParser::T__6); } @@ -12475,7 +12560,7 @@ size_t CypherParser::KU_ListEntryContext::getRuleIndex() const { CypherParser::KU_ListEntryContext* CypherParser::kU_ListEntry() { KU_ListEntryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 234, CypherParser::RuleKU_ListEntry); + enterRule(_localctx, 236, CypherParser::RuleKU_ListEntry); size_t _la = 0; #if __cplusplus > 201703L @@ -12487,14 +12572,14 @@ CypherParser::KU_ListEntryContext* CypherParser::kU_ListEntry() { }); try { enterOuterAlt(_localctx, 1); - setState(2011); + setState(2024); match(CypherParser::T__3); - setState(2013); + setState(2026); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 338, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 340, _ctx)) { case 1: { - setState(2012); + setState(2025); match(CypherParser::SP); break; } @@ -12502,7 +12587,7 @@ CypherParser::KU_ListEntryContext* CypherParser::kU_ListEntry() { default: break; } - setState(2016); + setState(2029); _errHandler->sync(this); _la = _input->LA(1); @@ -12510,7 +12595,7 @@ CypherParser::KU_ListEntryContext* CypherParser::kU_ListEntry() { ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139968930742255) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(2015); + setState(2028); oC_Expression(); } @@ -12554,7 +12639,7 @@ size_t CypherParser::KU_StructLiteralContext::getRuleIndex() const { CypherParser::KU_StructLiteralContext* CypherParser::kU_StructLiteral() { KU_StructLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 236, CypherParser::RuleKU_StructLiteral); + enterRule(_localctx, 238, CypherParser::RuleKU_StructLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -12566,55 +12651,55 @@ CypherParser::KU_StructLiteralContext* CypherParser::kU_StructLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2018); + setState(2031); match(CypherParser::T__7); - setState(2020); + setState(2033); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2019); + setState(2032); match(CypherParser::SP); } - setState(2022); + setState(2035); kU_StructField(); - setState(2024); + setState(2037); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2023); + setState(2036); match(CypherParser::SP); } - setState(2036); + setState(2049); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2026); + setState(2039); match(CypherParser::T__3); - setState(2028); + setState(2041); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2027); + setState(2040); match(CypherParser::SP); } - setState(2030); + setState(2043); kU_StructField(); - setState(2032); + setState(2045); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2031); + setState(2044); match(CypherParser::SP); } - setState(2038); + setState(2051); _errHandler->sync(this); _la = _input->LA(1); } - setState(2039); + setState(2052); match(CypherParser::T__8); } @@ -12665,7 +12750,7 @@ size_t CypherParser::KU_StructFieldContext::getRuleIndex() const { CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { KU_StructFieldContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 238, CypherParser::RuleKU_StructField); + enterRule(_localctx, 240, CypherParser::RuleKU_StructField); size_t _la = 0; #if __cplusplus > 201703L @@ -12677,7 +12762,7 @@ CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { }); try { enterOuterAlt(_localctx, 1); - setState(2043); + setState(2056); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: @@ -12692,13 +12777,13 @@ CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(2041); + setState(2054); oC_SymbolicName(); break; } case CypherParser::StringLiteral: { - setState(2042); + setState(2055); match(CypherParser::StringLiteral); break; } @@ -12706,25 +12791,25 @@ CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { default: throw NoViableAltException(this); } - setState(2046); + setState(2059); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2045); + setState(2058); match(CypherParser::SP); } - setState(2048); + setState(2061); match(CypherParser::COLON); - setState(2050); + setState(2063); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2049); + setState(2062); match(CypherParser::SP); } - setState(2052); + setState(2065); oC_Expression(); } @@ -12763,7 +12848,7 @@ size_t CypherParser::OC_ParenthesizedExpressionContext::getRuleIndex() const { CypherParser::OC_ParenthesizedExpressionContext* CypherParser::oC_ParenthesizedExpression() { OC_ParenthesizedExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 240, CypherParser::RuleOC_ParenthesizedExpression); + enterRule(_localctx, 242, CypherParser::RuleOC_ParenthesizedExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -12775,27 +12860,27 @@ CypherParser::OC_ParenthesizedExpressionContext* CypherParser::oC_ParenthesizedE }); try { enterOuterAlt(_localctx, 1); - setState(2054); + setState(2067); match(CypherParser::T__1); - setState(2056); + setState(2069); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2055); + setState(2068); match(CypherParser::SP); } - setState(2058); + setState(2071); oC_Expression(); - setState(2060); + setState(2073); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2059); + setState(2072); match(CypherParser::SP); } - setState(2062); + setState(2075); match(CypherParser::T__2); } @@ -12854,7 +12939,7 @@ size_t CypherParser::OC_FunctionInvocationContext::getRuleIndex() const { CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation() { OC_FunctionInvocationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 242, CypherParser::RuleOC_FunctionInvocation); + enterRule(_localctx, 244, CypherParser::RuleOC_FunctionInvocation); size_t _la = 0; #if __cplusplus > 201703L @@ -12865,85 +12950,85 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( exitRule(); }); try { - setState(2112); + setState(2125); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 362, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 364, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2064); + setState(2077); match(CypherParser::COUNT); - setState(2066); + setState(2079); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2065); + setState(2078); match(CypherParser::SP); } - setState(2068); + setState(2081); match(CypherParser::T__1); - setState(2070); + setState(2083); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2069); + setState(2082); match(CypherParser::SP); } - setState(2072); + setState(2085); match(CypherParser::STAR); - setState(2074); + setState(2087); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2073); + setState(2086); match(CypherParser::SP); } - setState(2076); + setState(2089); match(CypherParser::T__2); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2077); + setState(2090); oC_FunctionName(); - setState(2079); + setState(2092); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2078); + setState(2091); match(CypherParser::SP); } - setState(2081); + setState(2094); match(CypherParser::T__1); - setState(2083); + setState(2096); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2082); + setState(2095); match(CypherParser::SP); } - setState(2089); + setState(2102); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DISTINCT) { - setState(2085); + setState(2098); match(CypherParser::DISTINCT); - setState(2087); + setState(2100); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2086); + setState(2099); match(CypherParser::SP); } } - setState(2108); + setState(2121); _errHandler->sync(this); _la = _input->LA(1); @@ -12951,46 +13036,46 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( ((1ULL << _la) & 63191132338651460) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 66)) & -4681139968930742255) != 0) || ((((_la - 132) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 132)) & 9741) != 0)) { - setState(2091); + setState(2104); kU_FunctionParameter(); - setState(2093); + setState(2106); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2092); + setState(2105); match(CypherParser::SP); } - setState(2105); + setState(2118); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2095); + setState(2108); match(CypherParser::T__3); - setState(2097); + setState(2110); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2096); + setState(2109); match(CypherParser::SP); } - setState(2099); + setState(2112); kU_FunctionParameter(); - setState(2101); + setState(2114); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2100); + setState(2113); match(CypherParser::SP); } - setState(2107); + setState(2120); _errHandler->sync(this); _la = _input->LA(1); } } - setState(2110); + setState(2123); match(CypherParser::T__2); break; } @@ -13027,7 +13112,7 @@ size_t CypherParser::OC_FunctionNameContext::getRuleIndex() const { CypherParser::OC_FunctionNameContext* CypherParser::oC_FunctionName() { OC_FunctionNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 244, CypherParser::RuleOC_FunctionName); + enterRule(_localctx, 246, CypherParser::RuleOC_FunctionName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -13038,7 +13123,7 @@ CypherParser::OC_FunctionNameContext* CypherParser::oC_FunctionName() { }); try { enterOuterAlt(_localctx, 1); - setState(2114); + setState(2127); oC_SymbolicName(); } @@ -13085,7 +13170,7 @@ size_t CypherParser::KU_FunctionParameterContext::getRuleIndex() const { CypherParser::KU_FunctionParameterContext* CypherParser::kU_FunctionParameter() { KU_FunctionParameterContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 246, CypherParser::RuleKU_FunctionParameter); + enterRule(_localctx, 248, CypherParser::RuleKU_FunctionParameter); size_t _la = 0; #if __cplusplus > 201703L @@ -13097,31 +13182,31 @@ CypherParser::KU_FunctionParameterContext* CypherParser::kU_FunctionParameter() }); try { enterOuterAlt(_localctx, 1); - setState(2125); + setState(2138); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 365, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 367, _ctx)) { case 1: { - setState(2116); + setState(2129); oC_SymbolicName(); - setState(2118); + setState(2131); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2117); + setState(2130); match(CypherParser::SP); } - setState(2120); + setState(2133); match(CypherParser::COLON); - setState(2121); + setState(2134); match(CypherParser::T__4); - setState(2123); + setState(2136); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2122); + setState(2135); match(CypherParser::SP); } break; @@ -13130,7 +13215,7 @@ CypherParser::KU_FunctionParameterContext* CypherParser::kU_FunctionParameter() default: break; } - setState(2127); + setState(2140); oC_Expression(); } @@ -13177,7 +13262,7 @@ size_t CypherParser::OC_PathPatternsContext::getRuleIndex() const { CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { OC_PathPatternsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 248, CypherParser::RuleOC_PathPatterns); + enterRule(_localctx, 250, CypherParser::RuleOC_PathPatterns); size_t _la = 0; #if __cplusplus > 201703L @@ -13190,23 +13275,23 @@ CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2129); + setState(2142); oC_NodePattern(); - setState(2134); + setState(2147); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2131); + setState(2144); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2130); + setState(2143); match(CypherParser::SP); } - setState(2133); + setState(2146); oC_PatternElementChain(); break; } @@ -13214,9 +13299,9 @@ CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { default: throw NoViableAltException(this); } - setState(2136); + setState(2149); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 367, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 369, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); } @@ -13267,7 +13352,7 @@ size_t CypherParser::OC_ExistSubqueryContext::getRuleIndex() const { CypherParser::OC_ExistSubqueryContext* CypherParser::oC_ExistSubquery() { OC_ExistSubqueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 250, CypherParser::RuleOC_ExistSubquery); + enterRule(_localctx, 252, CypherParser::RuleOC_ExistSubquery); size_t _la = 0; #if __cplusplus > 201703L @@ -13279,52 +13364,52 @@ CypherParser::OC_ExistSubqueryContext* CypherParser::oC_ExistSubquery() { }); try { enterOuterAlt(_localctx, 1); - setState(2138); + setState(2151); match(CypherParser::EXISTS); - setState(2140); + setState(2153); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2139); + setState(2152); match(CypherParser::SP); } - setState(2142); + setState(2155); match(CypherParser::T__7); - setState(2144); + setState(2157); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2143); + setState(2156); match(CypherParser::SP); } - setState(2146); + setState(2159); match(CypherParser::MATCH); - setState(2148); + setState(2161); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2147); + setState(2160); match(CypherParser::SP); } - setState(2150); + setState(2163); oC_Pattern(); - setState(2155); + setState(2168); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 372, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 374, _ctx)) { case 1: { - setState(2152); + setState(2165); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2151); + setState(2164); match(CypherParser::SP); } - setState(2154); + setState(2167); oC_Where(); break; } @@ -13332,15 +13417,15 @@ CypherParser::OC_ExistSubqueryContext* CypherParser::oC_ExistSubquery() { default: break; } - setState(2158); + setState(2171); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2157); + setState(2170); match(CypherParser::SP); } - setState(2160); + setState(2173); match(CypherParser::T__8); } @@ -13391,7 +13476,7 @@ size_t CypherParser::KU_CountSubqueryContext::getRuleIndex() const { CypherParser::KU_CountSubqueryContext* CypherParser::kU_CountSubquery() { KU_CountSubqueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 252, CypherParser::RuleKU_CountSubquery); + enterRule(_localctx, 254, CypherParser::RuleKU_CountSubquery); size_t _la = 0; #if __cplusplus > 201703L @@ -13403,52 +13488,52 @@ CypherParser::KU_CountSubqueryContext* CypherParser::kU_CountSubquery() { }); try { enterOuterAlt(_localctx, 1); - setState(2162); + setState(2175); match(CypherParser::COUNT); - setState(2164); + setState(2177); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2163); + setState(2176); match(CypherParser::SP); } - setState(2166); + setState(2179); match(CypherParser::T__7); - setState(2168); + setState(2181); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2167); + setState(2180); match(CypherParser::SP); } - setState(2170); + setState(2183); match(CypherParser::MATCH); - setState(2172); + setState(2185); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2171); + setState(2184); match(CypherParser::SP); } - setState(2174); + setState(2187); oC_Pattern(); - setState(2179); + setState(2192); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 378, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 380, _ctx)) { case 1: { - setState(2176); + setState(2189); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2175); + setState(2188); match(CypherParser::SP); } - setState(2178); + setState(2191); oC_Where(); break; } @@ -13456,15 +13541,15 @@ CypherParser::KU_CountSubqueryContext* CypherParser::kU_CountSubquery() { default: break; } - setState(2182); + setState(2195); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2181); + setState(2194); match(CypherParser::SP); } - setState(2184); + setState(2197); match(CypherParser::T__8); } @@ -13503,7 +13588,7 @@ size_t CypherParser::OC_PropertyLookupContext::getRuleIndex() const { CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { OC_PropertyLookupContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 254, CypherParser::RuleOC_PropertyLookup); + enterRule(_localctx, 256, CypherParser::RuleOC_PropertyLookup); size_t _la = 0; #if __cplusplus > 201703L @@ -13515,17 +13600,17 @@ CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { }); try { enterOuterAlt(_localctx, 1); - setState(2186); + setState(2199); match(CypherParser::T__24); - setState(2188); + setState(2201); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2187); + setState(2200); match(CypherParser::SP); } - setState(2192); + setState(2205); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: @@ -13540,13 +13625,13 @@ CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(2190); + setState(2203); oC_PropertyKeyName(); break; } case CypherParser::STAR: { - setState(2191); + setState(2204); match(CypherParser::STAR); break; } @@ -13615,7 +13700,7 @@ size_t CypherParser::OC_CaseExpressionContext::getRuleIndex() const { CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { OC_CaseExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 256, CypherParser::RuleOC_CaseExpression); + enterRule(_localctx, 258, CypherParser::RuleOC_CaseExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -13628,27 +13713,27 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2216); + setState(2229); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 387, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 389, _ctx)) { case 1: { - setState(2194); + setState(2207); match(CypherParser::CASE); - setState(2199); + setState(2212); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2196); + setState(2209); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2195); + setState(2208); match(CypherParser::SP); } - setState(2198); + setState(2211); oC_CaseAlternative(); break; } @@ -13656,41 +13741,41 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(2201); + setState(2214); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 383, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 385, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } case 2: { - setState(2203); + setState(2216); match(CypherParser::CASE); - setState(2205); + setState(2218); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2204); + setState(2217); match(CypherParser::SP); } - setState(2207); + setState(2220); oC_Expression(); - setState(2212); + setState(2225); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2209); + setState(2222); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2208); + setState(2221); match(CypherParser::SP); } - setState(2211); + setState(2224); oC_CaseAlternative(); break; } @@ -13698,9 +13783,9 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(2214); + setState(2227); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 386, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 388, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } @@ -13708,30 +13793,30 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(2226); + setState(2239); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 390, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 392, _ctx)) { case 1: { - setState(2219); + setState(2232); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2218); + setState(2231); match(CypherParser::SP); } - setState(2221); + setState(2234); match(CypherParser::ELSE); - setState(2223); + setState(2236); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2222); + setState(2235); match(CypherParser::SP); } - setState(2225); + setState(2238); oC_Expression(); break; } @@ -13739,15 +13824,15 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(2229); + setState(2242); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2228); + setState(2241); match(CypherParser::SP); } - setState(2231); + setState(2244); match(CypherParser::END); } @@ -13798,7 +13883,7 @@ size_t CypherParser::OC_CaseAlternativeContext::getRuleIndex() const { CypherParser::OC_CaseAlternativeContext* CypherParser::oC_CaseAlternative() { OC_CaseAlternativeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 258, CypherParser::RuleOC_CaseAlternative); + enterRule(_localctx, 260, CypherParser::RuleOC_CaseAlternative); size_t _la = 0; #if __cplusplus > 201703L @@ -13810,37 +13895,37 @@ CypherParser::OC_CaseAlternativeContext* CypherParser::oC_CaseAlternative() { }); try { enterOuterAlt(_localctx, 1); - setState(2233); + setState(2246); match(CypherParser::WHEN); - setState(2235); + setState(2248); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2234); + setState(2247); match(CypherParser::SP); } - setState(2237); + setState(2250); oC_Expression(); - setState(2239); + setState(2252); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2238); + setState(2251); match(CypherParser::SP); } - setState(2241); + setState(2254); match(CypherParser::THEN); - setState(2243); + setState(2256); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2242); + setState(2255); match(CypherParser::SP); } - setState(2245); + setState(2258); oC_Expression(); } @@ -13871,7 +13956,7 @@ size_t CypherParser::OC_VariableContext::getRuleIndex() const { CypherParser::OC_VariableContext* CypherParser::oC_Variable() { OC_VariableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 260, CypherParser::RuleOC_Variable); + enterRule(_localctx, 262, CypherParser::RuleOC_Variable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -13882,7 +13967,7 @@ CypherParser::OC_VariableContext* CypherParser::oC_Variable() { }); try { enterOuterAlt(_localctx, 1); - setState(2247); + setState(2260); oC_SymbolicName(); } @@ -13917,7 +14002,7 @@ size_t CypherParser::OC_NumberLiteralContext::getRuleIndex() const { CypherParser::OC_NumberLiteralContext* CypherParser::oC_NumberLiteral() { OC_NumberLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 262, CypherParser::RuleOC_NumberLiteral); + enterRule(_localctx, 264, CypherParser::RuleOC_NumberLiteral); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -13927,19 +14012,19 @@ CypherParser::OC_NumberLiteralContext* CypherParser::oC_NumberLiteral() { exitRule(); }); try { - setState(2251); + setState(2264); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(2249); + setState(2262); oC_DoubleLiteral(); break; } case CypherParser::DecimalInteger: { enterOuterAlt(_localctx, 2); - setState(2250); + setState(2263); oC_IntegerLiteral(); break; } @@ -13980,7 +14065,7 @@ size_t CypherParser::OC_ParameterContext::getRuleIndex() const { CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { OC_ParameterContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 264, CypherParser::RuleOC_Parameter); + enterRule(_localctx, 266, CypherParser::RuleOC_Parameter); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -13991,9 +14076,9 @@ CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { }); try { enterOuterAlt(_localctx, 1); - setState(2253); + setState(2266); match(CypherParser::T__25); - setState(2256); + setState(2269); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: @@ -14008,13 +14093,13 @@ CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(2254); + setState(2267); oC_SymbolicName(); break; } case CypherParser::DecimalInteger: { - setState(2255); + setState(2268); match(CypherParser::DecimalInteger); break; } @@ -14059,7 +14144,7 @@ size_t CypherParser::OC_PropertyExpressionContext::getRuleIndex() const { CypherParser::OC_PropertyExpressionContext* CypherParser::oC_PropertyExpression() { OC_PropertyExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 266, CypherParser::RuleOC_PropertyExpression); + enterRule(_localctx, 268, CypherParser::RuleOC_PropertyExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -14071,17 +14156,17 @@ CypherParser::OC_PropertyExpressionContext* CypherParser::oC_PropertyExpression( }); try { enterOuterAlt(_localctx, 1); - setState(2258); + setState(2271); oC_Atom(); - setState(2260); + setState(2273); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2259); + setState(2272); match(CypherParser::SP); } - setState(2262); + setState(2275); oC_PropertyLookup(); } @@ -14112,7 +14197,7 @@ size_t CypherParser::OC_PropertyKeyNameContext::getRuleIndex() const { CypherParser::OC_PropertyKeyNameContext* CypherParser::oC_PropertyKeyName() { OC_PropertyKeyNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 268, CypherParser::RuleOC_PropertyKeyName); + enterRule(_localctx, 270, CypherParser::RuleOC_PropertyKeyName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14123,7 +14208,7 @@ CypherParser::OC_PropertyKeyNameContext* CypherParser::oC_PropertyKeyName() { }); try { enterOuterAlt(_localctx, 1); - setState(2264); + setState(2277); oC_SchemaName(); } @@ -14154,7 +14239,7 @@ size_t CypherParser::OC_IntegerLiteralContext::getRuleIndex() const { CypherParser::OC_IntegerLiteralContext* CypherParser::oC_IntegerLiteral() { OC_IntegerLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 270, CypherParser::RuleOC_IntegerLiteral); + enterRule(_localctx, 272, CypherParser::RuleOC_IntegerLiteral); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14165,7 +14250,7 @@ CypherParser::OC_IntegerLiteralContext* CypherParser::oC_IntegerLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2266); + setState(2279); match(CypherParser::DecimalInteger); } @@ -14196,7 +14281,7 @@ size_t CypherParser::OC_DoubleLiteralContext::getRuleIndex() const { CypherParser::OC_DoubleLiteralContext* CypherParser::oC_DoubleLiteral() { OC_DoubleLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 272, CypherParser::RuleOC_DoubleLiteral); + enterRule(_localctx, 274, CypherParser::RuleOC_DoubleLiteral); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14207,7 +14292,7 @@ CypherParser::OC_DoubleLiteralContext* CypherParser::oC_DoubleLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2268); + setState(2281); match(CypherParser::RegularDecimalReal); } @@ -14238,7 +14323,7 @@ size_t CypherParser::OC_SchemaNameContext::getRuleIndex() const { CypherParser::OC_SchemaNameContext* CypherParser::oC_SchemaName() { OC_SchemaNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 274, CypherParser::RuleOC_SchemaName); + enterRule(_localctx, 276, CypherParser::RuleOC_SchemaName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14249,7 +14334,7 @@ CypherParser::OC_SchemaNameContext* CypherParser::oC_SchemaName() { }); try { enterOuterAlt(_localctx, 1); - setState(2270); + setState(2283); oC_SymbolicName(); } @@ -14292,7 +14377,7 @@ size_t CypherParser::OC_SymbolicNameContext::getRuleIndex() const { CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { OC_SymbolicNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 276, CypherParser::RuleOC_SymbolicName); + enterRule(_localctx, 278, CypherParser::RuleOC_SymbolicName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14302,19 +14387,19 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { exitRule(); }); try { - setState(2277); + setState(2290); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::UnescapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(2272); + setState(2285); match(CypherParser::UnescapedSymbolicName); break; } case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(2273); + setState(2286); antlrcpp::downCast(_localctx)->escapedsymbolicnameToken = match(CypherParser::EscapedSymbolicName); if ((antlrcpp::downCast(_localctx)->escapedsymbolicnameToken != nullptr ? antlrcpp::downCast(_localctx)->escapedsymbolicnameToken->getText() : "") == "``") { notifyEmptyToken(antlrcpp::downCast(_localctx)->escapedsymbolicnameToken); } break; @@ -14322,7 +14407,7 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { case CypherParser::HexLetter: { enterOuterAlt(_localctx, 3); - setState(2275); + setState(2288); match(CypherParser::HexLetter); break; } @@ -14337,7 +14422,7 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { case CypherParser::COUNT: case CypherParser::END: { enterOuterAlt(_localctx, 4); - setState(2276); + setState(2289); kU_NonReservedKeywords(); break; } @@ -14406,7 +14491,7 @@ size_t CypherParser::KU_NonReservedKeywordsContext::getRuleIndex() const { CypherParser::KU_NonReservedKeywordsContext* CypherParser::kU_NonReservedKeywords() { KU_NonReservedKeywordsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 278, CypherParser::RuleKU_NonReservedKeywords); + enterRule(_localctx, 280, CypherParser::RuleKU_NonReservedKeywords); size_t _la = 0; #if __cplusplus > 201703L @@ -14418,7 +14503,7 @@ CypherParser::KU_NonReservedKeywordsContext* CypherParser::kU_NonReservedKeyword }); try { enterOuterAlt(_localctx, 1); - setState(2279); + setState(2292); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 63191132271542272) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && @@ -14454,7 +14539,7 @@ size_t CypherParser::OC_LeftArrowHeadContext::getRuleIndex() const { CypherParser::OC_LeftArrowHeadContext* CypherParser::oC_LeftArrowHead() { OC_LeftArrowHeadContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 280, CypherParser::RuleOC_LeftArrowHead); + enterRule(_localctx, 282, CypherParser::RuleOC_LeftArrowHead); size_t _la = 0; #if __cplusplus > 201703L @@ -14466,7 +14551,7 @@ CypherParser::OC_LeftArrowHeadContext* CypherParser::oC_LeftArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(2281); + setState(2294); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 2013274112) != 0))) { @@ -14501,7 +14586,7 @@ size_t CypherParser::OC_RightArrowHeadContext::getRuleIndex() const { CypherParser::OC_RightArrowHeadContext* CypherParser::oC_RightArrowHead() { OC_RightArrowHeadContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 282, CypherParser::RuleOC_RightArrowHead); + enterRule(_localctx, 284, CypherParser::RuleOC_RightArrowHead); size_t _la = 0; #if __cplusplus > 201703L @@ -14513,7 +14598,7 @@ CypherParser::OC_RightArrowHeadContext* CypherParser::oC_RightArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(2283); + setState(2296); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 32212287488) != 0))) { @@ -14552,7 +14637,7 @@ size_t CypherParser::OC_DashContext::getRuleIndex() const { CypherParser::OC_DashContext* CypherParser::oC_Dash() { OC_DashContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 284, CypherParser::RuleOC_Dash); + enterRule(_localctx, 286, CypherParser::RuleOC_Dash); size_t _la = 0; #if __cplusplus > 201703L @@ -14564,7 +14649,7 @@ CypherParser::OC_DashContext* CypherParser::oC_Dash() { }); try { enterOuterAlt(_localctx, 1); - setState(2285); + setState(2298); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 70334384439296) != 0) || _la == CypherParser::MINUS)) { @@ -14587,7 +14672,7 @@ CypherParser::OC_DashContext* CypherParser::oC_Dash() { bool CypherParser::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) { switch (ruleIndex) { - case 31: return kU_DataTypeSempred(antlrcpp::downCast(context), predicateIndex); + case 32: return kU_DataTypeSempred(antlrcpp::downCast(context), predicateIndex); default: break; diff --git a/third_party/antlr4_cypher/include/cypher_parser.h b/third_party/antlr4_cypher/include/cypher_parser.h index 83071e5321..563a8b050e 100644 --- a/third_party/antlr4_cypher/include/cypher_parser.h +++ b/third_party/antlr4_cypher/include/cypher_parser.h @@ -42,55 +42,56 @@ class CypherParser : public antlr4::Parser { }; enum { - RuleOC_Cypher = 0, RuleOC_Statement = 1, RuleKU_CopyFrom = 2, RuleKU_ColumnNames = 3, - RuleKU_CopyFromByColumn = 4, RuleKU_CopyTO = 5, RuleKU_ExportDatabase = 6, - RuleKU_StandaloneCall = 7, RuleKU_CommentOn = 8, RuleKU_CreateMacro = 9, - RuleKU_PositionalArgs = 10, RuleKU_DefaultArg = 11, RuleKU_FilePaths = 12, - RuleKU_ParsingOptions = 13, RuleKU_ParsingOption = 14, RuleKU_DDL = 15, - RuleKU_CreateNodeTable = 16, RuleKU_CreateRelTable = 17, RuleKU_CreateRelTableGroup = 18, - RuleKU_RelTableConnection = 19, RuleKU_CreateRdfGraph = 20, RuleKU_DropTable = 21, - RuleKU_AlterTable = 22, RuleKU_AlterOptions = 23, RuleKU_AddProperty = 24, - RuleKU_DropProperty = 25, RuleKU_RenameTable = 26, RuleKU_RenameProperty = 27, - RuleKU_PropertyDefinitions = 28, RuleKU_PropertyDefinition = 29, RuleKU_CreateNodeConstraint = 30, - RuleKU_DataType = 31, RuleKU_ListIdentifiers = 32, RuleKU_ListIdentifier = 33, - RuleOC_AnyCypherOption = 34, RuleOC_Explain = 35, RuleOC_Profile = 36, - RuleKU_Transaction = 37, RuleKU_Extension = 38, RuleKU_LoadExtension = 39, - RuleKU_InstallExtension = 40, RuleOC_Query = 41, RuleOC_RegularQuery = 42, - RuleOC_Union = 43, RuleOC_SingleQuery = 44, RuleOC_SinglePartQuery = 45, - RuleOC_MultiPartQuery = 46, RuleKU_QueryPart = 47, RuleOC_UpdatingClause = 48, - RuleOC_ReadingClause = 49, RuleKU_LoadFrom = 50, RuleKU_InQueryCall = 51, - RuleOC_Match = 52, RuleOC_Unwind = 53, RuleOC_Create = 54, RuleOC_Merge = 55, - RuleOC_MergeAction = 56, RuleOC_Set = 57, RuleOC_SetItem = 58, RuleOC_Delete = 59, - RuleOC_With = 60, RuleOC_Return = 61, RuleOC_ProjectionBody = 62, RuleOC_ProjectionItems = 63, - RuleOC_ProjectionItem = 64, RuleOC_Order = 65, RuleOC_Skip = 66, RuleOC_Limit = 67, - RuleOC_SortItem = 68, RuleOC_Where = 69, RuleOC_Pattern = 70, RuleOC_PatternPart = 71, - RuleOC_AnonymousPatternPart = 72, RuleOC_PatternElement = 73, RuleOC_NodePattern = 74, - RuleOC_PatternElementChain = 75, RuleOC_RelationshipPattern = 76, RuleOC_RelationshipDetail = 77, - RuleKU_Properties = 78, RuleOC_RelationshipTypes = 79, RuleOC_NodeLabels = 80, - RuleOC_NodeLabel = 81, RuleOC_RangeLiteral = 82, RuleKU_RecursiveRelationshipComprehension = 83, - RuleKU_IntermediateNodeProjectionItems = 84, RuleKU_IntermediateRelProjectionItems = 85, - RuleOC_LowerBound = 86, RuleOC_UpperBound = 87, RuleOC_LabelName = 88, - RuleOC_RelTypeName = 89, RuleOC_Expression = 90, RuleOC_OrExpression = 91, - RuleOC_XorExpression = 92, RuleOC_AndExpression = 93, RuleOC_NotExpression = 94, - RuleOC_ComparisonExpression = 95, RuleKU_ComparisonOperator = 96, RuleKU_BitwiseOrOperatorExpression = 97, - RuleKU_BitwiseAndOperatorExpression = 98, RuleKU_BitShiftOperatorExpression = 99, - RuleKU_BitShiftOperator = 100, RuleOC_AddOrSubtractExpression = 101, - RuleKU_AddOrSubtractOperator = 102, RuleOC_MultiplyDivideModuloExpression = 103, - RuleKU_MultiplyDivideModuloOperator = 104, RuleOC_PowerOfExpression = 105, - RuleOC_UnaryAddSubtractOrFactorialExpression = 106, RuleOC_StringListNullOperatorExpression = 107, - RuleOC_ListOperatorExpression = 108, RuleOC_StringOperatorExpression = 109, - RuleOC_RegularExpression = 110, RuleOC_NullOperatorExpression = 111, - RuleOC_PropertyOrLabelsExpression = 112, RuleOC_Atom = 113, RuleOC_Literal = 114, - RuleOC_BooleanLiteral = 115, RuleOC_ListLiteral = 116, RuleKU_ListEntry = 117, - RuleKU_StructLiteral = 118, RuleKU_StructField = 119, RuleOC_ParenthesizedExpression = 120, - RuleOC_FunctionInvocation = 121, RuleOC_FunctionName = 122, RuleKU_FunctionParameter = 123, - RuleOC_PathPatterns = 124, RuleOC_ExistSubquery = 125, RuleKU_CountSubquery = 126, - RuleOC_PropertyLookup = 127, RuleOC_CaseExpression = 128, RuleOC_CaseAlternative = 129, - RuleOC_Variable = 130, RuleOC_NumberLiteral = 131, RuleOC_Parameter = 132, - RuleOC_PropertyExpression = 133, RuleOC_PropertyKeyName = 134, RuleOC_IntegerLiteral = 135, - RuleOC_DoubleLiteral = 136, RuleOC_SchemaName = 137, RuleOC_SymbolicName = 138, - RuleKU_NonReservedKeywords = 139, RuleOC_LeftArrowHead = 140, RuleOC_RightArrowHead = 141, - RuleOC_Dash = 142 + RuleKu_Statements = 0, RuleOC_Cypher = 1, RuleOC_Statement = 2, RuleKU_CopyFrom = 3, + RuleKU_ColumnNames = 4, RuleKU_CopyFromByColumn = 5, RuleKU_CopyTO = 6, + RuleKU_ExportDatabase = 7, RuleKU_StandaloneCall = 8, RuleKU_CommentOn = 9, + RuleKU_CreateMacro = 10, RuleKU_PositionalArgs = 11, RuleKU_DefaultArg = 12, + RuleKU_FilePaths = 13, RuleKU_ParsingOptions = 14, RuleKU_ParsingOption = 15, + RuleKU_DDL = 16, RuleKU_CreateNodeTable = 17, RuleKU_CreateRelTable = 18, + RuleKU_CreateRelTableGroup = 19, RuleKU_RelTableConnection = 20, RuleKU_CreateRdfGraph = 21, + RuleKU_DropTable = 22, RuleKU_AlterTable = 23, RuleKU_AlterOptions = 24, + RuleKU_AddProperty = 25, RuleKU_DropProperty = 26, RuleKU_RenameTable = 27, + RuleKU_RenameProperty = 28, RuleKU_PropertyDefinitions = 29, RuleKU_PropertyDefinition = 30, + RuleKU_CreateNodeConstraint = 31, RuleKU_DataType = 32, RuleKU_ListIdentifiers = 33, + RuleKU_ListIdentifier = 34, RuleOC_AnyCypherOption = 35, RuleOC_Explain = 36, + RuleOC_Profile = 37, RuleKU_Transaction = 38, RuleKU_Extension = 39, + RuleKU_LoadExtension = 40, RuleKU_InstallExtension = 41, RuleOC_Query = 42, + RuleOC_RegularQuery = 43, RuleOC_Union = 44, RuleOC_SingleQuery = 45, + RuleOC_SinglePartQuery = 46, RuleOC_MultiPartQuery = 47, RuleKU_QueryPart = 48, + RuleOC_UpdatingClause = 49, RuleOC_ReadingClause = 50, RuleKU_LoadFrom = 51, + RuleKU_InQueryCall = 52, RuleOC_Match = 53, RuleOC_Unwind = 54, RuleOC_Create = 55, + RuleOC_Merge = 56, RuleOC_MergeAction = 57, RuleOC_Set = 58, RuleOC_SetItem = 59, + RuleOC_Delete = 60, RuleOC_With = 61, RuleOC_Return = 62, RuleOC_ProjectionBody = 63, + RuleOC_ProjectionItems = 64, RuleOC_ProjectionItem = 65, RuleOC_Order = 66, + RuleOC_Skip = 67, RuleOC_Limit = 68, RuleOC_SortItem = 69, RuleOC_Where = 70, + RuleOC_Pattern = 71, RuleOC_PatternPart = 72, RuleOC_AnonymousPatternPart = 73, + RuleOC_PatternElement = 74, RuleOC_NodePattern = 75, RuleOC_PatternElementChain = 76, + RuleOC_RelationshipPattern = 77, RuleOC_RelationshipDetail = 78, RuleKU_Properties = 79, + RuleOC_RelationshipTypes = 80, RuleOC_NodeLabels = 81, RuleOC_NodeLabel = 82, + RuleOC_RangeLiteral = 83, RuleKU_RecursiveRelationshipComprehension = 84, + RuleKU_IntermediateNodeProjectionItems = 85, RuleKU_IntermediateRelProjectionItems = 86, + RuleOC_LowerBound = 87, RuleOC_UpperBound = 88, RuleOC_LabelName = 89, + RuleOC_RelTypeName = 90, RuleOC_Expression = 91, RuleOC_OrExpression = 92, + RuleOC_XorExpression = 93, RuleOC_AndExpression = 94, RuleOC_NotExpression = 95, + RuleOC_ComparisonExpression = 96, RuleKU_ComparisonOperator = 97, RuleKU_BitwiseOrOperatorExpression = 98, + RuleKU_BitwiseAndOperatorExpression = 99, RuleKU_BitShiftOperatorExpression = 100, + RuleKU_BitShiftOperator = 101, RuleOC_AddOrSubtractExpression = 102, + RuleKU_AddOrSubtractOperator = 103, RuleOC_MultiplyDivideModuloExpression = 104, + RuleKU_MultiplyDivideModuloOperator = 105, RuleOC_PowerOfExpression = 106, + RuleOC_UnaryAddSubtractOrFactorialExpression = 107, RuleOC_StringListNullOperatorExpression = 108, + RuleOC_ListOperatorExpression = 109, RuleOC_StringOperatorExpression = 110, + RuleOC_RegularExpression = 111, RuleOC_NullOperatorExpression = 112, + RuleOC_PropertyOrLabelsExpression = 113, RuleOC_Atom = 114, RuleOC_Literal = 115, + RuleOC_BooleanLiteral = 116, RuleOC_ListLiteral = 117, RuleKU_ListEntry = 118, + RuleKU_StructLiteral = 119, RuleKU_StructField = 120, RuleOC_ParenthesizedExpression = 121, + RuleOC_FunctionInvocation = 122, RuleOC_FunctionName = 123, RuleKU_FunctionParameter = 124, + RuleOC_PathPatterns = 125, RuleOC_ExistSubquery = 126, RuleKU_CountSubquery = 127, + RuleOC_PropertyLookup = 128, RuleOC_CaseExpression = 129, RuleOC_CaseAlternative = 130, + RuleOC_Variable = 131, RuleOC_NumberLiteral = 132, RuleOC_Parameter = 133, + RuleOC_PropertyExpression = 134, RuleOC_PropertyKeyName = 135, RuleOC_IntegerLiteral = 136, + RuleOC_DoubleLiteral = 137, RuleOC_SchemaName = 138, RuleOC_SymbolicName = 139, + RuleKU_NonReservedKeywords = 140, RuleOC_LeftArrowHead = 141, RuleOC_RightArrowHead = 142, + RuleOC_Dash = 143 }; explicit CypherParser(antlr4::TokenStream *input); @@ -110,6 +111,7 @@ class CypherParser : public antlr4::Parser { antlr4::atn::SerializedATNView getSerializedATN() const override; + class Ku_StatementsContext; class OC_CypherContext; class OC_StatementContext; class KU_CopyFromContext; @@ -254,15 +256,29 @@ class CypherParser : public antlr4::Parser { class OC_RightArrowHeadContext; class OC_DashContext; + class Ku_StatementsContext : public antlr4::ParserRuleContext { + public: + Ku_StatementsContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector oC_Cypher(); + OC_CypherContext* oC_Cypher(size_t i); + antlr4::tree::TerminalNode *EOF(); + std::vector SP(); + antlr4::tree::TerminalNode* SP(size_t i); + + + }; + + Ku_StatementsContext* ku_Statements(); + class OC_CypherContext : public antlr4::ParserRuleContext { public: OC_CypherContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *EOF(); OC_StatementContext *oC_Statement(); + OC_AnyCypherOptionContext *oC_AnyCypherOption(); std::vector SP(); antlr4::tree::TerminalNode* SP(size_t i); - OC_AnyCypherOptionContext *oC_AnyCypherOption(); };