{"version":3,"sources":["webpack:///./node_modules/codemirror/addon/search/search.js","webpack:///./node_modules/codemirror/addon/dialog/dialog.js","webpack:///./src/views/laboratory/page/Console.vue","webpack:///./src/views/laboratory/component/SqlResult.vue","webpack:///./src/api/sql.js","webpack:///./src/views/laboratory/component/TabPaneConsole.vue","webpack:///src/views/laboratory/component/TabPaneConsole.vue","webpack:///./src/views/laboratory/component/TabPaneConsole.vue?87cf","webpack:///./src/views/laboratory/component/TabPaneConsole.vue?9a6c","webpack:///./src/views/laboratory/component/TabPaneResult.vue","webpack:///src/views/laboratory/component/TabPaneResult.vue","webpack:///./src/views/laboratory/component/TabPaneResult.vue?13b7","webpack:///./src/views/laboratory/component/TabPaneResult.vue?9f34","webpack:///src/views/laboratory/component/SqlResult.vue","webpack:///./src/views/laboratory/component/SqlResult.vue?188c","webpack:///./src/views/laboratory/component/SqlResult.vue?d596","webpack:///./src/views/laboratory/component/EditPart.vue","webpack:///./node_modules/sql-formatter/dist/index.js","webpack:///src/views/laboratory/component/EditPart.vue","webpack:///./src/views/laboratory/component/EditPart.vue?bdd0","webpack:///./src/views/laboratory/component/EditPart.vue?6af5","webpack:///src/views/laboratory/page/Console.vue","webpack:///./src/views/laboratory/page/Console.vue?7c3a","webpack:///./src/views/laboratory/page/Console.vue?4c72","webpack:///./src/views/laboratory/component/SqlResult.vue?3869","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/vue-codemirror/dist/vue-codemirror.js","webpack:///./src/views/laboratory/component/TabPaneConsole.vue?5537","webpack:///./node_modules/nearley/lib/nearley.js","webpack:///./node_modules/codemirror/addon/search/searchcursor.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./src/views/laboratory/component/EditPart.vue?cdad","webpack:///./src/api/sessions.js","webpack:///./node_modules/codemirror/addon/display/autorefresh.js","webpack:///./node_modules/codemirror/mode/sql/sql.js"],"names":["mod","CodeMirror","searchOverlay","query","caseInsensitive","RegExp","replace","global","source","ignoreCase","token","stream","lastIndex","pos","match","exec","string","index","length","skipToEnd","SearchState","this","posFrom","posTo","lastQuery","overlay","getSearchState","cm","state","search","queryCaseInsensitive","toLowerCase","getSearchCursor","caseFold","multiline","persistentDialog","text","deflt","onEnter","onKeyDown","openDialog","value","selectValueOnOpen","closeOnEnter","onClose","clearSearch","bottom","options","dialog","shortText","f","prompt","confirmDialog","fs","openConfirm","confirm","parseString","ch","parseQuery","isRE","indexOf","e","test","startSearch","queryText","removeOverlay","addOverlay","showMatchesOnScrollbar","annotate","clear","doSearch","rev","persistent","immediate","findNext","q","getSelection","hiding","searchNext","event","e_stop","getCursor","style","opacity","shiftKey","_","to","line","document","querySelector","display","wrapper","getBoundingClientRect","cursorCoords","top","getQueryDialog","keyName","extra","getOption","cmd","keyMap","execCommand","operation","callback","cursor","find","Pos","lastLine","firstLine","setSelection","from","scrollIntoView","el","tag","attrs","element","createElement","createDocumentFragment","key","i","arguments","child","appendChild","createTextNode","label","className","phrase","type","id","setAttribute","getReplaceQueryDialog","getReplacementQueryDialog","getDoReplaceConfirm","replaceAll","getRange","all","dialogText","fragment","advance","start","doReplace","defineOption","commands","findPersistent","findPersistentNext","findPersistentPrev","findPrev","dialogDiv","template","wrap","getWrapperElement","innerHTML","addClass","closeNotification","newVal","currentNotificationClose","defineExtension","closed","me","close","inp","rmClass","parentNode","removeChild","focus","button","getElementsByTagName","select","onInput","on","onKeyUp","keyCode","blur","closeOnBlur","evt","relatedTarget","callbacks","buttons","blurring","b","e_preventDefault","setTimeout","doneTimer","duration","clearTimeout","render","_vm","_c","_self","defaultPercent","slot","ref","handleRunSql","$refs","sql_result","handleClear","staticStyle","val","handleTabChange","noteId","insertToEditor","editNote","expendNote","staticRenderFns","panes","staticClass","onEdit","model","activeKey","$$v","expression","_l","pane","closable","newInfoNum","INFO_PANE","_v","_s","title","$event","cleanIconHover","require","cleanIcon","currentPane","content","handleSelect","$emit","sqlApi","batches","runSqlApi","param","request","url","method","data","infoList","item","class","message","timestamp2Date","startTime","endTime","execTime","escapeTime","resultTabKey","findIndex","handleToResult","_e","sql","clickSql","name","components","props","Array","default","mounted","currentEl","scrollTop","scrollHeight","showSQL","map","showDuration","watch","handler","methods","handleShowDuration","splice","ori","component","columns","result","Object","required","init","forEach","column","dataIndex","width","ellipsis","tempColumns","push","temp","rows","localStorage","getItem","resultId","JSON","parse","setItem","deep","stringify","computed","flag","Promise","dealResults","tmpInfoPane","unshift","infoPane","results","sqlType","plsqlResult","trim","latestPaneIndex","$nextTick","tabPaneConsoleEl","$el","targetKey","targetIndex","loading","handleRun","handleFormat","resetLoading","handleSwapSchema","currentSchema","handleClearEnv","cmOptions","code","modalClose","showResetModal","handleResetOK","span","archive","minRows","maxRows","archiveDescription","showSchemaModal","handleSwapOK","schemaStatus","swapSchema","schemaPwdStatus","schemaPwd","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","obj","enumerable","configurable","writable","__spreadValues","a","prop","call","__spreadProps","__objRest","exclude","target","__export","get","allDialects_exports","bigquery","db2","db2i","hive","mariadb","mysql","n1ql","plsql","postgresql","redshift","singlestoredb","snowflake","spark","sqlite","tidb","transactsql","trino","expandPhrases","phrases","flatMap","expandSinglePhrase","buildCombinations","parsePhrase","stripExtraWhitespace","items","parseAlteration","expectClosing","alterations","term","newIndex","parseConcatenation","Error","parseTerm","parseMandatoryBlock","parseOptionalBlock","word","node","reduce","stringCombinations","xs","ys","x","y","TokenType","TokenType2","createEofToken","raw","EOF_TOKEN","Infinity","testToken","compareToken","isToken","ARRAY","BY","SET","STRUCT","WINDOW","VALUES","isReserved","isLogicalOperator","functions","keywords","dataTypes","reservedSelect","reservedClauses","standardOnelineClauses","tabularOnelineClauses","reservedSetOperations","reservedJoins","reservedPhrases","tokenizerOptions","reservedKeywords","reservedDataTypes","reservedFunctionNames","extraParens","stringTypes","quote","prefixes","requirePrefix","identTypes","identChars","dashes","paramTypes","positional","named","quoted","variableTypes","regex","String","lineCommentTypes","operators","postProcess","formatOptions","onelineClauses","tokens","detectArraySubscripts","combineParameterizedTypes","prevToken","_a","processed","endIndex","findClosingAngleBracketIndex","typeDefTokens","slice","formatTypeDefToken","join","startIndex","level","functions2","keywords2","dataTypes2","reservedSelect2","reservedClauses2","standardOnelineClauses2","tabularOnelineClauses2","reservedSetOperations2","reservedJoins2","reservedPhrases2","first","rest","paramChars","functions3","keywords3","dataTypes3","reservedSelect3","reservedClauses3","standardOnelineClauses3","tabularOnelineClauses3","reservedSetOperations3","reservedJoins3","reservedPhrases3","nestedBlockComments","functions4","keywords4","dataTypes4","reservedSelect4","reservedClauses4","standardOnelineClauses4","tabularOnelineClauses4","reservedSetOperations4","reservedJoins4","reservedPhrases4","postProcess2","nextToken","keywords5","dataTypes5","functions5","reservedSelect5","reservedClauses5","standardOnelineClauses5","tabularOnelineClauses5","reservedSetOperations5","reservedJoins5","reservedPhrases5","supportsXor","allowFirstCharNumber","keywords6","dataTypes6","functions6","reservedSelect6","reservedClauses6","standardOnelineClauses6","tabularOnelineClauses6","reservedSetOperations6","reservedJoins6","reservedPhrases6","keywords7","dataTypes7","functions7","reservedSelect7","reservedClauses7","standardOnelineClauses7","tabularOnelineClauses7","reservedSetOperations7","reservedJoins7","reservedPhrases7","functions8","keywords8","dataTypes8","reservedSelect8","reservedClauses8","reservedSetOperations8","reservedJoins8","reservedPhrases8","numbered","keywords9","dataTypes9","functions9","reservedSelect9","reservedClauses9","standardOnelineClauses8","tabularOnelineClauses8","reservedSetOperations9","reservedJoins9","reservedPhrases9","postProcess3","alwaysDenseOperators","previousReservedToken","functions10","keywords10","dataTypes10","reservedSelect10","reservedClauses10","standardOnelineClauses9","tabularOnelineClauses9","reservedSetOperations10","reservedJoins10","reservedPhrases10","functions11","keywords11","dataTypes11","reservedSelect11","reservedClauses11","standardOnelineClauses10","tabularOnelineClauses10","reservedSetOperations11","reservedJoins11","reservedPhrases11","keywords12","dataTypes12","functions12","reservedSelect12","reservedClauses12","standardOnelineClauses11","tabularOnelineClauses11","reservedSetOperations12","reservedJoins12","reservedPhrases12","postProcess4","functions13","keywords13","dataTypes13","reservedSelect13","reservedClauses13","standardOnelineClauses12","tabularOnelineClauses12","reservedSetOperations13","reservedJoins13","reservedPhrases13","functions14","keywords14","dataTypes14","reservedSelect14","reservedClauses14","standardOnelineClauses13","tabularOnelineClauses13","reservedSetOperations14","reservedJoins14","reservedPhrases14","functions15","keywords15","dataTypes15","reservedSelect15","reservedClauses15","standardOnelineClauses14","tabularOnelineClauses14","reservedSetOperations15","reservedJoins15","reservedPhrases15","functions16","keywords16","dataTypes16","reservedSelect16","reservedClauses16","standardOnelineClauses15","tabularOnelineClauses15","reservedSetOperations16","reservedJoins16","reservedPhrases16","propertyAccessOperators","keywords17","dataTypes17","functions17","reservedSelect17","reservedClauses17","standardOnelineClauses16","tabularOnelineClauses16","reservedSetOperations17","reservedJoins17","reservedPhrases17","functions18","keywords18","dataTypes18","reservedSelect18","reservedClauses18","standardOnelineClauses17","tabularOnelineClauses17","reservedSetOperations18","reservedJoins18","reservedPhrases18","last","arr","sortByLengthDesc","strings","sort","localeCompare","equalizeWhitespace","s","isMultiline","escapeRegExp","string2","WHITESPACE_REGEX","patternToRegex","pattern","toCaseInsensitivePattern","prefix","split","char","toUpperCase","withDashes","prefixesPattern","lineComment","parenthesis","kind","parens","pair","operator","rejectIdentCharsPattern","reservedWord","avoidIdentChars","reservedKeywordsPattern","parameter","typesRegex","buildQStringPatterns","specialDelimiterMap","singlePattern","patternList","entries","left","right","specialDelimiters","keys","standardDelimiterPattern","qStringPattern","quotePatterns","singleQuotePattern","quoteTypes","variable","varTypes","varType","stringPattern","identifier","specialChars","identifierPattern","letter","number","firstChars","restChars","lineColFromIndex","lines","col","TokenizerEngine","rules","dialectName","input","precedingWhitespace","getWhitespace","getNextToken","createParseError","dialectInfo","matches","rule","matchedText","START","ANY_CHAR","END2","NestedComment","nestLevel","matchSection","Tokenizer","cfg","rulesBeforeParams","buildRulesBeforeParams","rulesAfterParams","buildRulesAfterParams","paramTypesOverrides","buildParamRules","tokenize","_b","validRules","toCanonical","includes","_d","custom","v","tokenKey","quoteChar","customParam","_a2","filter","Boolean","cache","Map","createDialect","dialect","dialectFromOptions","set","dialectOptions","tokenizer","processDialectFormatOptions","fromEntries","indentString","indentStyle","repeat","useTabs","tabWidth","isTabularStyle","Params","params","disambiguateTokens","propertyNameKeywordToIdent","funcNameToKeyword","dataTypeToParameterizedDataType","identToArrayIdent","dataTypeToArrayKeyword","prevNonCommentToken","nextNonCommentToken","isOpenParen","isOpenBracket","dir","isComment","t","LexerAdapter","chunk","_info","d","lexer","unwrap","toKeywordNode","tokenType","toDataTypeNode","addComments","leading","trailing","leadingComments","trailingComments","addCommentsToArray","nodes","lead","last2","grammar","Lexer","ParserRules","concat","statements","hasSemicolon","children","has","DELIMITER","EOF","delimiter","expressions","clauses","COMMA","LIMIT","limitToken","exp1","optional","comma","exp2","limitKw","offset","count","RESERVED_SELECT","nameToken","exp","nameKw","ASTERISK","RESERVED_CLAUSE","RESERVED_SET_OPERATION","expr","chain","ARRAY_IDENTIFIER","arrayToken","brackets","array","ARRAY_KEYWORD","RESERVED_FUNCTION_NAME","open","openParen","closeParen","PROPERTY_ACCESS_OPERATOR","object","_1","dot","_2","property","BETWEEN","AND","betweenToken","expr1","andToken","_3","expr2","betweenKw","andKw","CASE","END","caseToken","endToken","caseKw","endKw","WHEN","THEN","whenToken","cond","thenToken","whenKw","thenKw","condition","ELSE","elseToken","elseKw","OPERATOR","IDENTIFIER","QUOTED_IDENTIFIER","VARIABLE","NAMED_PARAMETER","QUOTED_PARAMETER","NUMBERED_PARAMETER","POSITIONAL_PARAMETER","CUSTOM_PARAMETER","NUMBER","STRING","RESERVED_KEYWORD","RESERVED_PHRASE","RESERVED_JOIN","RESERVED_DATA_TYPE","RESERVED_PARAMETERIZED_DATA_TYPE","dataType","OR","XOR","comments","LINE_COMMENT","BLOCK_COMMENT","DISABLE_COMMENT","ParserStart","grammar_default","Parser","NearleyParser","Grammar","createParser","lexer2","parser","fromCompiled","sql2","feed","Layout","indentation","trimHorizontalWhitespace","trimWhitespace","addNewline","addIndentation","isHorizontalWhitespace","pop","isRemovableWhitespace","newline","getLevel","itemToString","getSingleIndent","toTabularFormat","tokenText","tail","padEnd","padStart","isTabularToken","INDENT_TYPE_TOP_LEVEL","INDENT_TYPE_BLOCK_LEVEL","Indentation","indent","indentTypes","InlineLayout","expressionWidth","super","trailingSpace","addToLength","InlineLayoutError","add","ExpressionFormatter","_ExpressionFormatter","dialectCfg","layout","inline","formatNode","formatComments","formatNodeWithoutComments","formatFunctionCall","formatParameterizedDataType","formatArraySubscript","formatPropertyAccess","formatParenthesis","formatBetweenPredicate","formatCaseExpression","formatCaseWhen","formatCaseElse","formatClause","formatSetOperation","formatLimitClause","formatAllColumnsAsterisk","formatLiteral","formatIdentifier","formatParameter","formatOperator","formatComma","formatLineComment","formatBlockComment","formatDataType","formatKeywordNode","withComments","showFunctionKw","showDataType","formattedArray","showKw","showIdentifier","inlineLayout","formatInlineExpression","getLayoutItems","formatSubExpression","increaseBlockLevel","decreaseBlockLevel","showNonTabularKw","isOnelineClause","formatClauseInOnelineStyle","formatClauseInTabularStyle","formatClauseInIndentedStyle","increaseTopLevel","decreaseTopLevel","_node","denseOperators","fn","com","isMultilineBlockComment","splitBlockComment","comment","every","isDocComment","format","oldParamIndex","getPositionalParameterIndex","setPositionalParameterIndex","formatJoin","formatLogicalOperator","formatKeyword","logicalOperatorNewline","keywordCase","showNonTabularFunctionKw","functionCase","identifierCase","dataTypeCase","Formatter","ast","formattedQuery","formatAst","trimEnd","stat","formatStatement","linesBetweenQueries","statement","newlineBeforeSemicolon","toString","ConfigError","validateConfig","removedOptions","optionName","validateParams","console","warn","paramValues","values","p","dialectNameMap","tsql","supportedDialects","defaultOptions","language","canonicalDialectName","formatDialect","addEventListener","handleKeydownEvent","getCurrentSchema","beforeDestroy","removeEventListener","$store","getters","codemirror","mode","theme","lineNumbers","lineWrapping","tabSize","styleActiveLine","matchBrackets","autoRefresh","ctrlKey","preventDefault","archiveCurrentSession","commit","doc","selections","$message","error","update","setCursor","editMode","undefined","isMobile","$route","createNote","note","edit_part","runImmediate","toObject","toAbsoluteIndex","toLength","module","exports","O","argumentsLength","end","endPos","r","n","o","l","m","c","__esModule","window","assign","TypeError","cminstance","marker","Function","unseenLines","placeholder","merge","events","globalOptions","globalEvents","setOption","switchMerge","handerCodeChange","initialize","MergeView","mergeview","edit","fromTextArea","textarea","setValue","getValue","apply","unseenLineMarkers","refresh","destroy","remove","getScrollInfo","scrollTo","lineInfo","setGutterMarker","gutterMarkers","history","cleanGeneration","install","u","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","$createElement","root","factory","nearley","Rule","symbols","postprocess","highestId","State","reference","wantedBy","isComplete","Column","states","wants","scannable","completed","byName","StreamLexer","reset","keepHistory","lexerState","table","predict","process","current","getSymbolLongDisplay","symbol","literal","getSymbolShortDisplay","withCursorAt","symbolSequence","nextState","build","reverse","finish","fail","nextColumn","w","complete","nulls","copy","g","buffer","lastLineBreak","next","save","formatError","Math","max","nextLineBreak","lastLineDigits","pad","err","reportLexerError","constructor","expect","reportError","lexerError","tokenDisplay","lexerMessage","reportErrorCommon","lastColumnIndex","lastColumn","expectantStates","nextSymbol","displayStateStack","stateStacks","buildFirstStateStack","stateStack","symbolDisplay","getSymbolDisplay","lastDisplay","sameDisplayCount","j","visited","prevState","childVisited","childResult","restore","rewind","considerations","doFold","noFold","regexpFlags","regexp","flags","ensureFlags","charAt","maybeMultiline","searchRegexpForward","getLine","searchRegexpForwardMultiline","curLine","before","inside","startLine","startCh","lastMatchIn","endMargin","newMatch","searchRegexpBackward","searchRegexpBackwardMultiline","chunkSize","adjustPos","orig","folded","foldFunc","min","mid","len","searchStringForward","fold","found","cutFrom","endString","searchStringBackward","lastIndexOf","topString","SearchCursor","atOccurrence","afterEmptyMatch","clipPos","normalize","str","findPrevious","head","cmpPos","newText","origin","splitLines","replaceRange","defineDocExtension","ranges","cur","anchor","setSelections","$","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","proto","forced","callbackfn","fill","sessionApi","sessions","sessionSqls","allSessionSqls","rerunSessionSqls","resetSession","dbSchema","sessionsApi","sessionSqlsApi","allSessionSqlsApi","delSessionSqlsApi","rerunSessionSqlsApi","startListening","check","offsetHeight","stopListening","lastWrapHeight","clientHeight","timeout","delay","hurry","_cm","off","hookIdentifier","eat","backUp","eatWhile","hookIdentifierDoublequote","hookVar","hookClient","defineMode","config","parserConfig","client","atoms","builtin","defaultBuiltin","sqlKeywords","operatorChars","support","hooks","dateSQL","backslashStringEscapes","punctuation","tokenBase","hexNumber","binaryNumber","charCodeAt","decimallessFloat","eatSpace","eol","doubleQuote","tokenLiteral","nCharCast","charsetCast","peek","escapeConstant","commentSlashSlash","commentHash","commentSpaceRequired","tokenComment","zerolessFloat","ODBCdotTable","backslashEscapes","escaped","depth","pushContext","context","prev","popContext","startState","sol","align","tok","textAfter","cx","Pass","closing","indentUnit","blockCommentStart","blockCommentEnd","closeBrackets","words","defineMIME","identifierQuote","\""],"mappings":"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CA,WAEA,YACA,YACA,mBACA,MACA,UACA,SACA,UACA,QACA,UACA,cACA,aACA,MACA,MACA,aACA,MAEA,wBACA,mBACA,mBACA,iBAGA,eACA,eACA,kBACA,iBACA,sBACA,2BACA,gBACA,SACA,cACA,UACA,eAEA,YAGA,mBACA,gBACA,YAEA,eACA,UACA,OACA,WACA,WACA,YACA,aACA,sBACA,cACA,WACA,aACA,YAEA,mBACA,WACA,UACA,eACA,eACA,gBACA,iBACA,kBACA,WACA,iBAEA,QAEA,iBAEA,qBACA,qBACA,WACA,UACA,cACA,eACA,YACA,aACA,cACA,iBACA,YACA,yBACA,cACA,kBACA,kBACA,mBACA,cACA,gBACA,eACA,YACA,gBACA,eACA,cACA,cACA,UACA,aACA,cACA,YACA,YACA,kBACA,cACA,qBACA,kBACA,iBACA,eACA,0BACA,aACA,kBACA,mBACA,kBACA,gBACA,mBACA,kBACA,aACA,YACA,cACA,iBACA,yBACA,iBACA,aACA,mBACA,eACA,eACA,YACA,cACA,gBACA,gBACA,aACA,WACA,eACA,YACA,OACA,OAEA,mBACA,MACA,OACA,SACA,SAEA,iBACA,kBACA,0BACA,oBAEA,gBACA,UACA,eACA,gBACA,mBAEA,eACA,aACA,sBACA,aACA,qBACA,mBACA,4BACA,mBACA,iBAEA,MACA,OACA,SACA,SACA,cACA,OACA,OACA,MACA,QACA,MACA,KACA,MACA,QACA,WACA,QACA,MACA,cACA,gBACA,cACA,WACA,gBACA,MACA,QACA,QACA,OACA,UACA,QACA,MACA,OACA,OACA,QACA,MACA,OACA,OACA,QACA,MACA,OACA,OACA,QACA,QACA,eAEA,cACA,aACA,YACA,OACA,MACA,kBACA,kBAEA,qBACA,0BACA,mBACA,kBACA,eACA,sBACA,oBACA,WACA,oBACA,iBAEA,OACA,aACA,eACA,YACA,QACA,aAEA,eAEA,OACA,YACA,aACA,aACA,cACA,SACA,UACA,WACA,WAEA,QACA,cACA,cACA,mBACA,MACA,uBACA,wBACA,SACA,kBACA,YACA,SACA,cACA,cACA,WACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,YACA,yBACA,eACA,kBACA,iBACA,qBACA,eACA,iBACA,gBACA,UACA,SACA,UACA,QACA,OACA,QACA,+BACA,UACA,QACA,cACA,SACA,SACA,YACA,YACA,YACA,iBACA,SACA,YACA,OACA,UACA,QAEA,eACA,OACA,UACA,WACA,WACA,YACA,aACA,cACA,aAEA,oBACA,UACA,SACA,YACA,gBACA,gBACA,iBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,eACA,cACA,cAEA,gBAEA,WACA,KACA,SACA,SAGA,MACA,UACA,SACA,UACA,OACA,QACA,YACA,aACA,uBACA,QACA,eACA,wBACA,OACA,MACA,MACA,OACA,MACA,YACA,SACA,aACA,cACA,MACA,MACA,SACA,WACA,UACA,WAEA,YAEA,UACA,QACA,OACA,QACA,aACA,UACA,SAGA,WACA,WACA,SACA,SACA,SACA,wBACA,QACA,MAEA,eACA,eACA,oBACA,OACA,WACA,WACA,MACA,YACA,YACA,kBACA,OACA,SACA,QACA,oBACA,MACA,iBACA,UACA,mBACA,SACA,oBACA,OACA,YACA,oBACA,mBACA,oBACA,oBACA,kBACA,mBACA,oBACA,mBACA,mBACA,OACA,OAEA,YACA,WACA,mBACA,kBAEA,eACA,sBAEA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,OACA,UACA,MACA,QACA,KACA,MACA,OACA,QACA,KACA,MACA,UACA,OACA,QACA,MACA,OACA,OACA,MACA,OAEA,eACA,iBACA,iBAEA,SAEA,QACA,OACA,SACA,QACA,OACA,QACA,UACA,QACA,OACA,QACA,QACA,SACA,QAEA,mBACA,0BACA,cAEA,OACA,SACA,MAEA,MACA,QACA,MACA,MACA,SACA,MACA,YACA,aACA,cACA,MACA,aACA,OACA,YACA,QACA,eACA,kBACA,kBACA,OACA,kBACA,aAEA,eACA,QACA,cACA,OACA,mBACA,KACA,WACA,OACA,OACA,YAEA,iBACA,+BAEA,UAEA,QACA,WAIEC,GAAW,CAEb,MACA,MACA,MACA,KACA,MACA,uBACA,KACA,UACA,KACA,OACA,OACA,UACA,WACA,SACA,QACA,OACA,UACA,UACA,SACA,OACA,WACA,OACA,MACA,OACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,YACA,MACA,OACA,OACA,QACA,WACA,SACA,OACA,SACA,KACA,SACA,KACA,QACA,YACA,OACA,KACA,OACA,UACA,OACA,QACA,SACA,QACA,UACA,MACA,KACA,MACA,OACA,QACA,KACA,KACA,KACA,QACA,QACA,OACA,YACA,YACA,QACA,QACA,YACA,UACA,QACA,SACA,OACA,SACA,MACA,OACA,QACA,cACA,OACA,KACA,QACA,OACA,YACA,QACA,SACA,QACA,OACA,QACA,SACA,OACA,SAEA,OAEA,OAEA,OAEA,QAEA,KACA,MACA,QACA,UACA,WACA,UACA,WACA,iBAEEC,GAAY,CAEd,QAEA,OACA,QAEA,OACA,WACA,YACA,WACA,QACA,MACA,WACA,UACA,SACA,UACA,UACA,UAEA,UAEA,aAEA,aAEA,UACA,SAEA,SAEA,OACA,YAIEC,GAAiB9C,EAAc,CAAC,mDAChC+C,GAAkB/C,EAAc,CAElC,mBACA,OACA,QACA,WACA,SACA,UACA,SACA,eACA,WACA,QACA,SACA,iBAIA,gBACA,SAEA,MAEA,eACA,oDACA,aACA,aACA,wBAEA,kBACA,yBACA,2BAEEgD,GAAyBhD,EAAc,CACzC,iFAEEiD,GAAwBjD,EAAc,CAGxC,0DAEA,SAEA,gBAEA,+CAEA,0BACA,6BACA,0BACA,YACA,2BACA,sBAEA,cAEA,gBAEA,gBAGA,2BAEA,wCAEA,oBAEA,iBAEA,gCACA,kBAEA,sEACA,gDAEA,wDACA,WACA,eAEA,kBACA,UAEA,qBAEA,oBAEA,sCAEA,0BACA,uCACA,oCACA,6BACA,yBACA,+BACA,4BACA,+BACA,8BACA,gCACA,mBAEA,QACA,SAEA,UACA,oBACA,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,kBACA,mBACA,YACA,aACA,MACA,UACA,aACA,YACA,gBACA,YACA,OACA,eACA,uBACA,iBACA,WACA,kBACA,SACA,cACA,eACA,UACA,QACA,aACA,SACA,mBACA,aACA,aACA,eACA,cACA,UACA,kBACA,MACA,UACA,YACA,QACA,qBACA,kBACA,UACA,WACA,OACA,QACA,QACA,cACA,MACA,WACA,OACA,gBACA,qBACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,SACA,aACA,cACA,aACA,eACA,aACA,aACA,WACA,QACA,QACA,OACA,SACA,UACA,UACA,UACA,KACA,SACA,mBACA,QACA,eACA,kBACA,QACA,OACA,QACA,MACA,kBACA,cACA,mBACA,MACA,SACA,kBACA,MACA,QACA,YACA,iBACA,eACA,WACA,aACA,eACA,YACA,YACA,qBACA,MACA,SACA,MACA,OACA,eACA,UACA,YACA,WACA,SACA,MACA,QACA,WACA,UACA,cACA,gBACA,UACA,cACA,OACA,SACA,WACA,UACA,eACA,iBACA,eACA,cACA,qBACA,iBACA,gBACA,SACA,UACA,MACA,UACA,QACA,QACA,kBACA,OACA,QACA,WACA,mBACA,mBACA,SACA,kBACA,OACA,MACA,OACA,UACA,QACA,OACA,QACA,UACA,SACA,WACA,SACA,UACA,UACA,UACA,YACA,aACA,eACA,MACA,OACA,aACA,eACA,YACA,YACA,mBACA,gBACA,gBACA,WACA,UACA,UACA,UACA,SACA,gBACA,WACA,WACA,YACA,iBACA,eACA,mBACA,aACA,YACA,OACA,aACA,kBACA,WACA,QACA,UACA,YACA,cACA,QACA,cACA,QACA,QACA,qBACA,iBACA,qBACA,wBACA,uBACA,uCACA,OACA,WACA,gBACA,eACA,gBACA,aACA,YACA,cACA,aACA,YACA,gBACA,WACA,QACA,WACA,SACA,eACA,UACA,cACA,iBACA,eACA,OACA,gBACA,cAEA,aACA,aACA,SACA,WAGA,OACA,aACA,QACA,MACA,OACA,aACA,cACA,aACA,YACA,kBAEA,QAIEC,GAAY,CAEd,WACA,MACA,QACA,QACA,MACA,WACA,QACA,QACA,MACA,MACA,KACA,aACA,YACA,UACA,KACA,aACA,QACA,gBACA,MACA,YACA,SACA,QACA,UACA,SACA,aACA,KACA,QACA,OACA,SACA,UACA,cACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,aACA,SACA,SACA,UACA,SACA,SACA,YACA,UACA,aACA,aACA,WACA,WACA,QACA,YACA,SACA,QACA,UACA,eACA,mBACA,eACA,iBACA,iBACA,eACA,oBACA,mBACA,eACA,SACA,QACA,OACA,WACA,oBACA,mBACA,MACA,OACA,aACA,WACA,SACA,SACA,kBACA,iBACA,aACA,UACA,UACA,WACA,aACA,SACA,YACA,aACA,WACA,aACA,gBACA,cACA,UACA,WACA,aACA,WACA,KACA,WACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,SACA,WACA,aACA,MACA,WACA,SACA,QACA,SACA,QACA,SACA,YACA,YACA,YACA,UACA,SACA,OACA,UACA,WACA,WACA,UACA,SACA,QACA,YACA,OACA,QACA,SACA,MACA,UACA,OACA,OACA,OACA,WACA,UACA,YACA,MACA,SACA,KACA,OACA,QACA,UACA,QACA,UACA,OACA,eACA,SACA,OACA,OACA,OACA,QACA,WACA,KACA,YACA,SACA,KACA,YACA,YACA,YACA,QACA,YACA,aACA,MACA,WACA,UACA,QACA,QACA,cACA,SACA,YACA,YACA,OACA,KACA,SACA,SACA,YACA,UACA,MACA,OACA,OACA,OACA,MACA,QACA,WACA,QACA,UACA,WACA,QACA,OACA,OACA,QACA,WACA,QACA,YACA,SACA,YACA,iBACA,UACA,WACA,OACA,UACA,WACA,OACA,aACA,eACA,WACA,cACA,eACA,SACA,UACA,WACA,OACA,WACA,QACA,SACA,MACA,MACA,YACA,UACA,KACA,UACA,UACA,WACA,aACA,aACA,aACA,OACA,UACA,aACA,OACA,UACA,OACA,QACA,WACA,OACA,KACA,MACA,SACA,MACA,YACA,KACA,OACA,eACA,WACA,SACA,KACA,QACA,MACA,QACA,OACA,aACA,UACA,SACA,WACA,YACA,OACA,YACA,cACA,eACA,aACA,WACA,OACA,UACA,YACA,OACA,WACA,YACA,UACA,UACA,UACA,SACA,aACA,YACA,UACA,OACA,SACA,QACA,UACA,QACA,OACA,OACA,QACA,WACA,aACA,cACA,UACA,UACA,SACA,SACA,QACA,WACA,UACA,WACA,SACA,qBACA,SACA,UACA,SACA,QACA,OACA,WACA,gBACA,aACA,cACA,kBACA,kBACA,gBACA,WACA,UACA,MACA,YACA,OACA,SACA,aACA,MACA,MACA,YACA,SACA,aACA,SACA,SACA,SACA,UACA,SACA,WACA,SACA,YACA,WACA,UACA,eACA,MACA,SACA,SACA,OACA,OACA,SACA,WACA,MACA,QACA,UACA,WACA,QACA,WACA,YACA,SACA,WACA,OACA,WACA,SACA,QACA,YACA,UACA,UACA,SACA,SACA,UACA,SACA,cACA,QACA,aACA,OACA,KACA,cACA,UACA,OACA,WACA,OACA,OACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,YACA,QACA,SACA,WACA,UACA,OACA,UACA,OACA,WACA,UACA,OACA,WACA,QACA,QACA,OACA,UACA,MACA,QACA,aACA,YACA,gBACA,OACA,SAEEC,GAAa,CAEf,QACA,SACA,SACA,OACA,UACA,QACA,OACA,YACA,OACA,OACA,WACA,SACA,MACA,UACA,SACA,mBACA,QACA,SACA,SACA,UACA,MACA,OACA,OACA,OACA,UACA,WACA,eACA,kBACA,QACA,OACA,QACA,WACA,UACA,WACA,OACA,OACA,YACA,YACA,UACA,cAIEC,GAAkB9F,EAAc,CAAC,4BACjC+F,GAAmB/F,EAAc,CAEnC,OACA,OACA,QACA,WACA,SACA,eACA,4BACA,QACA,SACA,aACA,kBACA,0BACA,4EACA,mBACA,mBACA,OAGA,cACA,SAEA,MAEA,aACA,4BACA,aACA,WAEEgG,GAA0BhG,EAAc,CAC1C,+DAEEiG,GAAyBjG,EAAc,CAEzC,2BAEA,SACA,mBACA,2BAEA,cAEA,yBAEA,cACA,eACA,gBACA,gBACA,iBACA,gBAEA,eAEA,wCAGA,mBAEA,WACA,qBACA,mBACA,iCACA,iBACA,sBACA,iBACA,2BACA,cACA,aACA,eACA,eACA,iBACA,gBACA,mBACA,kBACA,eACA,iCACA,wBACA,iBACA,eACA,sBACA,iBACA,mBACA,kBACA,gBACA,wBACA,aACA,mBACA,qBACA,aACA,wBACA,uBACA,iBACA,gBACA,kBACA,iBACA,mBACA,gBACA,wBACA,aACA,8CACA,QACA,wBACA,OACA,QACA,aACA,gBACA,UACA,qCACA,sBACA,oBACA,kCACA,uBACA,+BACA,0BACA,4BACA,wBACA,yBACA,2BACA,2BACA,6BACA,+BACA,iCACA,gCACA,cACA,gBACA,oCACA,yBACA,+BACA,uBACA,gBACA,kBACA,iBACA,kEACA,mBACA,sCACA,8BACA,yBACA,2BACA,sBACA,oBACA,0BACA,+BACA,yBACA,wBACA,kBACA,iBACA,UACA,iCACA,4BACA,aACA,sBACA,oBACA,kBACA,gCACA,qBACA,2BACA,wBACA,0BACA,yBACA,YACA,yBACA,cACA,gBACA,eACA,kBACA,4BACA,YACA,cACA,kCACA,uBACA,gBACA,cACA,qBACA,gBACA,uBACA,kCACA,gCACA,iBACA,eACA,uBACA,sBACA,kBACA,wBACA,gBACA,wBACA,iCACA,gBACA,eACA,iBACA,sBACA,sBACA,iCACA,eACA,uCACA,sBACA,wBACA,mCACA,gCACA,uCACA,eACA,kBACA,OACA,QAEA,UACA,UACA,QACA,aACA,OACA,OACA,OACA,UACA,gBACA,UACA,yBACA,iDACA,SACA,WACA,SACA,SAEA,iCACA,YACA,8BACA,iBACA,cAEA,0BACA,0BACA,gBACA,eACA,WACA,WACA,aACA,oBACA,6CACA,iBACA,SACA,wBACA,+CACA,UAEEkG,GAAyBlG,EAAc,CAAC,cAAe,eAAgB,oBACvEmG,GAAiBnG,EAAc,CACjC,OACA,qCACA,yBAEEoG,GAAmBpG,EAAc,CACnC,YACA,YACA,WACA,2BAEEhB,GAAM,CACR/G,KAAM,MACNoL,iBAAkB,CAChBP,eAAgBgD,GAChB/C,gBAAiB,IAAIgD,MAAqBC,MAA4BC,IACtE/C,sBAAuBgD,GACvB/C,cAAegD,GACf/C,gBAAiBgD,GACjB9C,iBAAkBsC,GAClBrC,kBAAmBsC,GACnBrC,sBAAuBmC,GACvBlC,YAAa,CAAC,MACdC,YAAa,CACX,CAAEC,MAAO,QAASC,SAAU,CAAC,IAAK,IAAK,OACvC,CAAED,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAM,KAAM,MAAOC,eAAe,IAEvEC,WAAY,CAAC,SACbC,WAAY,CAAEsC,MAAO,MAAOC,KAAM,OAClCrC,WAAY,CAAEC,YAAY,EAAMC,MAAO,CAAC,MACxCoC,WAAY,CAAEF,MAAO,MAAOC,KAAM,OAClC7B,UAAW,CACT,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJE,cAAe,CACbC,eAAgB,IAAIoB,MAA4BC,IAChDhD,sBAAuBgD,KAKvBO,GAAa,CAGf,YACA,MACA,OACA,cACA,QACA,YACA,YACA,aACA,QACA,aACA,kBACA,QACA,WACA,gBACA,iBACA,UACA,MACA,SACA,MACA,kBACA,kBAEA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,OACA,aACA,SACA,cACA,MACA,UACA,WACA,MACA,WACA,gBACA,SACA,WAEA,MACA,SACA,OACA,WACA,YACA,cACA,aACA,cACA,YACA,UACA,wBACA,aACA,QACA,OACA,OACA,QACA,QACA,gBACA,gBACA,aACA,SACA,YACA,SACA,QACA,SACA,eACA,cACA,OACA,UACA,cACA,mBACA,MACA,WACA,mBACA,SACA,WACA,MACA,OACA,MACA,UACA,UACA,WACA,oBACA,mBACA,MACA,UACA,aACA,gBACA,YACA,YACA,OACA,kBACA,iBACA,kBACA,mBACA,iBACA,cACA,eACA,aACA,UACA,aACA,SACA,YACA,aACA,gBACA,YACA,gBACA,cACA,cACA,UACA,mBACA,SACA,UACA,cACA,iBACA,cACA,eACA,MACA,UACA,YACA,QACA,kBACA,qBACA,qBACA,uBACA,eACA,UACA,WACA,WACA,WACA,YACA,cACA,cACA,cACA,eACA,MACA,WACA,OACA,qBACA,qBACA,mBACA,cACA,gBACA,WACA,kBACA,aACA,iBACA,YACA,gBACA,WACA,qBACA,SACA,SACA,QACA,YACA,UACA,aACA,YACA,SACA,aACA,cACA,aACA,eACA,cACA,aACA,aACA,OACA,WACA,QACA,QACA,OACA,SACA,KACA,OACA,mBACA,SACA,QACA,MACA,QACA,OACA,QACA,kBACA,MACA,cACA,mBACA,MACA,SACA,MACA,QACA,YACA,iBACA,SACA,aACA,YACA,gBACA,SACA,eACA,WACA,qBACA,MACA,SACA,MACA,eACA,UACA,KACA,WACA,SACA,MACA,QACA,WACA,UACA,UACA,cACA,SACA,OACA,eACA,eACA,iBACA,gBACA,SACA,UACA,MACA,QACA,kBACA,QACA,OACA,MACA,QACA,QACA,SACA,OACA,MACA,OACA,UACA,QACA,OACA,QACA,UACA,SACA,WACA,SACA,YACA,aACA,eACA,MACA,OACA,mBACA,gBACA,oBACA,gBACA,UACA,UACA,UACA,YACA,eACA,aACA,YACA,aACA,OACA,kBACA,QACA,WACA,QACA,QACA,aACA,aACA,QACA,mBACA,qBACA,wBACA,iBACA,wBACA,WACA,OACA,OACA,gBACA,aACA,YACA,cACA,aACA,YACA,gBACA,WACA,QACA,SACA,eACA,UACA,cACA,MACA,eACA,OACA,QAEA,aACA,2BACA,sBACA,wBACA,mBACA,0BACA,qBACA,yBACA,oBACA,wBACA,mBACA,aACA,YACA,gBACA,eACA,mBACA,WAEA,SAEA,YACA,aACA,cACA,MACA,aACA,OACA,YACA,QACA,eACA,OACA,kBACA,aAEA,QAIEC,GAAY,CAId,SACA,YACA,SACA,SACA,WACA,MACA,QACA,MACA,WACA,QACA,QACA,MACA,MACA,SACA,WACA,QACA,YACA,aACA,KACA,MACA,aACA,YACA,SACA,SACA,aACA,gBACA,aACA,SACA,QACA,UACA,OACA,OACA,aACA,KACA,QACA,OACA,SACA,cACA,OACA,OACA,QACA,KACA,QACA,UACA,UACA,aACA,SACA,UACA,SACA,UACA,cACA,WACA,SACA,aACA,YACA,UACA,kBACA,aACA,WACA,aACA,WACA,UACA,WACA,OACA,QACA,YACA,SACA,WACA,QACA,OACA,YACA,UACA,eACA,eACA,iBACA,iBACA,eACA,oBACA,mBACA,eACA,SACA,QACA,WACA,oBACA,mBACA,MACA,OACA,aACA,WACA,SACA,SACA,kBACA,iBACA,aACA,aACA,UACA,UACA,WACA,QACA,SACA,aACA,SACA,WACA,aACA,YACA,OACA,WACA,aACA,SACA,gBACA,cACA,UACA,WACA,aACA,WACA,KACA,WACA,OACA,UACA,OACA,OACA,SACA,QACA,SACA,WACA,aACA,MACA,WACA,SACA,WACA,QACA,SACA,QACA,SACA,YACA,YACA,YACA,UACA,SACA,OACA,SACA,WACA,UACA,QACA,SACA,QACA,YACA,OACA,QACA,cACA,MACA,UACA,SACA,OACA,WACA,OACA,OACA,WACA,WACA,UACA,YACA,MACA,SACA,KACA,OACA,QACA,QACA,UACA,OACA,WACA,eACA,SACA,OACA,OACA,OACA,QAEA,WACA,KACA,SACA,YACA,aACA,KACA,UACA,YACA,YACA,YACA,QACA,UACA,YACA,MACA,WACA,UACA,SACA,QACA,QACA,cACA,SACA,YACA,YACA,YACA,YACA,OACA,KACA,SACA,YACA,UACA,OACA,OACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,aACA,OACA,MACA,OACA,QACA,MACA,WACA,aACA,UACA,OACA,QACA,OACA,SACA,OACA,QACA,WACA,UACA,QACA,YACA,YACA,iBACA,WACA,UACA,OACA,WACA,MACA,SACA,OACA,aACA,OACA,UACA,eACA,WACA,QACA,cACA,eACA,aACA,SACA,UACA,WACA,SACA,QACA,OACA,WACA,QACA,SACA,YACA,MACA,WACA,QACA,QACA,SACA,MACA,YACA,UACA,KACA,UACA,UACA,WACA,aACA,aACA,aACA,OACA,UACA,aACA,MACA,UACA,YACA,QACA,OACA,QACA,WACA,OACA,SACA,KACA,MACA,SACA,MACA,YACA,OACA,KACA,OACA,OACA,WACA,SACA,KACA,QACA,aACA,WACA,MACA,QACA,OACA,UACA,aACA,UACA,SACA,OACA,WACA,YACA,OACA,YACA,cACA,eACA,aACA,UACA,WACA,OACA,UACA,eACA,kBACA,kBACA,SACA,aACA,YACA,OACA,OACA,WACA,UACA,UACA,UACA,QACA,SACA,aACA,YACA,UACA,YACA,QACA,QACA,OACA,kBACA,SACA,OACA,QACA,WACA,aACA,cACA,UACA,cACA,UACA,SACA,SACA,QACA,WACA,UACA,SACA,qBACA,SACA,YACA,UACA,SACA,MACA,QACA,WACA,SACA,UACA,MACA,aACA,YACA,OACA,MACA,MACA,YACA,OACA,SACA,SACA,aACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,YACA,WACA,UACA,eACA,MACA,SACA,SACA,OACA,OACA,OACA,SACA,WACA,MACA,QACA,iBACA,oBACA,UACA,QACA,WACA,YACA,SACA,WACA,YACA,UACA,UACA,cACA,cACA,QACA,aACA,cACA,MACA,OACA,aACA,KACA,cACA,WACA,UACA,OACA,aACA,OACA,WACA,WACA,OACA,OACA,QACA,SACA,OACA,UACA,SACA,QACA,SACA,WACA,MACA,QACA,MACA,OACA,SACA,QACA,QACA,SACA,WACA,UACA,OACA,UACA,aACA,OACA,WACA,OACA,OACA,WACA,QACA,QACA,OACA,SACA,UACA,UACA,UACA,QACA,aACA,SACA,gBACA,UACA,aACA,YACA,cACA,aACA,YACA,WACA,gBACA,WACA,QACA,SACA,eACA,WACA,UACA,cACA,eACA,YACA,OACA,QACA,MACA,QAEEC,GAAa,CAEf,QACA,SACA,SACA,MACA,OACA,UACA,QACA,OACA,YACA,OACA,OACA,WACA,OACA,SACA,WACA,UACA,MACA,SACA,mBACA,QACA,UACA,MACA,UACA,OACA,UACA,OACA,QACA,WACA,OACA,YACA,YACA,UACA,aACA,OAIEC,GAAkB3G,EAAc,CAAC,4BACjC4G,GAAmB5G,EAAc,CAEnC,mBACA,OACA,OACA,QACA,WACA,SACA,eACA,uCACA,QACA,SACA,uBACA,kBACA,gBACA,eAGA,cACA,SAEA,MAEA,aACA,4BACA,aACA,SACA,SAEA,oBAEE6G,GAA0B7G,EAAc,CAAC,8BACzC8G,GAAyB9G,EAAc,CAEzC,uCAEA,SACA,mBACA,gCAEA,cAEA,aAEA,cACA,eACA,iBACA,gBACA,gBAEA,gDAEA,eAEA,uCAEA,gBAEA,sFAGA,mBAEA,uBACA,qBAEA,kBACA,iDACA,0CACA,iDACA,8CACA,wBACA,OACA,QACA,iJACA,yDACA,iEACA,4CACA,2EACA,uBACA,4BACA,yGACA,gCACA,uCACA,gBACA,cACA,+CACA,iBACA,iCACA,UACA,kBACA,iBACA,oBACA,iCACA,iBACA,uBACA,uBACA,2HACA,+DACA,sBACA,sBAEA,eACA,wCACA,sCACA,qJACA,eACA,UACA,mIACA,uDACA,aACA,OACA,UACA,gBACA,UACA,yBACA,4BACA,sJACA,wCACA,YACA,iBACA,+GACA,wCACA,0BACA,aACA,iDACA,wDACA,4BACA,mBACA,kBACA,0BACA,MACA,wBACA,iDAEE+G,GAAyB/G,EAAc,CAAC,cAAe,eAAgB,oBACvEgH,GAAiBhH,EAAc,CACjC,OACA,qCACA,gCACA,yBAEEiH,GAAmBjH,EAAc,CACnC,YACA,YACA,WACA,2BAEEf,GAAO,CACThH,KAAM,OACNoL,iBAAkB,CAChBP,eAAgB6D,GAChB5D,gBAAiB,IAAI6D,MAAqBC,MAA4BC,IACtE5D,sBAAuB6D,GACvB5D,cAAe6D,GACf5D,gBAAiB6D,GACjB3D,iBAAkBmD,GAClBlD,kBAAmBmD,GACnBlD,sBAAuBgD,GACvBU,qBAAqB,EACrBzD,YAAa,CAAC,MACdC,YAAa,CACX,CAAEC,MAAO,QAASC,SAAU,CAAC,IAAK,MAClC,CAAED,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAM,KAAM,MAAOC,eAAe,IAEvEC,WAAY,CAAC,SACbC,WAAY,CAAEsC,MAAO,MAAOC,KAAM,OAClCrC,WAAY,CAAEC,YAAY,EAAMC,MAAO,CAAC,MACxCoC,WAAY,CAAEF,MAAO,MAAOC,KAAM,OAClC7B,UAAW,CAAC,KAAM,KAAS,KAAS,KAAS,KAAM,KAAM,KAAM,OAEjEE,cAAe,CACbC,eAAgB,IAAIiC,MAA4BC,IAChD7D,sBAAuB6D,KAKvBK,GAAa,CAGf,MACA,OACA,OACA,OACA,MACA,SACA,OACA,OACA,UACA,OACA,MACA,UAEA,MACA,YACA,QACA,WACA,MACA,QACA,KACA,MACA,QACA,OACA,WACA,KACA,OACA,WACA,MACA,QACA,UACA,OACA,QACA,YACA,aACA,qBACA,OACA,MACA,OACA,MACA,QACA,eAEA,iBACA,WACA,aACA,OACA,aAEA,SACA,OAEA,aACA,OACA,WACA,cACA,WACA,WACA,MACA,UACA,aACA,YACA,UACA,gBACA,qBACA,OACA,WACA,SACA,QACA,iBACA,WACA,UACA,SACA,YACA,UACA,mBACA,QACA,iBACA,aACA,OAEA,cACA,WACA,KACA,YACA,SACA,SACA,MAEA,QACA,SACA,mBACA,MACA,SACA,YACA,iBACA,SACA,MACA,SACA,QACA,cACA,gBACA,kBACA,UACA,UACA,QACA,QACA,SACA,cACA,SACA,QACA,OACA,QACA,SACA,eACA,YACA,SACA,QACA,iBACA,iBACA,SACA,UACA,OACA,QACA,YACA,UACA,QACA,QACA,aACA,SACA,YACA,YACA,OACA,QACA,WACA,QAEA,OACA,eACA,YACA,cACA,oBACA,mBAEA,cACA,cACA,QACA,mBACA,eACA,OACA,cACA,iBACA,MACA,UACA,MACA,OACA,OACA,gBACA,UAEA,MACA,eACA,cACA,OACA,QACA,YACA,aACA,oBACA,MACA,MACA,QACA,aACA,oBACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,cACA,MACA,UACA,WACA,WAEA,UACA,SACA,aACA,kBACA,aACA,QAEA,OACA,MACA,cACA,aACA,OACA,aACA,aACA,YACA,eACA,SAIEC,GAAY,CAGd,MACA,QACA,QACA,UACA,UACA,MACA,SACA,SACA,UACA,UACA,SACA,UACA,YACA,gBACA,aACA,UACA,UACA,UACA,cACA,UACA,cACA,WACA,OACA,YACA,WACA,MACA,eACA,WACA,UACA,YACA,aACA,OACA,cACA,YACA,UACA,aACA,YACA,SACA,UACA,YACA,UACA,SACA,SACA,OACA,aACA,QACA,SACA,YACA,YACA,eACA,OACA,gBACA,SACA,QACA,UACA,SACA,cACA,cACA,QACA,MACA,OACA,WACA,QACA,QACA,OACA,WACA,OACA,QACA,UACA,OACA,UACA,eACA,WACA,QACA,SACA,QACA,OACA,SACA,UACA,UACA,SACA,eACA,eACA,YACA,QACA,cACA,aACA,OACA,SACA,aACA,aACA,QACA,OACA,WACA,UACA,eACA,eACA,SACA,SACA,SACA,UACA,cACA,WACA,UACA,OACA,QACA,SACA,UACA,SACA,OACA,QACA,kBACA,SACA,OACA,SACA,OACA,gBACA,SACA,OACA,SACA,MACA,aACA,SACA,cACA,SACA,SACA,gBACA,YACA,aACA,UACA,QACA,eACA,YACA,OACA,YACA,SACA,QACA,WACA,MACA,MACA,MACA,eACA,aACA,OACA,QACA,OACA,aACA,YACA,QACA,SACA,WACA,cACA,OACA,QACA,QACA,MACA,OACA,SACA,aACA,QACA,OACA,WACA,SACA,MACA,aACA,WACA,UACA,UACA,gBACA,OACA,QACA,SACA,QACA,OACA,QACA,UACA,UACA,cACA,OAEA,MACA,QACA,MACA,KACA,gBACA,UACA,OACA,KACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,UACA,eACA,oBACA,SACA,WACA,SACA,WACA,WACA,OACA,OACA,MACA,WACA,SACA,WACA,WACA,QACA,QACA,YACA,MACA,OACA,OACA,WACA,QACA,QACA,WACA,SACA,KACA,SACA,KACA,QACA,SACA,YACA,OACA,KACA,OACA,UACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,OACA,KACA,KACA,KACA,QACA,MACA,QACA,OACA,cACA,YACA,UACA,YACA,WACA,YACA,QACA,QACA,SACA,SACA,QACA,SACA,MACA,OACA,SACA,MACA,QACA,cACA,OACA,KACA,YACA,UACA,OACA,WACA,YACA,QACA,aACA,SACA,OACA,QACA,eACA,SACA,OACA,QACA,SACA,OACA,SACA,OACA,SACA,QACA,WACA,QACA,QACA,aACA,UACA,UACA,aACA,YACA,UACA,QACA,QACA,OACA,OAEA,WACA,eACA,MACA,MACA,MACA,UACA,OACA,SACA,WACA,cACA,gBAEEC,GAAa,CAEf,QACA,SACA,SACA,UACA,OACA,OACA,UACA,SACA,QACA,MACA,UACA,WACA,MACA,UACA,YACA,WACA,SACA,YACA,WAIEC,GAAkBtH,EAAc,CAAC,4BACjCuH,GAAmBvH,EAAc,CAEnC,OACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,UACA,aACA,gBACA,QAKA,sBACA,SAEA,MAEA,aACA,4BACA,aACA,kBAGA,qCAGA,2BACA,2BAEEwH,GAA0BxH,EAAc,CAC1C,wDAEEyH,GAAyBzH,EAAc,CAEzC,6CAEA,SAEA,cAEA,yBAEA,cACA,YAEA,mBAEA,QACA,SACA,MACA,WACA,OACA,QACA,OACA,YACA,YACA,eAEE0H,GAAyB1H,EAAc,CAAC,2BACxC2H,GAAiB3H,EAAc,CACjC,OACA,qCACA,uBAEA,mBAEE4H,GAAmB5H,EAAc,CAAC,2BAClCd,GAAO,CACTjH,KAAM,OACNoL,iBAAkB,CAChBP,eAAgBwE,GAChBvE,gBAAiB,IAAIwE,MAAqBC,MAA4BC,IACtEvE,sBAAuBwE,GACvBvE,cAAewE,GACfvE,gBAAiBwE,GACjBtE,iBAAkB8D,GAClB7D,kBAAmB8D,GACnB7D,sBAAuB2D,GACvB1D,YAAa,CAAC,MACdC,YAAa,CAAC,QAAS,SACvBI,WAAY,CAAC,MACbO,cAAe,CAAC,CAAEV,MAAO,KAAMC,SAAU,CAAC,KAAMC,eAAe,IAC/DY,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,OAEzDE,cAAe,CACbC,eAAgB,IAAI4C,MAA4BC,IAChDxE,sBAAuBwE,KAK3B,SAASI,GAAahD,GACpB,OAAOA,EAAOlM,IAAI,CAAC1P,EAAO6G,KACxB,MAAMgY,EAAYjD,EAAO/U,EAAI,IAAMgS,GACnC,GAAII,GAAQG,IAAIpZ,IAA6B,MAAnB6e,EAAUnd,KAClC,OAAO6T,EAAcJ,EAAe,GAAInV,GAAQ,CAAEqH,KAAM,2BAE1D,MAAM0U,EAAYH,EAAO/U,EAAI,IAAMgS,GACnC,OAAII,GAAQM,OAAOvZ,IAA6B,MAAnB+b,EAAUra,KAC9B6T,EAAcJ,EAAe,GAAInV,GAAQ,CAAEqH,KAAM,2BAEnDrH,IAKX,IAAI8e,GAAY,CAEd,aACA,MACA,MACA,QACA,UACA,MACA,KACA,MACA,aACA,SACA,UACA,OACA,KACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,YACA,aACA,WACA,UACA,SACA,QACA,eACA,eACA,eACA,oBACA,eACA,SACA,WACA,YACA,WACA,kBACA,aACA,aACA,UACA,UACA,UACA,SACA,mBACA,OACA,WACA,gBACA,WACA,cACA,MACA,gBACA,OACA,OACA,OACA,OACA,SACA,WACA,UACA,SACA,SACA,OACA,UACA,QACA,QACA,MACA,QACA,UACA,OACA,WACA,UACA,QACA,QACA,SACA,gBACA,mBACA,cACA,cACA,KACA,SACA,oBACA,oBACA,KACA,QACA,SACA,QACA,QACA,cACA,SACA,YACA,WACA,OACA,KACA,UACA,OACA,MACA,OACA,OACA,UACA,QACA,OACA,OACA,QACA,SACA,QACA,OACA,YACA,iBACA,OACA,OACA,eACA,0BACA,gCACA,QACA,WACA,qBACA,gBACA,MACA,WACA,UACA,MACA,qBACA,OACA,SACA,KACA,WACA,SACA,aACA,KACA,QACA,MACA,QACA,UACA,OACA,gBACA,kBACA,YACA,WACA,UACA,YACA,QACA,QACA,OACA,QACA,aACA,YACA,gBACA,aACA,SACA,UACA,SACA,SACA,UACA,UACA,WACA,WACA,SACA,YACA,SACA,QACA,QACA,aACA,OACA,SACA,UACA,qBACA,SACA,YACA,YACA,MACA,OACA,SACA,OACA,UACA,WACA,MACA,eACA,WACA,aACA,iBACA,sBACA,mBACA,MACA,WACA,oBACA,mBACA,qBACA,gBACA,QACA,aACA,OACA,KACA,WACA,UACA,OACA,OACA,QACA,SACA,SACA,WACA,SACA,QACA,MACA,QACA,WACA,WACA,gBACA,SACA,OACA,QACA,QACA,SACA,OACA,QACA,MACA,aACA,YAEEC,GAAa,CAEf,SACA,SACA,MACA,OACA,YACA,OACA,YACA,WACA,MACA,UACA,mBACA,SACA,OACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,OACA,OACA,OACA,UACA,OACA,WACA,WACA,aACA,YACA,aACA,YACA,gBACA,mBACA,UACA,YACA,OACA,WACA,OACA,YACA,WACA,UACA,WACA,YACA,UACA,eACA,UACA,QAMEC,GAAa,CAEf,UACA,aACA,UACA,SACA,UACA,OACA,QACA,YACA,UACA,UACA,WACA,WACA,cACA,SACA,aACA,UACA,cACA,eACA,gBACA,iBACA,MACA,OACA,MACA,SACA,MACA,MACA,MACA,YACA,QACA,WACA,eACA,kBACA,kBACA,OACA,aACA,eACA,MACA,SACA,aACA,cACA,UACA,SACA,YACA,MACA,cACA,OACA,cACA,WACA,UACA,WACA,MACA,OACA,UACA,cACA,cACA,OACA,OACA,QACA,YACA,MACA,kBACA,YACA,aACA,OACA,UACA,mBACA,cACA,MACA,eACA,eACA,gBACA,cACA,cACA,WACA,SACA,yBACA,YACA,gBACA,OACA,aACA,MACA,MACA,QACA,WACA,UACA,aACA,YACA,YACA,UACA,mBACA,gBACA,cACA,cACA,MACA,SACA,UACA,MACA,aACA,eACA,QACA,cACA,QACA,SACA,aACA,cACA,YACA,gBACA,WACA,WACA,MACA,SACA,QACA,SACA,eACA,eACA,aACA,oBACA,oBACA,eACA,gBACA,qBACA,aACA,gBACA,cACA,eACA,cACA,YACA,cACA,aACA,aACA,mBACA,sBACA,aACA,aACA,cACA,cACA,eACA,WACA,cACA,YACA,eACA,aACA,aACA,WACA,iBACA,QACA,QACA,SACA,UACA,KACA,YACA,SACA,MACA,QACA,OACA,QACA,OACA,cACA,QACA,eACA,WACA,WACA,WACA,mBACA,kBACA,MACA,YACA,aACA,MACA,OACA,MACA,eACA,MACA,aACA,cACA,KACA,MACA,QACA,QACA,eACA,iBACA,gBACA,UACA,OACA,oBACA,eACA,iBACA,UACA,QACA,OACA,cACA,QACA,eACA,cACA,MACA,OACA,OACA,OACA,MACA,QACA,UACA,QACA,OACA,SACA,cACA,gBACA,kBACA,UACA,WACA,MACA,WACA,cACA,cACA,YACA,UACA,UACA,aACA,QACA,aACA,sBACA,QACA,iBACA,YACA,QACA,OACA,aACA,UACA,UACA,aACA,0BACA,uBACA,4BACA,WAEA,WACA,UAIEC,GAAkBlI,EAAc,CAAC,0CACjCmI,GAAmBnI,EAAc,CAEnC,mBACA,OACA,QACA,WACA,SACA,eACA,WACA,QACA,SACA,uBAGA,kEACA,0CACA,SACA,0BAEA,MAEA,cAEEoI,GAA0BpI,EAAc,CAC1C,0DAEEqI,GAAyBrI,EAAc,CAEzC,yFAEA,iCAEA,8CAEA,qCAEA,4CACA,+BACA,yCACA,4BACA,cACA,gBACA,iBACA,uBAEA,4BAGA,mBAEA,iBACA,yBACA,cACA,iBACA,kBACA,eACA,uBACA,iBACA,eACA,aACA,aACA,UACA,gBACA,cACA,eACA,gBACA,QACA,SACA,cACA,OACA,mBACA,cACA,aACA,iBACA,SACA,4BACA,kBACA,eACA,kBACA,eACA,mBACA,cACA,kBACA,gBACA,uBACA,iBACA,sBACA,cACA,qBACA,WACA,gBACA,aACA,gBACA,aACA,eACA,iBACA,YACA,gBACA,cACA,eACA,YACA,YACA,UACA,UACA,QACA,kBACA,4BACA,QACA,UACA,OACA,iBACA,iBACA,OACA,mBACA,wBACA,kBACA,aACA,iBACA,UACA,oBACA,oBACA,oBACA,eACA,cACA,eACA,cACA,eACA,oBACA,gBACA,cACA,WACA,SACA,WACA,YACA,oBACA,mBACA,yBACA,YACA,eACA,WACA,gBACA,kBACA,OACA,2BACA,yBACA,eACA,mBACA,qBACA,qBACA,qBACA,yBACA,iBACA,eACA,oBACA,uBACA,oBACA,uBACA,sBACA,2BACA,wBACA,uBACA,oBACA,sBACA,mBACA,mBACA,iBACA,cACA,4BACA,eACA,cACA,cACA,eACA,qBACA,uBACA,cACA,aACA,eACA,wBACA,YACA,eACA,mBACA,qBACA,mBACA,yBACA,2BACA,sBACA,eACA,sBACA,kBACA,sBACA,wBACA,mBACA,eACA,gBACA,2BACA,uBACA,eACA,qBACA,sBACA,eACA,aACA,mBACA,oBACA,cACA,uBACA,oBACA,cACA,gBACA,uBACA,iBACA,gBACA,wBACA,oBACA,WACA,SACA,qBACA,mBACA,gBACA,cACA,oBACA,oBACA,kBACA,eACA,aACA,mBACA,mBACA,eACA,MACA,WACA,YACA,SACA,aACA,aACA,cACA,aAEEsI,GAAyBtI,EAAc,CACzC,yBACA,0BACA,6BACA,2BAEEuI,GAAiBvI,EAAc,CACjC,OACA,8BACA,uBACA,eACA,sCAEA,kBAEEwI,GAAmBxI,EAAc,CACnC,gDACA,gBACA,yBACA,kBAEEb,GAAU,CACZlH,KAAM,UACNoL,iBAAkB,CAChBP,eAAgBoF,GAChBnF,gBAAiB,IAAIoF,MA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UACA,aACA,MACA,MACA,MACA,aACA,UACA,eACA,QACA,cACA,cACA,QACA,SACA,eACA,mBACA,aACA,cACA,YACA,gBACA,iBACA,qBACA,2BACA,wBACA,+BACA,aACA,WACA,WACA,eACA,WACA,cACA,gBACA,MACA,OACA,cACA,KACA,SAEA,YACA,YACA,aACA,aACA,SACA,QACA,0BACA,0BACA,sBACA,oBACA,qBACA,uBACA,0BACA,gCACA,iCACA,wBACA,wBACA,qCACA,oCACA,wBACA,2BACA,6BACA,yBACA,2BACA,sBACA,uBACA,WACA,KACA,eACA,UACA,iBACA,iBACA,UACA,SACA,cACA,UACA,eACA,UACA,SACA,aACA,oBACA,oBACA,gBACA,gBACA,qBACA,aACA,eACA,cACA,YACA,cACA,aACA,mBACA,sBACA,cACA,iBACA,gBACA,cACA,aACA,cACA,eACA,oBACA,gCACA,cACA,WACA,oBACA,oBACA,aACA,YACA,eACA,aACA,aACA,MACA,WACA,iBACA,aACA,QACA,OACA,QACA,OACA,SACA,OACA,aACA,KACA,YACA,YACA,iBACA,SACA,MACA,QACA,OACA,QACA,OACA,QACA,WACA,WACA,WACA,kBACA,QACA,MACA,cACA,eACA,YACA,cACA,YACA,gBACA,cACA,aACA,YACA,MACA,YACA,cACA,MACA,MACA,SACA,MACA,QACA,YACA,kBACA,aACA,eACA,aACA,MACA,SACA,WACA,aACA,MACA,YACA,QACA,SACA,MACA,eAEA,MACA,eACA,aACA,cACA,KACA,QACA,UACA,WACA,MACA,QACA,uBACA,eACA,UACA,QACA,UACA,OACA,eACA,OACA,SACA,eACA,cACA,iBACA,gBACA,oBACA,eACA,SACA,UACA,UACA,QACA,QACA,gBACA,QACA,YACA,aACA,OACA,QACA,SACA,cACA,SACA,eACA,OACA,OACA,OACA,MACA,QACA,UACA,cACA,kBACA,QACA,OACA,UACA,cACA,eACA,YACA,YACA,qBACA,cACA,aACA,cACA,gBACA,aACA,gBACA,eACA,cACA,cACA,qBACA,cACA,cACA,YACA,kBACA,qBACA,aACA,sBACA,qBACA,eACA,kBACA,qBACA,kBACA,iBACA,uBACA,mBACA,kBACA,gBACA,cACA,aACA,cACA,aACA,oBACA,cACA,YACA,kBACA,iBACA,0BACA,2BACA,qBACA,eACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,qBACA,eACA,cACA,qBACA,sBACA,mBACA,kBACA,YACA,kBACA,iBACA,cACA,UACA,gBACA,YACA,mBACA,aACA,eACA,WACA,cACA,YACA,OACA,OACA,mBACA,wBACA,MACA,SACA,aACA,cACA,cACA,SACA,UACA,SACA,YACA,kBACA,UACA,MACA,UACA,cACA,MACA,OACA,cACA,cACA,WACA,YACA,eACA,gBACA,YACA,UACA,aACA,OACA,WACA,QACA,aACA,sBACA,QACA,iBACA,YACA,QAEA,WACA,WACA,gBACA,OACA,aACA,cACA,6BACA,SACA,UACA,WACA,WACA,UACA,6BACA,oCACA,OACA,UACA,aACA,gBAEA,OACA,YAIEC,GAAkB9I,EAAc,CAAC,0CACjC+I,GAAmB/I,EAAc,CAEnC,mBACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,QACA,SAGA,kEACA,0CACA,SACA,0BAEA,QAEEgJ,GAA0BhJ,EAAc,CAAC,6CACzCiJ,GAAyBjJ,EAAc,CAEzC,yFAEA,iCAEA,8CAEA,qCAEA,cACA,eACA,6BACA,gBACA,mBACA,gBACA,iBACA,uBAGA,mBAEA,iBACA,cACA,iBACA,iBACA,sBACA,kBACA,uBACA,eACA,mBACA,aACA,aACA,gBACA,SACA,cACA,OACA,mBACA,4BACA,+BACA,cACA,iBACA,QACA,SACA,kBACA,eACA,kBACA,kBACA,eACA,uBACA,mBACA,wBACA,cACA,gBACA,kCACA,oBACA,iBACA,cACA,qBACA,WACA,gBACA,aACA,gBACA,gBACA,aACA,qBACA,iBACA,sBACA,YACA,cACA,gCACA,kBACA,eACA,YACA,YACA,UACA,UACA,QACA,QACA,UACA,OACA,eACA,oBACA,iBACA,OACA,YACA,wBACA,WACA,2BACA,cACA,kBACA,iBACA,UACA,oBACA,oBACA,eACA,cACA,eACA,QACA,eACA,gBACA,gBACA,cACA,UACA,SACA,WACA,wBACA,YACA,oBACA,mBACA,YACA,eACA,qBACA,WACA,kBACA,OACA,mBACA,qBACA,qBACA,iBACA,eACA,uBACA,oBACA,uBACA,wBACA,oBACA,sBACA,mBACA,mBACA,iBACA,cACA,eACA,cACA,cACA,qBACA,uBACA,cACA,aACA,qBACA,mBACA,eACA,kBACA,sBACA,wBACA,mBACA,eACA,gBACA,uBACA,sBACA,gBACA,aACA,mBACA,cACA,oBACA,cACA,gBACA,iBACA,gBACA,WACA,kBACA,0BACA,gBACA,cACA,oBACA,yBACA,eACA,aACA,QACA,sBACA,mBACA,kBACA,gBACA,MACA,KAGA,UACA,QACA,OACA,SACA,SACA,UAEEkJ,GAAyBlJ,EAAc,CAAC,2BACxCmJ,GAAiBnJ,EAAc,CACjC,OACA,8BACA,uBACA,uBACA,sCAEA,kBAEEoJ,GAAmBpJ,EAAc,CACnC,kCACA,gBACA,yBACA,kBAEEZ,GAAQ,CACVnH,KAAM,QACNoL,iBAAkB,CAChBP,eAAgBgG,GAChB/F,gBAAiB,IAAIgG,MAAqBC,MAA4BC,IACtE/F,sBAAuBgG,GACvB/F,cAAegG,GACf/F,gBAAiBgG,GACjBX,aAAa,EACbnF,iBAAkBqF,GAClBpF,kBAAmBqF,GACnBpF,sBAAuBqF,GAEvBnF,YAAa,CACX,WACA,CAAEC,MAAO,WAAYC,SAAU,CAAC,MAChC,CAAED,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,IAE1DC,WAAY,CAAC,MACbC,WAAY,CAAEsC,MAAO,IAAKC,KAAM,IAAKoC,sBAAsB,GAC3DrE,cAAe,CACb,CAAEC,MAAO,sBACT,CAAEX,MAAO,WAAYC,SAAU,CAAC,KAAMC,eAAe,GACrD,CAAEF,MAAO,WAAYC,SAAU,CAAC,KAAMC,eAAe,GACrD,CAAEF,MAAO,KAAMC,SAAU,CAAC,KAAMC,eAAe,IAEjDI,WAAY,CAAEC,YAAY,GAC1BM,iBAAkB,CAAC,KAAM,KACzBC,UAAW,CACT,IACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,IACA,OAGFC,YAAamD,IAEflD,cAAe,CACbC,eAAgB,IAAIoE,MAA4BC,IAChDhG,sBAAuBgG,KAKvBI,GAAY,CAEd,MAEA,MAEA,QAEA,UAEA,MAEA,QAEA,KAEA,MAEA,UAEA,OAEA,KAEA,OAEA,UAEA,OAEA,SAEA,QAEA,UAEA,SAEA,aAEA,WAEA,UAEA,SAEA,QAEA,eAEA,eAEA,eAEA,oBAEA,eAEA,SAEA,WAEA,YAEA,WAEA,kBAEA,aAEA,aAEA,UAEA,UAEA,SAEA,OAEA,WAEA,WAEA,cAEA,MAEA,SAEA,OAEA,OAEA,OAEA,SAEA,WAEA,UAEA,SAEA,SAEA,OAEA,UAEA,QAEA,QAEA,MAEA,QAEA,UAEA,OAEA,WAEA,YAEA,QAEA,QAEA,SAEA,SAEA,gBAEA,mBAEA,cAEA,cAEA,KAEA,SAEA,QAEA,KAEA,QAEA,SAEA,QAEA,QAEA,SAEA,YAEA,WAEA,OAEA,KAEA,UAEA,OAEA,MAEA,OAEA,OAEA,UAEA,QAEA,OAEA,OAEA,QAEA,SAEA,QAEA,OAEA,YAEA,iBAEA,OAEA,OAEA,eAEA,QAEA,WAEA,qBAEA,gBAEA,MAEA,UAEA,MAEA,qBAEA,OAEA,KAEA,KAEA,WAEA,SAEA,aAEA,KAEA,QAEA,MAEA,QAEA,UAEA,OAEA,YAEA,UAEA,YAEA,QAEA,OAEA,YAEA,aAEA,SAEA,UAEA,SAEA,SAEA,UAEA,UAEA,WAEA,SAEA,QAEA,QAEA,MAEA,OAEA,qBAEA,SAEA,MAEA,OAEA,UAEA,MAEA,eAEA,WAEA,aAEA,iBAEA,sBAEA,mBAEA,MAEA,WAEA,iBAEA,SAEA,gBAEA,QAEA,cAEA,aAEA,OAEA,KAEA,WAEA,UAEA,OAEA,mBAEA,QAEA,SAEA,SAEA,WAEA,QAEA,SAEA,QAEA,MAEA,QAEA,WAEA,WAEA,gBAEA,SAEA,UAEA,OAEA,QAEA,QAEA,SAEA,OAEA,QAEA,MAEA,aAEA,YAGEC,GAAa,CAEf,SAEA,SAEA,MACA,OAEA,OAEA,UAEA,OAEA,YAEA,OAEA,WAEA,MAEA,UAEA,mBACA,SAEA,OACA,QACA,MAEA,OAEA,OAEA,OAEA,OAEA,OAEA,UAEA,WAEA,WAEA,aAEA,YAEA,YAEA,gBAEA,mBAEA,UAEA,YAEA,WAEA,OACA,OACA,YAEA,WAEA,UAEA,WAEA,YAEA,UAEA,eAEA,UAEA,QAKEC,GAAa,CAKf,MACA,OACA,UACA,UACA,cACA,cAEA,YACA,QACA,OACA,OACA,QACA,MACA,YACA,MACA,cACA,UACA,YACA,aACA,SACA,UACA,SACA,SACA,QACA,SACA,OACA,OACA,OACA,UACA,YACA,cACA,mBACA,UACA,WACA,eACA,YACA,WACA,SACA,YACA,gBACA,OACA,UACA,aACA,MACA,MACA,QACA,QACA,YACA,UACA,eACA,yBACA,eACA,eACA,oBACA,eACA,UACA,WACA,OACA,WACA,cACA,WACA,WACA,MACA,UACA,aACA,YACA,YACA,SACA,eACA,UACA,aACA,cACA,cACA,MACA,MACA,SACA,UACA,KACA,MACA,aACA,UACA,QACA,cACA,cACA,QACA,SACA,eACA,mBACA,aACA,cACA,YACA,gBACA,KACA,aACA,WACA,WACA,WACA,eACA,WACA,KACA,MACA,OACA,KACA,SACA,QAEA,aACA,aACA,YACA,YACA,cACA,QACA,SACA,WACA,eACA,UACA,iBACA,iBACA,UACA,eACA,UACA,UACA,SACA,SACA,aACA,gBACA,oBACA,oBACA,gBACA,qBACA,aACA,eACA,cACA,YACA,cACA,gBACA,aACA,mBACA,sBACA,cACA,iBACA,gBACA,cACA,aACA,cACA,eACA,cACA,WACA,oBACA,oBACA,YACA,eACA,aACA,MACA,WACA,iBACA,aACA,UACA,QACA,KACA,OACA,QACA,OACA,YACA,SACA,OACA,KACA,YACA,YACA,iBACA,SACA,MACA,QACA,OACA,QACA,OACA,KACA,QACA,WACA,WACA,WACA,kBACA,MACA,MACA,cACA,MACA,MACA,QACA,SACA,MACA,QACA,YACA,MACA,aACA,KACA,UACA,MACA,MACA,YACA,QACA,SACA,MACA,eACA,eAEA,MACA,gBACA,eACA,aACA,cACA,KACA,OACA,WACA,MACA,QACA,UACA,QACA,UACA,OACA,eACA,OACA,SACA,eACA,cACA,iBACA,gBACA,oBACA,eACA,SACA,UACA,UACA,QACA,aACA,QACA,YACA,aACA,OACA,QACA,SACA,cACA,SACA,eACA,SACA,SACA,MACA,OACA,OACA,OACA,MACA,QACA,MACA,QACA,OACA,MACA,SACA,aACA,cACA,cACA,SACA,UACA,SACA,YACA,kBACA,UACA,MACA,UACA,cACA,MACA,yBACA,mBACA,0BACA,kBACA,mBACA,0BACA,yBACA,oBACA,iBACA,yBACA,oBACA,aACA,eACA,OACA,cACA,cACA,WACA,YACA,eACA,gBACA,YACA,UACA,aACA,YACA,OACA,WACA,QACA,aACA,aACA,sBACA,QACA,iBACA,QAEA,WACA,WACA,gBACA,OACA,aACA,cACA,6BACA,UACA,WACA,WACA,UACA,cACA,OACA,UACA,aACA,gBAEA,OACA,YAIEC,GAAkBxJ,EAAc,CAAC,0CACjCyJ,GAAmBzJ,EAAc,CAEnC,mBACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,QACA,SAGA,kEACA,0CACA,SACA,0BAEA,QAEE0J,GAA0B1J,EAAc,CAAC,6CACzC2J,GAAyB3J,EAAc,CAEzC,yFAEA,iCAEA,8CAEA,qCAEA,cACA,eACA,6BACA,gBACA,mBACA,gBACA,iBACA,uBAGA,mBAEA,iBAEA,iBACA,uBACA,iBAEA,aACA,aACA,gBACA,cACA,iBACA,SACA,kBACA,eACA,wBACA,cACA,kBACA,cACA,qBACA,WACA,gBACA,aACA,sBACA,YACA,kBACA,YACA,YACA,UACA,QAEA,QACA,eACA,oBACA,iBACA,OACA,YACA,2BACA,cACA,iBACA,UACA,oBACA,eACA,cACA,eACA,QACA,SACA,WACA,wBACA,YACA,oBACA,mBACA,YACA,eACA,qBACA,WACA,kBACA,OACA,mBACA,qBACA,qBACA,iBACA,eACA,uBACA,oBACA,mBACA,mBACA,iBACA,cACA,eACA,cACA,cACA,cACA,aACA,qBACA,mBACA,eACA,kBACA,mBACA,eACA,gBACA,cACA,oBACA,cACA,gBACA,iBACA,gBAEA,QACA,sBACA,mBACA,kBACA,gBAEA,QAEE4J,GAAyB5J,EAAc,CAAC,2BACxC6J,GAAiB7J,EAAc,CACjC,OACA,8BACA,uBACA,uBACA,sCAEA,kBAEE8J,GAAmB9J,EAAc,CACnC,kCACA,gBACA,yBACA,kBAEEH,GAAO,CACT5H,KAAM,OACNoL,iBAAkB,CAChBP,eAAgB0G,GAChBzG,gBAAiB,IAAI0G,MAAqBC,MAA4BC,IACtEzG,sBAAuB0G,GACvBzG,cAAe0G,GACfzG,gBAAiB0G,GACjBrB,aAAa,EACbnF,iBAAkB+F,GAClB9F,kBAAmB+F,GACnB9F,sBAAuB+F,GAEvB7F,YAAa,CACX,WACA,CAAEC,MAAO,WAAYC,SAAU,CAAC,MAChC,CAAED,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,IAE1DC,WAAY,CAAC,MACbC,WAAY,CAAEsC,MAAO,IAAKC,KAAM,IAAKoC,sBAAsB,GAC3DrE,cAAe,CACb,CAAEC,MAAO,sBACT,CAAEX,MAAO,WAAYC,SAAU,CAAC,KAAMC,eAAe,GACrD,CAAEF,MAAO,WAAYC,SAAU,CAAC,KAAMC,eAAe,GACrD,CAAEF,MAAO,KAAMC,SAAU,CAAC,KAAMC,eAAe,IAEjDI,WAAY,CAAEC,YAAY,GAC1BM,iBAAkB,CAAC,KAAM,KACzBC,UAAW,CACT,IACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,IACA,OAGFC,YAAamD,IAEflD,cAAe,CACbC,eAAgB,IAAI8E,MAA4BC,IAChD1G,sBAAuB0G,KAKvBI,GAAa,CAEf,QACA,MACA,OACA,UACA,YACA,YACA,eACA,YACA,sBACA,eACA,iBACA,cACA,iBACA,eACA,gBACA,eACA,eACA,kBACA,eACA,YACA,YACA,aACA,iBACA,gBACA,YACA,cACA,eACA,eACA,gBACA,gBACA,aACA,aACA,YACA,gBACA,iBACA,iBACA,cACA,OACA,OACA,QACA,MACA,SACA,gBACA,gBACA,UACA,YACA,UACA,SACA,UACA,YACA,WACA,UACA,OACA,cACA,eACA,YACA,WACA,YACA,WACA,SACA,UACA,WACA,iBACA,sBACA,wBACA,MACA,QACA,QACA,SACA,YACA,OACA,kBACA,eACA,mBACA,gBACA,kBACA,mBACA,gBACA,oBACA,iBACA,oBACA,iBACA,SACA,cACA,UACA,aACA,kBAEA,eACA,cACA,MACA,cACA,QACA,WACA,YACA,QACA,YACA,kBACA,QACA,aACA,SACA,UACA,UACA,SACA,WACA,YACA,WACA,WACA,WACA,MACA,aACA,OACA,QACA,SACA,KACA,MACA,QACA,QACA,MACA,OACA,SACA,OACA,SACA,kBACA,gBACA,eACA,gBACA,sBACA,MACA,YACA,QACA,WACA,YACA,aACA,UACA,SACA,UACA,YACA,QACA,SACA,MACA,OACA,aACA,gBACA,qBACA,sBACA,gBACA,eACA,eACA,aACA,gBACA,gBACA,iBACA,gBACA,gBACA,QACA,eACA,KACA,cACA,WACA,WACA,QACA,UACA,SACA,OACA,kBACA,kBACA,cACA,iBACA,kBACA,iBACA,eACA,iBACA,aACA,gBACA,iBACA,gBACA,cACA,SACA,UACA,UACA,QACA,aACA,QACA,SACA,cACA,eACA,OACA,MACA,QACA,OACA,SACA,aACA,cACA,kBACA,gBACA,YACA,aACA,mBACA,SACA,WACA,MACA,MACA,QACA,UACA,SACA,YACA,SACA,SACA,WACA,WACA,WACA,OACA,QAEA,QACA,OACA,WACA,eACA,gBACA,UACA,WACA,iBACA,cAIA,QAIEC,GAAY,CAEd,SACA,MACA,QACA,UACA,MACA,MACA,QACA,KACA,MACA,KACA,QACA,UACA,SACA,UACA,QACA,SACA,QACA,KACA,OACA,OACA,OACA,UACA,UACA,aACA,SACA,YACA,UACA,WACA,aACA,QACA,SACA,UACA,WACA,UACA,YACA,UACA,YACA,SACA,UACA,OACA,WACA,WACA,KACA,OACA,OACA,UACA,OACA,MACA,QACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,SACA,QACA,UACA,QACA,YACA,MACA,QACA,OACA,MACA,WACA,SACA,QACA,QACA,SACA,MACA,OACA,SACA,KACA,SACA,QACA,KACA,UACA,YACA,QACA,QACA,SACA,QACA,SACA,YACA,OACA,KACA,YACA,aACA,OACA,MACA,OACA,WACA,QACA,WACA,OACA,OACA,MACA,UACA,QACA,OACA,QACA,MACA,MACA,UACA,UACA,eACA,QACA,QACA,UACA,YACA,OACA,KACA,KACA,MACA,YACA,OACA,QACA,SACA,SACA,SACA,KACA,SACA,UACA,KACA,QACA,SACA,QACA,OACA,QACA,YACA,WACA,OACA,OACA,YACA,UACA,UACA,UACA,YACA,QACA,YACA,SACA,QACA,MACA,QACA,SACA,SACA,UACA,SACA,YACA,SACA,QACA,OACA,WACA,MACA,OACA,YACA,YACA,SACA,QACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,aACA,SACA,SACA,OACA,OACA,KACA,OACA,cACA,UACA,OACA,WACA,YACA,QACA,QACA,SACA,UACA,SACA,QACA,SACA,SACA,MACA,OACA,QACA,WACA,QACA,SACA,SACA,MACA,OACA,OACA,QACA,QACA,SACA,OACA,SACA,OACA,OAEEC,GAAa,GAYbC,GAAkBlK,EAAc,CAAC,4BACjCmK,GAAmBnK,EAAc,CAEnC,OACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,QACA,SAGA,cACA,SAEA,MAEA,aACA,0BACA,aACA,SAEA,OACA,SACA,cAEE4E,GAAiB5E,EAAc,CAEjC,SAEA,cAEA,aAEA,SACA,cACA,oBACA,cACA,qBACA,oBACA,kBACA,eACA,uBACA,eACA,kBACA,gBACA,aACA,qBACA,aACA,UACA,mBACA,UACA,QACA,QACA,UACA,SACA,uBACA,YACA,kBACA,oBACA,SAEA,MACA,qBACA,OACA,uBAEEoK,GAAyBpK,EAAc,CAAC,cAAe,eAAgB,oBACvEqK,GAAiBrK,EAAc,CAAC,OAAQ,8BAA+B,eACvEsK,GAAmBtK,EAAc,CAAC,oCAClCX,GAAO,CACTpH,KAAM,OACNoL,iBAAkB,CAChBP,eAAgBoH,GAChBnH,gBAAiB,IAAIoH,MAAqBvF,IAC1C1B,sBAAuBkH,GACvBjH,cAAekH,GACfjH,gBAAiBkH,GACjB7B,aAAa,EACbnF,iBAAkB0G,GAClBzG,kBAAmB0G,GACnBzG,sBAAuBuG,GAIvBrG,YAAa,CAAC,QAAS,SACvBI,WAAY,CAAC,MACbL,YAAa,CAAC,KAAM,MACpBQ,WAAY,CAAEC,YAAY,EAAMqG,SAAU,CAAC,KAAMpG,MAAO,CAAC,MACzDK,iBAAkB,CAAC,IAAK,MACxBC,UAAW,CAAC,IAAK,KAAM,IAAK,OAE9BE,cAAe,CACbC,oBAKA4F,GAAY,CAGd,MACA,QACA,YACA,MACA,QACA,MACA,MACA,QACA,KACA,MACA,KACA,YACA,SACA,MACA,QACA,UACA,QACA,OACA,OACA,QACA,OACA,KACA,OAEA,OACA,UACA,UACA,OACA,UACA,cACA,YACA,QACA,QACA,UACA,WACA,UACA,UACA,UACA,UACA,SACA,YACA,WACA,WACA,UACA,WACA,cACA,UACA,UACA,QACA,QACA,SACA,UACA,SACA,cACA,WACA,OACA,MACA,UACA,UACA,SACA,SACA,OACA,gBACA,WACA,OACA,WACA,UACA,OACA,QACA,QACA,MACA,SACA,SACA,YACA,aACA,YACA,UACA,SACA,OACA,WACA,QACA,QACA,QACA,MACA,SACA,QACA,OACA,OACA,WACA,UACA,OACA,QACA,QACA,OACA,SACA,OACA,SACA,OACA,aACA,KACA,YACA,KACA,YACA,QACA,UACA,YACA,UACA,WACA,SACA,eACA,YACA,YACA,WACA,OACA,aACA,KACA,YACA,OACA,WACA,QACA,UACA,SACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,UACA,QACA,OACA,OACA,MACA,MACA,SACA,SACA,QACA,MACA,QACA,SACA,MACA,OACA,SACA,QACA,WACA,OACA,MACA,WACA,SACA,MACA,aACA,SACA,MACA,SACA,OACA,SACA,UACA,UACA,cACA,cACA,cACA,gBACA,YACA,SACA,SACA,eACA,WACA,YACA,UACA,KACA,KACA,OACA,SACA,OACA,WACA,SACA,KACA,SACA,UACA,QACA,WACA,eACA,SACA,UACA,SACA,MACA,aACA,UACA,kBACA,YACA,aACA,YACA,SACA,OACA,YACA,SACA,QACA,UACA,YACA,SACA,QACA,QACA,OACA,SACA,MACA,YACA,MACA,YACA,SACA,WACA,SACA,SACA,YACA,UACA,SACA,WACA,MACA,SACA,OACA,YACA,MACA,MACA,MACA,SACA,UACA,SACA,OACA,WACA,WACA,eACA,MACA,QACA,QACA,OACA,SACA,OACA,SACA,MACA,UACA,UACA,UACA,WACA,WACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,cACA,eACA,gBACA,UACA,MACA,UACA,UACA,QACA,MACA,MACA,OACA,OACA,gBACA,gBACA,kBACA,kBACA,KACA,WACA,UACA,gBACA,UACA,OACA,MACA,MACA,MACA,QACA,QACA,SACA,WACA,YACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,WACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,UACA,QACA,OACA,QAEEC,GAAa,CAEf,QACA,aACA,SACA,YACA,eACA,YACA,OACA,oBACA,YACA,YACA,YACA,OACA,UACA,SACA,QACA,MACA,eACA,gBACA,OACA,wBACA,gBACA,6BACA,qBACA,gBACA,QACA,QACA,cACA,SACA,WACA,WACA,YACA,MACA,YACA,SACA,UACA,YAIEC,GAAa,CAGf,MACA,OACA,OACA,OACA,QACA,SACA,OACA,MACA,OACA,MACA,QACA,KACA,MACA,MACA,QACA,QACA,YACA,QACA,OACA,MACA,OACA,OACA,MACA,OACA,QACA,eAEA,MACA,SACA,UACA,QACA,OACA,QACA,cACA,YACA,UACA,YACA,iBACA,gBACA,UACA,OACA,QACA,UACA,SACA,YACA,QACA,OACA,QACA,uBACA,iBACA,mBACA,QACA,QACA,SACA,eAEA,aACA,eACA,oBACA,aACA,UACA,UACA,WACA,iBACA,iBACA,WACA,WACA,kBACA,kBACA,QACA,kBACA,kBACA,UACA,eACA,UACA,eACA,kBACA,gBACA,gBACA,QACA,YAEA,WACA,QAEA,WACA,aACA,OACA,cACA,UACA,UACA,YACA,WACA,kBACA,kBACA,WACA,YACA,cACA,eACA,mBACA,mBACA,mBACA,kBACA,UACA,UACA,UACA,gBACA,SACA,gBACA,WACA,WACA,YACA,gBACA,iBACA,eACA,kBACA,gBACA,gBACA,YACA,SAEA,YACA,cACA,aAEA,cACA,UACA,gBACA,+BACA,MAEA,sBAEA,aACA,sBACA,cACA,aACA,cACA,gBACA,aACA,kBACA,qBACA,yBACA,iBAEA,iBACA,YACA,QACA,UACA,aACA,eACA,iBACA,kBACA,OACA,eACA,aACA,aACA,YACA,SACA,WACA,eACA,aACA,YACA,YACA,WACA,QACA,WACA,UACA,cACA,eACA,WACA,eAEA,SACA,OACA,WACA,QAEA,WACA,QACA,SACA,MACA,OAEA,cACA,WACA,aACA,MACA,OACA,UAEA,MACA,UACA,OACA,SACA,SACA,QACA,YACA,aACA,YACA,aACA,QACA,WACA,WACA,cACA,OACA,MACA,SACA,MACA,kBACA,kBACA,eACA,OACA,aACA,iBACA,aACA,UACA,YACA,YACA,WACA,WACA,WACA,sBACA,iBACA,eACA,gBACA,aACA,gBACA,sBACA,mBACA,sBACA,qBACA,sBACA,iBACA,SACA,aACA,cACA,MACA,UACA,WACA,WAGA,cACA,MACA,aACA,OACA,QACA,kBACA,aAEA,QACA,WACA,MACA,WACA,QAEA,KACA,mBACA,aACA,WACA,YAIEC,GAAkB3K,EAAc,CAAC,qCACjC4K,GAAmB5K,EAAc,CAEnC,OACA,OACA,QACA,WACA,SACA,eACA,sBACA,SACA,uBACA,kBAGA,2BACA,SAEA,MAEA,eACA,4BACA,aAEA,cAEE6K,GAA0B7K,EAAc,CAC1C,+HAEE8K,GAAyB9K,EAAc,CAEzC,mHACA,2BAEA,gBAEA,qBAEA,aAEA,cACA,MACA,oDACA,SACA,YACA,gBAEA,iBAEA,aACA,QACA,aACA,UACA,SACA,YACA,OACA,eAEE+K,GAAyB/K,EAAc,CAAC,cAAe,SAAU,cACjEgL,GAAiBhL,EAAc,CACjC,OACA,qCACA,uBACA,uBACA,6CAEA,0BAEEiL,GAAmBjL,EAAc,CACnC,kCACA,YACA,2BAEEV,GAAQ,CACVrH,KAAM,QACNoL,iBAAkB,CAChBP,eAAgB6H,GAChB5H,gBAAiB,IAAI6H,MAAqBC,MAA4BC,IACtE5H,sBAAuB6H,GACvB5H,cAAe6H,GACf5H,gBAAiB6H,GACjBxC,aAAa,EACbnF,iBAAkBkH,GAClBjH,kBAAmBkH,GACnBjH,sBAAuBkH,GACvBhH,YAAa,CACX,CAAEC,MAAO,QAASC,SAAU,CAAC,MAC7B,CAAED,MAAO,MAAOC,SAAU,CAAC,OAK7BE,WAAY,CAAC,SACbC,WAAY,CAAEuC,KAAM,MACpBjC,cAAe,CAAC,CAAEC,MAAO,kCACzBL,WAAY,CAAEsG,SAAU,CAAC,KAAMpG,MAAO,CAAC,MACvCoC,WAAY,GAEZ9B,UAAW,CACT,KACA,KACA,IACA,KACA,KAEA,KACA,KACA,KACA,IACA,MAEFC,YAAawG,IAEfvG,cAAe,CACbwG,qBAAsB,CAAC,KACvBvG,eAAgB,IAAIiG,MAA4BC,IAChD7H,sBAAuB6H,KAG3B,SAASI,GAAarG,GACpB,IAAIuG,EAAwBtJ,GAC5B,OAAO+C,EAAOlM,IAAK1P,GACbiZ,GAAQG,IAAIpZ,IAAUiZ,GAAQE,GAAGgJ,GAC5B5M,EAAcJ,EAAe,GAAInV,GAAQ,CAAEqH,KAAM,sBAEtDmS,GAAWxZ,EAAMqH,QACnB8a,EAAwBniB,GAEnBA,IAKX,IAAIoiB,GAAc,CAIhB,MACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,UACA,MACA,OACA,OACA,MACA,OACA,UACA,MACA,MACA,YACA,QACA,MACA,MACA,KACA,MACA,QACA,YACA,MACA,KACA,QACA,UACA,SACA,QACA,QACA,UACA,OACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,aACA,QACA,eAEA,MACA,QACA,aACA,QACA,mBACA,cACA,MACA,SACA,YACA,SACA,UACA,OACA,SACA,QACA,OACA,QACA,MACA,YACA,eACA,UACA,cACA,qBACA,WACA,cACA,gBACA,iBACA,eACA,iBACA,iBACA,wBACA,wBACA,SACA,UACA,UACA,QACA,OACA,QACA,aACA,UACA,cACA,aACA,kBACA,kBACA,SACA,SACA,YACA,WACA,SACA,YACA,OACA,SACA,QAEA,YACA,aACA,QACA,UACA,eACA,aACA,SACA,SACA,UACA,WACA,SACA,QACA,MACA,eACA,UACA,WACA,QACA,UACA,WACA,SACA,SACA,SACA,SACA,aACA,SACA,YACA,OAEA,YACA,aACA,UACA,SACA,eACA,UACA,WACA,UACA,YAEA,eACA,iBACA,iBACA,wBACA,wBAEA,UACA,UACA,YACA,eAGA,kBACA,eACA,eACA,oBACA,WACA,YACA,aACA,UACA,WACA,eACA,gBACA,mBACA,YACA,iBACA,YACA,gBACA,YACA,iBACA,mBACA,MACA,WACA,eACA,iBACA,sBACA,YACA,eACA,wBAEA,aACA,YACA,aAEA,OACA,YACA,MACA,SACA,SACA,WACA,WACA,SACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,SACA,QACA,UACA,QACA,SACA,QACA,QAEA,SACA,YACA,SACA,OACA,WACA,aACA,mBACA,mBACA,UACA,UACA,UACA,cAEA,QAEA,oBACA,wBACA,oBACA,mBACA,SACA,UACA,mBACA,kBACA,YACA,YACA,QACA,aACA,cACA,iBACA,oBACA,WACA,YACA,YACA,cACA,YACA,WACA,UACA,aACA,aACA,UACA,gBACA,uBAEA,OAEA,gBACA,sBACA,kBACA,wBACA,gCACA,UACA,eACA,qBACA,6BACA,gBACA,sBACA,8BACA,SACA,eACA,qBACA,6BACA,SACA,aACA,YACA,aACA,YACA,YACA,WACA,QACA,UACA,eACA,WACA,qBACA,6BACA,8BACA,QACA,eAEA,gBACA,YACA,uBACA,4BACA,qBACA,oBACA,qBACA,aACA,kBACA,qBACA,0BACA,eACA,eACA,mBACA,oBACA,oBACA,uBACA,mBACA,sBACA,mBACA,yBACA,4BACA,yBACA,4BACA,sBACA,wBACA,2BACA,eACA,YACA,gBACA,oBACA,kBACA,qBACA,eACA,WACA,sBACA,2BACA,oBACA,mBACA,oBACA,YACA,iBACA,oBACA,yBACA,cACA,kBACA,mBACA,uBACA,0BACA,mBACA,iBACA,oBACA,cACA,cACA,UACA,WACA,eAEA,UACA,UACA,UACA,SAGA,WACA,WACA,QACA,SAEA,YACA,eACA,YACA,aACA,aACA,eACA,cACA,cACA,iBACA,kBACA,gBACA,eACA,gBACA,kBACA,cACA,cACA,kBACA,aACA,SAEA,UACA,QACA,YACA,YACA,aACA,cACA,QACA,YACA,YAGA,YACA,MACA,UACA,SACA,UACA,WACA,UACA,WACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,WACA,YACA,mBACA,WACA,kBACA,MACA,MACA,OACA,kBACA,kBACA,eACA,YACA,sBACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WAEA,SACA,aACA,cACA,aACA,MACA,UACA,WACA,WACA,UACA,WACA,SAEA,YACA,aACA,cACA,MACA,aACA,OACA,YACA,QACA,eACA,OACA,aAEA,kBACA,sBAEA,aACA,aACA,kBACA,kBACA,mBACA,gBACA,eACA,iBACA,kBACA,eACA,cACA,2BACA,uBACA,yBACA,qCACA,yBACA,yBACA,uBACA,yBACA,uBACA,2BACA,sBACA,qBACA,mBACA,mBACA,mBACA,mBACA,cACA,kBACA,iBACA,mBACA,0BACA,oBACA,wBACA,kBACA,oBACA,2BACA,qBACA,sBACA,qBACA,iCACA,qBACA,yBACA,8BACA,uBACA,cACA,qBACA,4BACA,qCACA,yBACA,kBACA,kBACA,wBACA,wBACA,iBACA,yBACA,0BACA,oBACA,kBACA,iBACA,cACA,qBACA,gCACA,0BACA,+BACA,wBACA,0BACA,mBACA,yBACA,wBACA,oBACA,8BACA,wBACA,yBACA,yBACA,sBACA,2BACA,iCACA,kBACA,mBACA,mBACA,+BACA,0BACA,yBACA,sBACA,mBACA,0BACA,wBACA,0BACA,4BACA,YACA,qBACA,yBACA,2BACA,kCACA,iBACA,kBACA,sBACA,eACA,oBACA,cACA,kBACA,kBACA,aACA,iBACA,aACA,kBACA,aACA,aACA,eACA,2BACA,wBACA,oBACA,qBACA,qBACA,cACA,2BACA,OACA,UAEA,yBACA,4BACA,uBACA,eACA,kBACA,yBACA,mBACA,0BACA,qBACA,yBACA,4BACA,wBACA,+BACA,uBACA,oBACA,8BACA,wBACA,iBACA,mCACA,oCACA,qCACA,sCACA,0BACA,2BACA,4BACA,qBACA,mBACA,2BACA,qBACA,uBACA,gCACA,8BACA,kBACA,kBACA,oBACA,0BACA,0BACA,yBACA,gCACA,0BACA,qCACA,8BACA,sCACA,+BACA,iCACA,0BACA,YACA,eACA,eACA,eACA,yBACA,oBACA,oBACA,aACA,sBACA,eACA,uBACA,uBACA,mBACA,iBACA,gCACA,+BACA,6BACA,4BACA,iCACA,yCACA,yCACA,sCACA,sCACA,mCACA,mCACA,8BACA,oBACA,gBACA,iBACA,kBACA,eACA,iBACA,gBACA,qBACA,gBACA,uBACA,yBACA,uBACA,8BACA,4BACA,mCACA,kBACA,yBACA,kBACA,sBACA,uBACA,aAEA,qCACA,0BACA,iCAEA,gCACA,mCACA,qCACA,wCACA,wBAEA,oBAEA,QAIEC,GAAa,CAEf,MAEA,UAEA,UAEA,MAEA,MAEA,KAEA,MAEA,aAEA,gBAEA,UAEA,SAEA,OAEA,OAEA,OAEA,QAEA,UAEA,YAEA,SAEA,eAEA,aAEA,SAEA,QAEA,kBAEA,eAEA,eAEA,iBAEA,eAEA,oBAEA,eAEA,MAEA,UAEA,aAEA,OAEA,WAEA,KAEA,OAEA,MAEA,SAEA,SAEA,QAEA,QAEA,SAEA,MAEA,UAEA,SAEA,OAEA,OAEA,QAEA,QAEA,SAEA,OAEA,QAEA,KAEA,YAEA,QAEA,QAEA,YAEA,OAEA,KAEA,SAEA,OAEA,UAEA,UAEA,OAEA,OAEA,QAEA,YAEA,iBAEA,SAEA,QAEA,UAEA,MAEA,UAEA,OAEA,SAEA,SAEA,KAEA,OAEA,KAEA,QAEA,MAEA,QAEA,OAEA,WAEA,UAEA,UAEA,aAEA,YAEA,QAEA,MAEA,SAEA,SAEA,eAEA,UAEA,OAEA,YAEA,QAEA,cAEA,OAEA,KAEA,WAEA,OAEA,QAEA,SAEA,OAEA,QAEA,SAEA,WAEA,UAEA,OAEA,QAEA,SAEA,OAEA,SAEA,UAEA,QAGEC,GAAc,CAEhB,QAEA,SAEA,MAEA,cACA,OAEA,UAEA,OAEA,YAEA,oBACA,UAEA,MAEA,SACA,OACA,QAEA,MAEA,UAEA,WAEA,QAEA,UAEA,YAEA,OAEA,WAEA,OACA,OAEA,YAEA,cAEA,UAEA,MACA,QAIEC,GAAmBxL,EAAc,CAAC,4BAClCyL,GAAoBzL,EAAc,CAEpC,mBACA,OACA,QACA,4BACA,SACA,SACA,eACA,WACA,QACA,SACA,uBACA,wDAGA,cACA,SACA,iBAEA,MAEA,cAEE0L,GAA0B1L,EAAc,CAC1C,gFAEE2L,GAAyB3L,EAAc,CAEzC,0DACA,6CAEA,gBACA,mBAEA,cAEA,qBAEA,yBAEA,iCACA,gCACA,kBACA,YACA,+BACA,4BACA,iBACA,gBAEA,uBAEA,wBAGA,0BAEA,aACA,QAEA,QACA,kBACA,kBACA,mBACA,iBACA,2BACA,eACA,sBACA,kBACA,6BACA,sBACA,iBACA,cACA,cACA,iBACA,qBACA,0BACA,iBACA,uBACA,wBACA,eACA,kBACA,oBACA,aACA,gBACA,aACA,eACA,iBACA,eACA,mBACA,qBACA,eACA,mBACA,kCACA,+BACA,2BACA,6BACA,gBACA,aACA,aACA,qBACA,aACA,UACA,QACA,OACA,aACA,QACA,UACA,SACA,kBACA,OACA,uBACA,mBACA,cACA,mBACA,oBACA,kBACA,gBACA,uBACA,mBACA,8BACA,uBACA,kBACA,eACA,eACA,kBACA,kBACA,wBACA,yBACA,gBACA,mBACA,qBACA,cACA,cACA,gBACA,kBACA,gBACA,oBACA,sBACA,oBACA,mCACA,gCACA,4BACA,8BACA,mBACA,iBACA,cACA,cACA,sBACA,aACA,UACA,UACA,qBACA,iBACA,YACA,iBACA,kBACA,gBACA,cACA,qBACA,iBACA,4BACA,qBACA,gBACA,aACA,aACA,gBACA,yBACA,gBACA,sBACA,uBACA,aACA,cACA,iBACA,mBACA,YACA,eACA,YACA,cACA,gBACA,cACA,kBACA,oBACA,kBACA,iCACA,8BACA,0BACA,4BACA,iBACA,eACA,YACA,YACA,oBACA,YACA,UACA,UACA,QACA,QACA,wBACA,SACA,OACA,OACA,OACA,SACA,UACA,sBACA,iBACA,4BACA,UACA,oBACA,QACA,SACA,WACA,oBACA,wBACA,YACA,iBACA,cACA,kBACA,WACA,4BACA,kBACA,OACA,oBACA,WACA,WAEE4L,GAA0B5L,EAAc,CAC1C,yBACA,0BACA,+BAEE6L,GAAkB7L,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,+CAEE8L,GAAoB9L,EAAc,CACpC,cACA,8CACA,gDACA,kCAEA,gDAEA,2BAEET,GAAa,CACftH,KAAM,aACNoL,iBAAkB,CAChBP,eAAgB0I,GAChBzI,gBAAiB,IAAI0I,MAAsBC,MAA4BC,IACvEzI,sBAAuB0I,GACvBzI,cAAe0I,GACfzI,gBAAiB0I,GACjBxI,iBAAkBgI,GAClB/H,kBAAmBgI,GACnB/H,sBAAuB6H,GACvBnE,qBAAqB,EACrBzD,YAAa,CAAC,MACdC,YAAa,CACX,KACA,CAAEC,MAAO,QAASC,SAAU,CAAC,OAC7B,CAAED,MAAO,WAAYC,SAAU,CAAC,KAAMC,eAAe,GACrD,CAAEF,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,IAE1DC,WAAY,CAAC,CAAEH,MAAO,QAASC,SAAU,CAAC,QAC1CG,WAAY,CAAEuC,KAAM,KACpBrC,WAAY,CAAEsG,SAAU,CAAC,MACzB9F,UAAW,CAET,IACA,IACA,KACA,MACA,IAEA,KAEA,IACA,IACA,IACA,IACA,KACA,KAEA,MACA,MACA,OACA,OAEA,MACA,KACA,KACA,MACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,KACA,KACA,KAEA,IACA,KACA,KACA,KACA,MACA,KACA,MACA,KAEA,KAEA,MACA,MAEA,KACA,MACA,MACA,OAEA,IACA,KACA,KACA,MAEA,MAEA,KAEA,MACA,KACA,KAEA,KACA,KACA,MACA,MACA,OACA,OACA,QACA,QAEA,KACA,MAGJE,cAAe,CACbwG,qBAAsB,CAAC,KAAM,KAC7BvG,eAAgB,IAAI8G,MAA4BC,IAChD1I,sBAAuB0I,KAKvBI,GAAc,CAEhB,YACA,8BACA,MACA,QACA,UACA,MACA,SACA,MACA,kBACA,cACA,aACA,MACA,WACA,UAEA,QACA,eACA,gBACA,mBACA,iBACA,WAEA,UACA,SACA,WACA,UAEA,WACA,SACA,WACA,QACA,MACA,OACA,SAEA,aACA,eACA,mBACA,eACA,eACA,oBACA,WACA,qBACA,uBACA,iBACA,UACA,WACA,YACA,aACA,UACA,UACA,eACA,WACA,iBACA,WACA,UACA,YACA,gBACA,qBACA,4BACA,kBACA,uBACA,4BACA,WACA,eACA,QAEA,UACA,WACA,eACA,cACA,WACA,UACA,cACA,YACA,YACA,eACA,YACA,aACA,cACA,aACA,cACA,sBACA,gBACA,eACA,YACA,aACA,eACA,cACA,cACA,oBACA,aACA,cACA,cACA,YACA,kBACA,aACA,aACA,cACA,cACA,aACA,eACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBACA,gBACA,kBACA,iBACA,cACA,kBACA,aACA,cACA,aACA,YACA,kBACA,cACA,wBACA,0BACA,OACA,kBACA,cACA,eACA,iBACA,aACA,UACA,UACA,WACA,WACA,aACA,YACA,mBACA,sBACA,eACA,eACA,iBACA,WACA,YACA,YACA,aACA,iBACA,aACA,cACA,aACA,cACA,UACA,gBACA,aACA,YACA,OACA,UACA,UACA,OACA,UACA,UACA,OACA,UACA,UACA,eAEA,WACA,YACA,WACA,MACA,MACA,OACA,OAEA,MACA,oBACA,kBACA,cAEA,gBACA,sBACA,oBACA,kCACA,yBACA,aACA,iBAEA,MACA,OACA,OACA,OACA,QACA,OACA,UACA,OACA,MACA,MACA,UACA,OACA,QACA,SACA,MACA,QACA,KACA,MACA,MACA,KACA,QACA,UACA,SACA,QACA,MACA,OACA,OACA,MACA,SACA,QAEA,gBAEA,QACA,YACA,QACA,qBACA,cACA,mBACA,YACA,MACA,UACA,SACA,QACA,aACA,UACA,OACA,QACA,MACA,SACA,QACA,OACA,OACA,QACA,aACA,eACA,WACA,cACA,gBACA,eACA,eACA,iBACA,gBACA,SACA,UACA,YACA,UACA,QACA,UACA,aACA,SACA,SACA,YACA,UACA,YACA,OACA,QAEA,oBACA,gBACA,WACA,YACA,aACA,UACA,aACA,WACA,aACA,YACA,YACA,cACA,aACA,cAEA,MACA,QACA,YACA,aACA,cACA,aACA,MACA,OACA,UACA,MACA,SACA,MACA,YACA,QACA,eACA,kBACA,kBACA,OACA,kBACA,aACA,cACA,aACA,MACA,WACA,UAEA,OACA,UACA,UACA,UACA,YACA,kBACA,sBAEA,wBACA,0BACA,uBACA,kBACA,oBACA,uBACA,iBACA,aAEA,sBACA,mBACA,oBACA,iBACA,kBACA,eACA,kBACA,2BACA,yBACA,uBACA,sBACA,iBACA,cACA,6BACA,0BACA,gCACA,qBACA,kBACA,oBACA,mBACA,uBACA,eACA,YACA,OACA,WAIEC,GAAa,CAEf,SACA,SACA,MACA,iBACA,MACA,KACA,MACA,gBACA,SACA,UACA,SACA,OACA,QACA,SACA,aACA,SACA,QACA,UACA,aACA,UACA,SACA,OACA,UACA,WACA,KACA,SACA,SACA,UACA,aACA,WACA,QACA,MACA,UACA,SACA,OACA,OACA,gBACA,gBACA,QACA,WACA,SACA,QACA,KACA,YACA,QACA,OACA,KACA,SACA,WACA,UACA,OACA,QACA,YACA,iBACA,MACA,OACA,QACA,UACA,MACA,MACA,UACA,OACA,QACA,MACA,UACA,SACA,MACA,MACA,KACA,OACA,OACA,QACA,QACA,WACA,WACA,YACA,UACA,cACA,UACA,UACA,UACA,aACA,YACA,SACA,UACA,UACA,UACA,WACA,OACA,SACA,QACA,MACA,OACA,OACA,YACA,KACA,MACA,WACA,OACA,SACA,QACA,UACA,SACA,UAEA,gBACA,iBACA,eACA,aACA,cACA,WACA,SACA,eACA,aACA,mBACA,eACA,eACA,UACA,aACA,aACA,kBAEA,WACA,aACA,WACA,SACA,aAEA,SACA,MACA,YACA,aACA,YACA,OACA,OACA,UACA,MAEA,gBACA,cACA,YACA,WACA,uBACA,oBACA,gBAEA,QACA,OACA,OACA,OAEA,WACA,YACA,SACA,MAEA,MACA,OACA,WACA,QACA,WACA,MACA,UACA,WACA,WACA,YACA,UACA,UAGA,eACA,aACA,WAEA,OACA,OACA,MACA,YAGA,eASEC,GAAc,CAEhB,QACA,SACA,SACA,OACA,oBACA,YACA,UACA,MACA,OACA,OACA,OACA,UACA,QACA,UACA,WACA,WACA,OACA,UACA,WAIEC,GAAmBlM,EAAc,CAAC,4BAClCmM,GAAoBnM,EAAc,CAEpC,mBACA,OACA,QACA,WACA,SACA,eACA,WACA,QACA,SAGA,cACA,SAEA,QAEEoM,GAA2BpM,EAAc,CAC3C,mFAEEqM,GAA0BrM,EAAc,CAE1C,0CAEA,SAEA,gBAEA,yBAEA,cACA,qBACA,eACA,gBACA,YACA,gBACA,eACA,OAEA,SAGA,mBAEA,QACA,iBACA,kBACA,2BACA,cACA,0BACA,kBACA,eACA,aACA,UACA,UACA,sBACA,sBACA,QACA,OACA,SACA,QACA,SACA,OACA,kBACA,mBACA,2BACA,yBACA,wBACA,kBACA,eACA,iBACA,eACA,mBACA,gBACA,cACA,aACA,UACA,iBACA,gBACA,iBACA,gBACA,aACA,eACA,aACA,yBACA,iBACA,cACA,YACA,YACA,OACA,UACA,UACA,QACA,QACA,OACA,UACA,4BACA,QACA,SACA,WACA,cACA,4BACA,8BACA,OACA,sBACA,aACA,kBACA,iBACA,aACA,YACA,oBACA,SACA,WAEEsM,GAA0BtM,EAAc,CAAC,cAAe,SAAU,YAAa,UAC/EuM,GAAkBvM,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,+CAEEwM,GAAoBxM,EAAc,CAEpC,UAEA,eACA,iBAEA,2BAEER,GAAW,CACbvH,KAAM,WACNoL,iBAAkB,CAChBP,eAAgBoJ,GAChBnJ,gBAAiB,IAAIoJ,MAAsBC,MAA6BC,IACxEnJ,sBAAuBoJ,GACvBnJ,cAAeoJ,GACfnJ,gBAAiBoJ,GACjBlJ,iBAAkB0I,GAClBzI,kBAAmB0I,GACnBzI,sBAAuBuI,GACvBrI,YAAa,CAAC,SACdI,WAAY,CAAC,SACbC,WAAY,CAAEsC,MAAO,KACrBpC,WAAY,CAAEsG,SAAU,CAAC,MACzB9F,UAAW,CACT,IACA,IACA,IACA,KACA,MACA,IACA,IAEA,IACA,KACA,KACA,KACA,OAGJE,cAAe,CACbwG,qBAAsB,CAAC,MACvBvG,eAAgB,IAAIwH,MAA6BC,IACjDpJ,sBAAuBoJ,KAKvBI,GAAa,CAEf,MACA,QACA,MACA,QACA,UACA,MACA,OACA,MACA,UACA,KACA,MACA,KACA,gBACA,UACA,OACA,SACA,UACA,KACA,QACA,UACA,OACA,SACA,QACA,QACA,UACA,YACA,UACA,UACA,aACA,SACA,UACA,UACA,SACA,UACA,cACA,UACA,cACA,aACA,OACA,SACA,QACA,OACA,UACA,eACA,eACA,oBACA,eACA,OACA,WACA,YACA,MACA,eACA,UACA,SACA,YACA,OACA,WACA,MACA,cACA,YACA,WACA,aACA,MACA,OACA,SACA,UACA,SACA,WACA,SACA,SACA,WACA,WACA,UACA,QACA,QACA,SACA,SACA,aACA,QACA,cACA,YACA,MACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,QACA,QACA,WACA,OACA,KACA,SACA,SACA,KACA,QACA,UACA,QACA,SACA,cACA,YACA,OACA,KACA,QACA,OACA,OACA,aACA,UACA,OACA,UACA,OACA,OACA,QACA,OACA,QACA,WACA,OACA,QACA,UACA,QACA,UACA,QACA,SACA,QACA,OACA,YACA,aACA,UACA,KACA,MACA,OACA,QACA,KACA,OACA,SACA,UACA,KACA,QACA,MACA,QACA,eACA,OACA,WACA,UACA,YACA,QACA,YACA,cACA,aACA,UACA,UACA,WACA,YACA,UACA,aACA,aACA,QACA,QACA,QACA,eACA,eACA,UACA,SACA,aACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,OACA,QACA,WACA,SACA,MACA,OACA,SACA,SACA,SACA,OACA,YACA,QACA,kBACA,eACA,OACA,OACA,SACA,OACA,OACA,SACA,QACA,aACA,SACA,WACA,SACA,YACA,QACA,SACA,gBACA,YACA,aACA,OACA,KACA,QACA,WACA,cACA,eACA,OACA,OACA,WACA,YACA,YACA,UACA,SACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,SACA,OAEA,UACA,YACA,WACA,WACA,UACA,OACA,WACA,aACA,aACA,SACA,UACA,cACA,SACA,UACA,gBACA,QACA,WACA,eACA,QACA,cACA,cACA,SACA,QACA,QACA,gBACA,SACA,SACA,KACA,WACA,SACA,YACA,OACA,OACA,QACA,WACA,YACA,cAEEC,GAAc,CAEhB,QACA,SACA,SACA,UACA,OACA,OACA,OACA,MACA,UACA,SACA,QACA,MACA,UACA,WACA,OACA,MACA,UACA,OACA,QACA,WACA,SACA,SACA,gBACA,gBACA,YACA,UACA,WAKEC,GAAc,CAKhB,wBACA,oBACA,MACA,UACA,SACA,UACA,WACA,UACA,eACA,cACA,OACA,QACA,QACA,QACA,WACA,mBACA,YACA,aACA,QACA,QACA,cACA,WACA,cACA,WACA,OACA,aACA,MACA,SACA,OACA,MACA,SACA,aACA,aACA,oBACA,WAEA,MACA,SACA,aACA,cACA,MACA,UACA,WACA,WAEA,YACA,aACA,MACA,OACA,YACA,QACA,eACA,OACA,aAEA,QACA,iBACA,iBACA,eACA,kBACA,aACA,YACA,YACA,iBACA,eACA,eACA,cACA,iBACA,aACA,UACA,WACA,UACA,QACA,aAEA,aACA,aACA,aACA,cACA,kBACA,mBACA,WACA,aACA,aAEA,aACA,eACA,eACA,oBACA,oBACA,mBACA,WACA,cACA,sBACA,YACA,WACA,aACA,WACA,MACA,aACA,YACA,YACA,UACA,gBACA,qBACA,OACA,WACA,YACA,mBACA,gBACA,iBACA,mBACA,SACA,QACA,iBACA,WACA,MACA,UACA,SACA,iBACA,mBACA,mBACA,oBACA,UACA,eACA,oBACA,mBACA,QACA,YACA,cACA,cACA,eACA,iBACA,UACA,aACA,SACA,OAEA,YACA,kBACA,oBACA,mBACA,aACA,iBACA,UAEA,MACA,OACA,QACA,YACA,aACA,QACA,OACA,QACA,cACA,OACA,QACA,QACA,SACA,MACA,YACA,UACA,aACA,SACA,QACA,cACA,OACA,OACA,UACA,cACA,mBACA,MACA,SACA,YACA,OACA,MACA,OACA,MACA,QACA,kBACA,mBACA,eACA,UAEA,MACA,MACA,QACA,YACA,cACA,QACA,SACA,gBACA,gBACA,WACA,SACA,OACA,MACA,QACA,UACA,SACA,eACA,0BACA,yBACA,kBACA,QACA,QACA,YACA,SACA,cACA,QACA,OACA,SACA,cACA,KACA,SACA,MACA,QACA,QACA,OACA,QACA,OACA,QACA,aACA,eACA,MACA,MACA,8BACA,eACA,QACA,WACA,MACA,OACA,eACA,UACA,YACA,KACA,OACA,aACA,mBACA,WACA,WACA,MACA,QACA,SACA,UACA,cACA,OACA,QACA,SACA,UACA,iBACA,qBACA,cACA,iBACA,SACA,UACA,UACA,QACA,OACA,QACA,OACA,QACA,gBACA,YACA,MACA,OACA,OACA,YACA,aACA,qBACA,OACA,SACA,MACA,OACA,UACA,QACA,qBACA,QACA,OACA,QACA,SACA,YACA,kBACA,MACA,OACA,SACA,iBACA,mBACA,YACA,OACA,UACA,aACA,SACA,QACA,WACA,QACA,QACA,OACA,UACA,eACA,QACA,gBACA,eACA,cACA,YACA,aACA,eACA,cACA,eACA,WACA,WAEA,OAEA,WACA,UAIEC,GAAmB5M,EAAc,CAAC,4BAClC6M,GAAoB7M,EAAc,CAEpC,OACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,UACA,aACA,gBACA,QAGA,oCACA,SAGA,qCAGA,2BACA,2BAEE8M,GAA2B9M,EAAc,CAAC,4CAC1C+M,GAA0B/M,EAAc,CAE1C,0EAEA,yBAEA,cACA,cACA,0BACA,YACA,gBACA,eAEA,iBAEA,eACA,iBACA,aACA,kBACA,kBACA,gBACA,gBACA,YACA,eACA,eAEA,cACA,QACA,YACA,UAEA,WACA,UACA,gBACA,cACA,cACA,oBACA,oBACA,iBACA,iBACA,YACA,WACA,UACA,gBACA,mBACA,QACA,eACA,oBACA,iBACA,iBACA,kBACA,sBACA,cACA,qBACA,aACA,kBAEEgN,GAA0BhN,EAAc,CAC1C,yBACA,0BACA,+BAEEiN,GAAkBjN,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,6CAEA,4BACA,sCAEEkN,GAAoBlN,EAAc,CACpC,YACA,YACA,cACA,2BAEEL,GAAQ,CACV1H,KAAM,QACNoL,iBAAkB,CAChBP,eAAgB8J,GAChB7J,gBAAiB,IAAI8J,MAAsBC,MAA6BC,IACxE7J,sBAAuB8J,GACvB7J,cAAe8J,GACf7J,gBAAiB8J,GACjBzE,aAAa,EACbnF,iBAAkBmJ,GAClBlJ,kBAAmBmJ,GACnBlJ,sBAAuBmJ,GACvBlJ,YAAa,CAAC,MACdC,YAAa,CACX,QACA,QACA,CAAEC,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,GACxD,CAAEF,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,IAE1DC,WAAY,CAAC,MACbO,cAAe,CAAC,CAAEV,MAAO,KAAMC,SAAU,CAAC,KAAMC,eAAe,IAC/DY,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,KAAM,MAC7DC,YAAayI,IAEfxI,cAAe,CACbC,eAAgB,IAAIkI,MAA6BC,IACjD9J,sBAAuB8J,KAG3B,SAASI,GAAatI,GACpB,OAAOA,EAAOlM,IAAI,CAAC1P,EAAO6G,KACxB,MAAMkV,EAAYH,EAAO/U,EAAI,IAAMgS,GAC7BgG,EAAYjD,EAAO/U,EAAI,IAAMgS,GACnC,OAAII,GAAQK,OAAOtZ,IAA6B,eAAnB6e,EAAUxX,KAC9BkO,EAAcJ,EAAe,GAAInV,GAAQ,CAAEqH,KAAM,2BAEvC,UAAfrH,EAAM0B,MAAmC,qBAAf1B,EAAMqH,MACT,eAAnB0U,EAAUra,MAA4C,eAAnBmd,EAAUnd,KAI9C1B,EAHIuV,EAAcJ,EAAe,GAAInV,GAAQ,CAAEqH,KAAM,aAA+B3F,KAAM1B,EAAM4Y,QAQ3G,IAAIuL,GAAc,CAEhB,MACA,UACA,OACA,WACA,SACA,OACA,MACA,SACA,MACA,QACA,oBACA,SACA,OACA,aACA,SACA,iBACA,QACA,QACA,SACA,SACA,QACA,SACA,aACA,UACA,QACA,QACA,OACA,UACA,2BACA,4BACA,gBACA,mBACA,iBACA,SACA,YACA,gBACA,OACA,SACA,UACA,WACA,QACA,WAEA,MACA,QACA,eACA,MACA,MACA,MACA,QAEA,OACA,OACA,WACA,YACA,YACA,WAEA,aACA,OACA,aACA,eACA,YACA,QACA,MACA,OACA,cACA,aACA,YAEA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,UACA,MACA,OACA,UACA,MACA,QACA,KACA,MACA,MACA,QACA,OACA,MACA,KACA,MACA,QACA,UACA,MACA,OACA,OACA,MACA,OACA,QAEA,OACA,aACA,oBACA,oBACA,eACA,cACA,cACA,aACA,cACA,eACA,WACA,YACA,YACA,aACA,aACA,mBACA,oBACA,YACA,YAEA,QAIEC,GAAa,CAEf,QACA,SACA,MACA,QACA,MACA,QACA,MACA,MACA,SACA,UACA,KACA,MACA,SACA,gBACA,SACA,QACA,UACA,KACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,WACA,aACA,SACA,QACA,UACA,eACA,eACA,oBACA,WACA,UACA,aACA,WACA,SACA,OACA,SACA,WACA,KACA,OACA,OACA,OACA,MACA,SACA,SACA,UACA,YACA,SACA,UACA,OACA,SACA,QACA,YACA,MACA,UACA,OACA,OACA,YACA,OACA,QACA,SACA,SACA,KACA,SACA,YACA,KACA,QACA,UACA,YACA,QACA,SACA,UACA,YACA,OACA,KACA,SACA,OACA,MACA,OACA,OACA,OACA,QACA,QACA,eACA,UACA,KACA,MACA,UACA,UACA,OACA,QACA,KACA,SACA,KACA,OACA,OACA,KACA,QACA,SACA,QACA,OACA,YACA,OACA,SACA,YACA,UACA,QACA,QACA,QACA,YACA,aACA,SACA,UACA,UACA,SACA,UACA,WACA,YACA,QACA,WACA,MACA,OACA,YACA,SACA,MACA,QACA,OACA,YACA,OACA,OACA,KACA,cACA,UACA,YACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,OACA,QACA,SACA,OACA,WAEEC,GAAc,CAMhB,MACA,QACA,OACA,YACA,UACA,MACA,UACA,mBACA,QACA,UACA,WACA,OACA,OACA,UACA,qBAIEC,GAAmBvN,EAAc,CAAC,4BAClCwN,GAAoBxN,EAAc,CAEpC,mBACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,QACA,SAGA,0EACA,eACA,SAEA,QAEEyN,GAA2BzN,EAAc,CAAC,oDAC1C0N,GAA0B1N,EAAc,CAE1C,iDAEA,qEAEA,cAEA,cAEA,yBAEA,cACA,eACA,gBACA,kBACA,YAEA,eAEE2N,GAA0B3N,EAAc,CAAC,cAAe,SAAU,cAClE4N,GAAkB5N,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,+CAEE6N,GAAoB7N,EAAc,CACpC,gDACA,oCAEEJ,GAAS,CACX3H,KAAM,SACNoL,iBAAkB,CAChBP,eAAgByK,GAChBxK,gBAAiB,IAAIyK,MAAsBC,MAA6BC,IACxExK,sBAAuByK,GACvBxK,cAAeyK,GACfxK,gBAAiByK,GACjBvK,iBAAkB+J,GAClB9J,kBAAmB+J,GACnB9J,sBAAuB4J,GACvB1J,YAAa,CACX,QACA,CAAEC,MAAO,SAAUC,SAAU,CAAC,KAAMC,eAAe,IAIrDC,WAAY,CAAC,QAAS,KAAM,MAE5BG,WAAY,CAAEC,YAAY,EAAMqG,SAAU,CAAC,KAAMpG,MAAO,CAAC,IAAK,IAAK,MACnEM,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,OAEjEE,cAAe,CACbC,eAAgB,IAAI6I,MAA6BC,IACjDzK,sBAAuByK,KAKvBI,GAAc,CAEhB,WAEA,OACA,aACA,eACA,YACA,aAEA,WACA,oBACA,iBACA,UACA,cACA,mBACA,eACA,cACA,MACA,MACA,KACA,MACA,QACA,OACA,QACA,OACA,UACA,eAEA,YACA,kBACA,QACA,QACA,UACA,YACA,kBACA,OACA,UACA,YACA,eAEA,eACA,eACA,YACA,oBACA,iBAMA,QACA,MACA,MACA,MACA,MAIA,aACA,cACA,WACA,UACA,UACA,SACA,eACA,YACA,aACA,OACA,aACA,iBACA,aACA,UACA,YACA,YACA,WACA,WACA,WACA,kBACA,kBAMA,OAEA,WACA,SAEA,QACA,MACA,MACA,MACA,OACA,OACA,QAIEC,GAAa,CAEf,MACA,WACA,QACA,MAEA,MACA,KACA,MAEA,aACA,aACA,KACA,SACA,gBACA,QACA,UACA,OACA,KACA,OACA,SACA,WACA,OACA,QACA,QACA,WACA,UACA,SACA,SACA,YACA,UACA,aACA,gBACA,SACA,QACA,OACA,UACA,kBACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,SACA,QACA,aACA,MACA,UACA,UACA,SACA,QACA,OAEA,WACA,gBACA,aACA,WACA,OACA,UACA,OACA,UACA,WACA,SACA,QAEA,SACA,OACA,UACA,SACA,WACA,QACA,QACA,SACA,MACA,UACA,OACA,OACA,OACA,WACA,MACA,SACA,QACA,QACA,SACA,OACA,OACA,WACA,KACA,YACA,QACA,QACA,cACA,SACA,YACA,OACA,KACA,WACA,QACA,UACA,UACA,OACA,OACA,aACA,QACA,QACA,SACA,QACA,SACA,SACA,WACA,SACA,QACA,UACA,MACA,KACA,OACA,MACA,OACA,SACA,KACA,MACA,KACA,OACA,OACA,QACA,MACA,QACA,OACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,QACA,QACA,OACA,YACA,MACA,aACA,cACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,OACA,YACA,QACA,SACA,SACA,SACA,SACA,YACA,eACA,MACA,UACA,OAEA,WACA,MACA,eACA,WACA,aACA,QACA,SACA,cACA,YACA,SACA,cACA,QACA,cACA,OACA,gBACA,kBACA,KACA,WACA,cACA,QACA,UACA,OACA,UACA,QACA,SACA,UACA,SACA,SACA,OACA,QACA,QACA,SACA,WACA,SACA,SACA,UACA,QAEEC,GAAc,CAEhB,QACA,SACA,sBACA,iBACA,SACA,OACA,UACA,oBACA,eACA,OACA,yBACA,oBACA,YACA,OACA,OACA,MACA,UACA,SACA,QACA,MACA,UACA,WACA,WACA,wBACA,gBACA,kCACA,6BACA,qBACA,qBACA,gBACA,QACA,QACA,UACA,WACA,OACA,YACA,YACA,WAIEC,GAAmBjO,EAAc,CAAC,4BAClCkO,GAAoBlO,EAAc,CAEpC,mBACA,OACA,QACA,4BACA,SACA,SACA,eACA,WACA,QACA,SACA,uBAGA,cACA,SAEA,QAEEmO,GAA2BnO,EAAc,CAAC,sDAC1CoO,GAA0BpO,EAAc,CAE1C,0BAEA,SACA,mBAEA,cAEA,aAEA,cACA,aACA,gBACA,gBACA,YACA,iBACA,uBAEA,YAEA,kCAEA,eAGA,iBAEA,eAEEqO,GAA0BrO,EAAc,CAC1C,yBACA,0BACA,+BAEEsO,GAAkBtO,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,+CAEEuO,GAAoBvO,EAAc,CACpC,gDACA,2BAEE,GAAM,CACR/H,KAAM,MACNoL,iBAAkB,CAChBP,eAAgBmL,GAChBlL,gBAAiB,IAAImL,MAAsBC,MAA6BC,IACxElL,sBAAuBmL,GACvBlL,cAAemL,GACflL,gBAAiBmL,GACjBjL,iBAAkByK,GAClBxK,kBAAmByK,GACnBxK,sBAAuBsK,GACvBpK,YAAa,CACX,CAAEC,MAAO,WAAYC,SAAU,CAAC,IAAK,OACrC,CAAED,MAAO,SAAUC,SAAU,CAAC,KAAMC,eAAe,IAErDC,WAAY,CAAC,QAAS,MACtBG,WAAY,CAAEC,YAAY,GAC1BO,UAAW,CAAC,OAEdE,cAAe,CACbC,eAAgB,IAAIuJ,MAA6BC,IACjDnL,sBAAuBmL,KAKvBI,GAAc,CAOhB,MACA,OACA,YACA,YACA,kBACA,uBACA,oBACA,aACA,YACA,iBACA,YACA,iBACA,eACA,kBACA,aACA,YACA,YACA,iBACA,eACA,aACA,cACA,OACA,OACA,QACA,cACA,MACA,MACA,WACA,YACA,oBACA,eACA,wBACA,oBACA,oBACA,uBACA,cACA,kBACA,qBACA,cACA,aACA,iBACA,sBACA,iCACA,cACA,YACA,WACA,UACA,cACA,OACA,OACA,OACA,UACA,cACA,WACA,MACA,WACA,WACA,YACA,QACA,eACA,SACA,YACA,WACA,oBACA,kBACA,OACA,MACA,OACA,oBACA,QACA,WACA,YACA,aACA,QACA,YACA,kBACA,eACA,iBACA,iBACA,eACA,oBACA,mBACA,eACA,OACA,WACA,YACA,cACA,aACA,aACA,MACA,eACA,cACA,cACA,UACA,aACA,MACA,MACA,IACA,aACA,mBACA,kCACA,QACA,MACA,UACA,WACA,SACA,cACA,UACA,QACA,SACA,kBACA,gBACA,YACA,cACA,cACA,iBACA,qBACA,qBACA,wBACA,wBACA,WACA,kBACA,kBACA,oBACA,yBACA,+BACA,gBACA,sBACA,YACA,iBACA,6BACA,0BACA,0BACA,yBACA,iBACA,qBACA,WACA,wBACA,mBACA,cACA,YACA,WACA,YACA,cACA,cACA,OACA,yBACA,KACA,QACA,WACA,2BACA,mBACA,qBACA,YACA,cACA,iBACA,SACA,gBACA,sBACA,iBACA,oBACA,cACA,eACA,sBACA,cACA,aACA,aACA,YACA,aACA,WACA,MACA,oBACA,aACA,OACA,mBACA,0BACA,yBACA,kBACA,QACA,SACA,uBACA,yBACA,0BACA,oBACA,UACA,KACA,YACA,iBACA,MACA,QACA,OACA,QACA,OACA,QACA,aACA,kBACA,MACA,UACA,aACA,cACA,aACA,mBACA,WACA,YACA,aACA,eACA,MACA,SACA,MACA,QACA,mBACA,cACA,MACA,SACA,SACA,MACA,QACA,eACA,wBACA,UACA,MACA,SACA,aACA,YACA,aACA,MACA,YACA,QACA,SACA,oBACA,WACA,qBACA,kBACA,iBACA,iBACA,eACA,KACA,WACA,MACA,QACA,cACA,UACA,UACA,OACA,SACA,OACA,SACA,aACA,eACA,iBACA,qBACA,cACA,kBACA,iBACA,eACA,UACA,iBACA,aACA,SACA,SACA,UACA,UACA,MACA,QACA,aACA,OACA,QACA,SACA,WACA,OACA,SACA,SACA,UACA,OACA,oBACA,MACA,WACA,QACA,UACA,uBACA,qBACA,QACA,aACA,eACA,oBACA,oBACA,oBACA,OACA,cACA,SACA,aACA,cACA,SACA,UACA,cACA,YACA,cACA,YACA,cACA,cACA,gBACA,cACA,aACA,gBACA,eACA,cACA,cACA,cACA,cACA,mBACA,YACA,kBACA,gBACA,sBACA,eACA,kBACA,oBACA,mBACA,mBACA,kBACA,gBACA,cACA,aACA,YACA,cACA,aACA,YACA,kBACA,gBACA,gBACA,mBACA,qBACA,eACA,cACA,WACA,YACA,YACA,aACA,YACA,gBACA,mBACA,aACA,WACA,YACA,OACA,UACA,UACA,OACA,UACA,UACA,SACA,YACA,MACA,MACA,OACA,cACA,qBACA,gBACA,kBACA,UACA,YACA,YACA,eACA,mBACA,mBACA,UACA,UACA,sBACA,sBACA,cACA,SACA,gBACA,gBACA,aACA,kBACA,yBACA,eACA,cACA,UACA,YACA,iBACA,mBACA,YACA,OACA,aACA,WACA,MACA,WACA,SACA,QACA,aACA,aACA,uBACA,mBACA,wBACA,mBACA,mBACA,uBACA,oBACA,OACA,sBACA,oBACA,WACA,UACA,WACA,UACA,OACA,eACA,eACA,wBACA,wBACA,gBACA,YACA,WACA,OACA,eACA,MACA,MACA,WAEA,aACA,QACA,OACA,eACA,OACA,UACA,QAIEC,GAAa,CAEf,SACA,MACA,QACA,QACA,MACA,QACA,UACA,MACA,MACA,KACA,MACA,KACA,gBACA,YACA,UACA,OACA,KACA,OACA,UACA,OACA,WACA,SACA,UACA,UACA,SACA,YACA,cACA,aACA,cACA,SACA,QACA,OACA,UACA,eACA,eACA,OACA,aACA,UACA,SACA,UACA,SACA,OACA,OACA,WACA,aACA,WACA,cACA,SACA,OACA,OACA,QACA,WACA,MACA,QACA,SACA,SACA,YACA,UACA,SACA,UACA,QACA,QACA,QACA,QACA,YACA,MACA,OACA,OACA,YACA,QACA,UACA,SACA,WACA,QACA,WACA,SACA,SACA,SACA,KACA,YACA,UACA,QACA,QACA,SACA,YACA,WACA,OACA,UACA,KACA,KACA,YACA,OACA,OACA,aACA,cACA,OACA,MACA,OACA,OACA,UACA,UACA,OACA,QACA,OACA,QACA,QACA,UACA,QACA,UACA,UACA,kBACA,eACA,WACA,UACA,OACA,MACA,MACA,OACA,OACA,KACA,OACA,MACA,OACA,QACA,SACA,KACA,SACA,OACA,KACA,MACA,OACA,SACA,KACA,QACA,aACA,QACA,SACA,OACA,WACA,YACA,aACA,UACA,OACA,OACA,UACA,MACA,UACA,YACA,YACA,UACA,aACA,aACA,QACA,SACA,QACA,OACA,YACA,UACA,SACA,aACA,QACA,UACA,WACA,YACA,SACA,QACA,OACA,QACA,WACA,SACA,MACA,OACA,UACA,SACA,SACA,UACA,WACA,OACA,SACA,eACA,UACA,MACA,OACA,OACA,OACA,OACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,cACA,OACA,OACA,OACA,OACA,YACA,KACA,WACA,cACA,OACA,OACA,UACA,YACA,cACA,gBACA,QACA,SACA,UACA,YACA,SACA,SACA,MACA,OACA,QACA,QACA,QACA,OACA,WACA,QACA,SACA,UACA,OACA,OACA,QACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QAEEC,GAAc,CAGhB,SACA,MACA,UACA,WACA,UACA,UACA,OACA,UACA,OACA,SACA,cACA,UACA,UACA,gBACA,WACA,YACA,OACA,YACA,UACA,OACA,MACA,QACA,MACA,OACA,WACA,YACA,WACA,OACA,YACA,aACA,aACA,cACA,QACA,aACA,WACA,YAIEC,GAAmB3O,EAAc,CAAC,4BAClC4O,GAAoB5O,EAAc,CAEpC,mBACA,OACA,QACA,4BACA,SACA,SACA,eACA,WACA,QACA,SACA,uBAGA,cACA,SAEA,MAEA,kBACA,WACA,oBACA,qBACA,cACA,UACA,SACA,WAEE6O,GAA2B7O,EAAc,CAAC,iCAC1C8O,GAA0B9O,EAAc,CAE1C,0CAEA,SAEA,cAEA,yBAEA,0BACA,6BACA,0BACA,4BACA,YACA,kCACA,iBACA,UAEA,iBAEA,eACA,0BACA,aACA,gBACA,cACA,cACA,yBACA,YACA,YAEA,UACA,UACA,kBACA,0BACA,MACA,iBACA,kBACA,4BACA,gBACA,cACA,WACA,gBACA,cACA,oBACA,qBACA,mBACA,gCACA,cACA,eACA,gBACA,eACA,iBACA,aACA,qBACA,mBACA,iBACA,iBAEE+O,GAA0B/O,EAAc,CAC1C,yBACA,0BACA,+BAEEgP,GAAkBhP,EAAc,CAClC,OACA,qCACA,uBACA,uBACA,+CAEEiP,GAAoBjP,EAAc,CACpC,kCAEA,2BAEED,GAAQ,CACV9H,KAAM,QACNoL,iBAAkB,CAChBP,eAAgB6L,GAChB5L,gBAAiB,IAAI6L,MAAsBC,MAA6BC,IACxE5L,sBAAuB6L,GACvB5L,cAAe6L,GACf5L,gBAAiB6L,GACjB3L,iBAAkBmL,GAClBlL,kBAAmBmL,GACnBlL,sBAAuBgL,GAKvB/K,YAAa,CAAC,KAAM,MAGpBC,YAAa,CACX,CAAEC,MAAO,QAASC,SAAU,CAAC,OAC7B,CAAED,MAAO,SAAUC,SAAU,CAAC,KAAMC,eAAe,IAGrDC,WAAY,CAAC,SACbG,WAAY,CAAEC,YAAY,GAC1BO,UAAW,CACT,IACA,KACA,KACA,IACA,KAEA,IACA,IACA,MAIJE,cAAe,CACbC,eAAgB,IAAIiK,MAA6BC,IACjD7L,sBAAuB6L,KAKvBI,GAAc,CAGhB,wBACA,MACA,eACA,QACA,YACA,WACA,cACA,MACA,MACA,QACA,SACA,MACA,MACA,OAEA,YACA,cACA,MACA,aACA,OACA,kBACA,kBACA,eACA,gCACA,+BAEA,SACA,WACA,aACA,iBACA,oBACA,kBACA,cACA,YACA,cACA,eACA,gBACA,SACA,aACA,YAEA,OACA,UACA,QACA,WACA,cACA,YAEA,aACA,kBACA,eACA,UACA,mBACA,mBACA,gBACA,eACA,0BACA,uBACA,sBACA,mBACA,gBACA,eACA,sBACA,YACA,kBACA,WACA,SACA,WACA,gBACA,aACA,iBACA,qBACA,wBAEA,gBACA,iBACA,gBAEA,aACA,gBACA,aACA,aACA,WACA,uBAEA,cACA,oBACA,mBACA,sBACA,UACA,WACA,eACA,gBACA,WACA,WACA,qBACA,oBACA,0BACA,MACA,UACA,UACA,aACA,SACA,QACA,yBACA,eACA,cACA,oBACA,iBACA,gBACA,mBACA,OACA,OACA,SACA,aACA,aACA,cAEA,MACA,OACA,OACA,OACA,OACA,UACA,MACA,MACA,UACA,MACA,QACA,MACA,QACA,KACA,QACA,UACA,OACA,QACA,OACA,MACA,OACA,SACA,MACA,SACA,WACA,MACA,QAEA,WACA,WACA,eACA,eACA,mBACA,aACA,WACA,iBACA,qBACA,QACA,UACA,UACA,YACA,YACA,eACA,iBACA,oBACA,eACA,iBACA,0BACA,0BACA,YACA,oBACA,gBACA,iBACA,oBACA,YACA,cACA,qBACA,iBACA,mBACA,mBACA,YACA,YACA,cACA,iBACA,iBACA,aACA,UACA,YACA,eAEA,aACA,QACA,OACA,aACA,uBAEA,cACA,iBACA,eACA,wBACA,eACA,oBACA,YACA,gBACA,mBACA,gBACA,iBACA,cACA,aACA,aACA,eACA,kBACA,WACA,aACA,YACA,cACA,cACA,OACA,UACA,YAEA,QACA,OACA,YACA,SACA,YACA,aACA,SACA,OACA,MACA,QACA,QACA,QACA,WACA,YACA,UACA,YACA,UACA,QACA,QACA,UACA,QACA,MACA,aACA,gBACA,QACA,YACA,YACA,OACA,UACA,QAEA,aACA,UACA,aACA,kBACA,aACA,cACA,kBACA,WACA,WACA,qBACA,eACA,qBACA,yBACA,aACA,aACA,gBACA,eACA,kBACA,iBACA,cACA,gBACA,qCACA,cACA,UACA,YACA,SACA,YACA,wBACA,QACA,kBACA,eACA,kBACA,aAEA,gBACA,aACA,SACA,YACA,cACA,kBACA,cACA,iBACA,eACA,gBACA,UACA,YAEA,kBACA,YACA,oBACA,SAEA,WACA,UAIEC,GAAa,CAGf,MACA,MACA,QACA,MACA,MACA,KACA,MACA,gBACA,SACA,QACA,UACA,QACA,SACA,OACA,KACA,UACA,QACA,aACA,QACA,YACA,WACA,UACA,SACA,SACA,UACA,aACA,WACA,gBACA,WACA,UACA,SACA,QACA,UACA,eACA,eACA,oBACA,eACA,SACA,WACA,OACA,aACA,UACA,UACA,SACA,OACA,OACA,OACA,WACA,cACA,OACA,OACA,SACA,SACA,OACA,UACA,SACA,OACA,WACA,QACA,OACA,aACA,MACA,UACA,WACA,gBACA,OACA,OACA,WACA,OACA,QACA,QACA,SACA,WACA,WACA,cACA,kBACA,KACA,KACA,QACA,QACA,SACA,YACA,OACA,KACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,QACA,UACA,eACA,MACA,OACA,SACA,KACA,MACA,UACA,KACA,OACA,iBACA,YACA,aACA,UACA,SACA,KACA,QACA,QACA,OACA,UACA,QACA,OACA,UACA,QACA,OACA,YACA,SACA,YACA,OACA,WACA,cACA,aACA,cACA,UACA,WACA,SACA,SACA,SACA,QACA,WACA,WACA,aACA,OACA,OACA,SACA,gBACA,SACA,yBACA,iCACA,0BACA,eACA,MACA,UACA,WACA,OACA,aACA,cACA,QACA,cACA,WACA,OACA,KACA,MACA,OACA,cACA,UACA,WACA,cACA,UACA,QACA,SACA,UACA,SACA,aACA,MACA,OACA,SACA,OACA,UACA,QACA,QACA,OACA,eACA,YAEA,WACA,SACA,MACA,WACA,MACA,YACA,KACA,MACA,aACA,OACA,WACA,OACA,UACA,mBACA,cACA,YACA,UACA,aACA,cACA,gBACA,QACA,MACA,aACA,WACA,WACA,aACA,cACA,aACA,SACA,WACA,YACA,UACA,QACA,QACA,UACA,QACA,MACA,SACA,KACA,OACA,YACA,UACA,YACA,YACA,QACA,cACA,WACA,YACA,WACA,OACA,UACA,QACA,QACA,QACA,QACA,MACA,MACA,SACA,SACA,QACA,QACA,UACA,OACA,KACA,OACA,eACA,OACA,SACA,WACA,MACA,UACA,SACA,WACA,UACA,WACA,QACA,aACA,WACA,OACA,SACA,SACA,UACA,UACA,OACA,QACA,MACA,QACA,UACA,WACA,WACA,aACA,YACA,MACA,YACA,gBACA,kBACA,WACA,YACA,cACA,OACA,OACA,UACA,QACA,QACA,QACA,WACA,OACA,QACA,OACA,QAEEC,GAAc,CAEhB,SACA,MACA,OACA,OACA,YACA,OACA,YACA,iBACA,MACA,UACA,SACA,QACA,MACA,UACA,WACA,QACA,UACA,WACA,YACA,OACA,WACA,OACA,YACA,YACA,WAIEC,GAAmBrP,EAAc,CAAC,4BAClCsP,GAAoBtP,EAAc,CAEpC,OACA,OACA,OACA,QACA,WACA,SACA,SACA,eACA,WACA,SACA,uBACA,4BACA,SAGA,gBACA,SAEA,MAEA,eACA,oDACA,aAEA,yCAEEuP,GAA2BvP,EAAc,CAAC,iBAC1CwP,GAA0BxP,EAAc,CAE1C,wCAEA,SACA,mBAEA,gBAEA,yBAEA,cACA,MACA,0BACA,eAEA,iBAEA,iCACA,gBACA,YACA,gBACA,aACA,qBACA,oBACA,eACA,gBACA,mBACA,aACA,cACA,WACA,iBACA,gBACA,qBACA,SACA,qBACA,oBACA,4BACA,2BACA,4BACA,kBACA,cACA,cACA,mBACA,sBACA,UACA,wBACA,oBACA,oBACA,0BACA,eACA,WACA,aACA,yBACA,yBACA,WACA,+BACA,0BACA,gBACA,gCACA,6BACA,eACA,YACA,aACA,oBACA,OACA,WACA,kBACA,iBACA,mBACA,WACA,qBACA,gBACA,aACA,uBACA,uBACA,oBACA,mBACA,yBACA,iBACA,eACA,UACA,YACA,mBACA,iBACA,oBACA,WACA,yBACA,0BACA,QACA,YACA,kBACA,wBACA,QACA,WACA,eACA,QACA,aACA,eACA,oBACA,UACA,SACA,qBACA,UACA,kBACA,qBACA,YACA,qBACA,mBACA,YACA,4BACA,QACA,oBACA,UACA,yBACA,2BACA,oBACA,gBACA,UACA,uBACA,qBACA,oBACA,qBACA,qBACA,6BACA,qBACA,SACA,SACA,aACA,OACA,QACA,WACA,OACA,SACA,uBACA,kBACA,sBACA,OACA,6BACA,WACA,eACA,6BACA,uBACA,cACA,UACA,qBACA,UACA,eACA,gBACA,eACA,YACA,gBACA,aACA,gBACA,qBACA,kBACA,iBACA,gBACA,UACA,QACA,iBACA,WACA,8BACA,UACA,OACA,oBACA,OACA,iBACA,aACA,YACA,0BAEEyP,GAA0BzP,EAAc,CAAC,cAAe,SAAU,cAClE0P,GAAkB1P,EAAc,CAClC,OACA,qCACA,uBAEA,0BAEE2P,GAAoB3P,EAAc,CACpC,gDACA,2BAEEF,GAAc,CAChB7H,KAAM,cACNoL,iBAAkB,CAChBP,eAAgBuM,GAChBtM,gBAAiB,IAAIuM,MAAsBC,MAA6BC,IACxEtM,sBAAuBuM,GACvBtM,cAAeuM,GACftM,gBAAiBuM,GACjBrM,iBAAkB6L,GAClB5L,kBAAmB6L,GACnB5L,sBAAuB0L,GACvBhI,qBAAqB,EACrBxD,YAAa,CAAC,CAAEC,MAAO,QAASC,SAAU,CAAC,OAC3CE,WAAY,CAAC,QAAS,MACtBC,WAAY,CAAEsC,MAAO,KAAMC,KAAM,OACjCrC,WAAY,CAAEE,MAAO,CAAC,KAAMC,OAAQ,CAAC,MACrCK,UAAW,CACT,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEFmL,wBAAyB,CAAC,OAG5BjL,cAAe,CACbwG,qBAAsB,CAAC,MACvBvG,eAAgB,IAAI2K,MAA6BC,IACjDvM,sBAAuBuM,KAKvBK,GAAa,CAMf,MACA,MACA,QACA,UACA,MACA,KACA,MACA,aACA,SACA,UACA,UACA,OACA,KACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,YACA,aACA,WACA,UACA,SACA,QACA,eACA,eACA,oBACA,eACA,SACA,WACA,YACA,WACA,kBACA,aACA,aACA,UACA,UACA,UACA,SACA,OACA,WACA,gBACA,WACA,cACA,MACA,OACA,OACA,OACA,OACA,SACA,WACA,UACA,SACA,SACA,OACA,UACA,aACA,QACA,QACA,MACA,QACA,sBACA,yBACA,UACA,OACA,OACA,WACA,QACA,QACA,SACA,uBACA,gBACA,mBACA,cACA,cACA,KACA,SACA,KACA,QACA,SACA,QACA,QACA,cACA,SACA,KACA,6BACA,YACA,WACA,OACA,UACA,OACA,MACA,OACA,OACA,UACA,QACA,OACA,OACA,QACA,QACA,OACA,YACA,iBACA,OACA,OACA,eACA,QACA,WACA,QACA,qBACA,gBACA,MACA,WACA,UACA,mBACA,MACA,qBACA,mBACA,OACA,KACA,WACA,SACA,aACA,KACA,QACA,MACA,QACA,UACA,OACA,UACA,YACA,QACA,QACA,OACA,QACA,aACA,SACA,UACA,SACA,SACA,UACA,UACA,WACA,SACA,SACA,QACA,kBACA,kBACA,sBACA,QACA,SACA,UACA,qBACA,SACA,YACA,YACA,YACA,MACA,OACA,SACA,UACA,WACA,MACA,iBACA,oBACA,YACA,sBACA,eACA,eACA,iBACA,mBACA,WACA,aACA,gBACA,QACA,aACA,OACA,KACA,WACA,UACA,OACA,YACA,OACA,QACA,SACA,SACA,SACA,QACA,MACA,QACA,WACA,WACA,gBACA,QACA,SACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,MACA,aACA,YAEEC,GAAc,CAEhB,SACA,SACA,MACA,OACA,OACA,YACA,WACA,MACA,UACA,mBACA,SACA,OACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,OACA,OACA,OACA,UACA,OACA,WACA,WACA,aACA,YACA,aACA,YACA,gBACA,mBACA,UACA,YACA,OACA,WACA,OACA,OACA,YACA,WACA,UACA,WACA,WACA,YACA,UACA,eACA,QAIEC,GAAc,CAgBhB,MACA,OACA,UACA,UACA,cACA,cACA,YACA,wBACA,mCACA,gCACA,iCACA,8BACA,oBACA,QACA,OACA,OACA,QACA,MACA,MACA,SACA,UACA,YACA,SACA,UACA,OACA,OACA,UACA,OACA,mBACA,cACA,UACA,WACA,eACA,YACA,UACA,SACA,YACA,gBACA,OACA,UACA,aACA,MACA,MACA,QACA,YACA,UACA,eACA,eACA,eACA,oBACA,eACA,UACA,WACA,OACA,WACA,WACA,cACA,WACA,aACA,MACA,UACA,aACA,YACA,YACA,SACA,UACA,UACA,aACA,MACA,cACA,MACA,qBACA,MACA,UACA,QACA,QACA,cACA,QACA,SACA,aACA,cACA,YACA,gBACA,iBACA,qBACA,qBACA,uBACA,qBACA,mBACA,sBACA,kBACA,4BACA,gBACA,oBACA,oBACA,kBACA,sBACA,kBACA,iBACA,2BACA,aACA,aACA,WACA,WACA,eACA,MACA,YACA,OACA,cACA,KACA,SACA,YACA,YACA,aACA,aACA,UACA,SACA,QACA,WACA,KACA,UACA,WACA,6BACA,2BACA,6BACA,yBACA,uBACA,yBACA,kBACA,sBACA,oBACA,sBACA,sBACA,gBACA,cACA,kBACA,gBACA,kBACA,qBACA,mBACA,qBACA,MACA,WACA,aACA,QACA,OACA,QACA,OACA,SACA,OACA,KACA,YACA,iBACA,SACA,MACA,QACA,OACA,OACA,QACA,QACA,MACA,MACA,SACA,cACA,MACA,SACA,MACA,QACA,YACA,iBACA,MACA,MACA,YACA,QACA,SACA,eACA,eACA,kBACA,kBACA,KACA,QACA,WACA,MACA,QACA,UACA,QACA,UACA,OACA,OACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,YACA,aACA,OACA,QACA,SACA,SACA,cACA,OACA,OACA,UACA,OACA,MACA,QACA,QACA,UACA,cACA,kBACA,QACA,OACA,SACA,aACA,cACA,cACA,UACA,SACA,YACA,kBACA,MACA,WACA,MACA,OACA,WACA,cACA,cACA,YACA,eACA,gBACA,cACA,YACA,UACA,UACA,UACA,YACA,aACA,eACA,OACA,QACA,WACA,QACA,QACA,iBACA,YACA,QAEA,WACA,WACA,gBACA,OACA,SACA,WACA,UACA,WACA,aACA,UACA,OACA,UACA,aACA,QAIEC,GAAmBhQ,EAAc,CAAC,0CAClCiQ,GAAoBjQ,EAAc,CAEpC,OACA,OACA,QACA,WACA,SACA,eACA,WACA,QACA,SAGA,yBACA,SACA,iBACA,0BAEA,MAEA,4DACA,4CAEEkQ,GAA2BlQ,EAAc,CAC3C,uFAEEmQ,GAA0BnQ,EAAc,CAE1C,cAEA,SAEA,gBAEA,qCAEA,uBACA,eACA,6BACA,gBACA,kBACA,SACA,mBAEA,mBAEA,iBACA,WACA,2BACA,iBACA,iBACA,sBACA,aACA,aACA,gBACA,kBACA,cACA,kBACA,kBACA,SACA,uBACA,cACA,OACA,SACA,mBACA,4BACA,+BACA,sBACA,cACA,iBACA,yBACA,QACA,SACA,kBACA,eACA,eACA,cACA,mBACA,kBACA,uBACA,cACA,cACA,qBACA,WACA,kBACA,kBACA,gBACA,gBACA,aACA,YACA,gBACA,iBACA,qBACA,YACA,YACA,YACA,UACA,UACA,QACA,QACA,QACA,UACA,OACA,kBACA,kBACA,YACA,wBACA,WACA,2BACA,cACA,kBACA,iBACA,UACA,oBACA,uBACA,oBACA,oBACA,cACA,eACA,UACA,qBACA,QACA,eACA,gBACA,gBACA,cACA,UACA,mBACA,qBACA,SACA,WACA,wBACA,YACA,oBACA,mBACA,YACA,eACA,qBACA,WACA,kBACA,OACA,qBACA,iBACA,eACA,uBACA,uBACA,uBACA,wBACA,oBACA,mBACA,mBACA,iBACA,cACA,eACA,cACA,qBACA,uBACA,cACA,aACA,qBACA,mBACA,eACA,kBACA,sBACA,wBACA,mBACA,eACA,gBACA,uBACA,sBACA,gBACA,aACA,mBACA,cACA,oBACA,cACA,iBACA,gBACA,WACA,oBACA,kBACA,0BACA,iBACA,gBACA,cACA,oBACA,yBACA,gBACA,eACA,mBACA,aACA,gBACA,kBACA,gBACA,MACA,KAEA,UACA,QACA,OACA,SACA,SACA,UAEEoQ,GAA0BpQ,EAAc,CAC1C,yBACA,SACA,YACA,UAEEqQ,GAAkBrQ,EAAc,CAClC,OACA,qCACA,uBACA,sCAEA,kBAEEsQ,GAAoBtQ,EAAc,CACpC,YACA,YACA,gBACA,yBACA,kBAEEP,GAAgB,CAClBxH,KAAM,gBACNoL,iBAAkB,CAChBP,eAAgBkN,GAChBjN,gBAAiB,IAAIkN,MAAsBC,MAA6BC,IACxEjN,sBAAuBkN,GACvBjN,cAAekN,GACfjN,gBAAiBkN,GACjBhN,iBAAkBuM,GAClBtM,kBAAmBuM,GACnBtM,sBAAuBuM,GAEvBrM,YAAa,CACX,WACA,WACA,CAAEC,MAAO,SAAUC,SAAU,CAAC,IAAK,KAAMC,eAAe,IAE1DC,WAAY,CAAC,MACbC,WAAY,CAAEsC,MAAO,IAAKC,KAAM,IAAKoC,sBAAsB,GAC3DrE,cAAe,CACb,CAAEC,MAAO,qBACT,CAAEX,MAAO,KAAMC,SAAU,CAAC,KAAMC,eAAe,IAEjDW,iBAAkB,CAAC,KAAM,KACzBC,UAAW,CACT,KACA,IACA,IACA,IACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,MACA,MACA,KACA,MACA,OAGFC,YAAamD,IAEflD,cAAe,CACbwG,qBAAsB,CAAC,KAAM,MAAO,OACpCvG,eAAgB,IAAIsL,MAA6BC,IACjDlN,sBAAuBkN,KAKvBI,GAAc,CAkBhB,MACA,OACA,QACA,aACA,iBACA,YACA,wBACA,oBACA,+BACA,4BACA,6BACA,eACA,0BACA,uBACA,wBACA,4BACA,yBACA,YACA,eACA,YACA,gBACA,kBACA,0BACA,iBACA,eACA,qBACA,iBACA,gBACA,aACA,cACA,kBACA,kBACA,mBACA,iBACA,WACA,YACA,aACA,UACA,aACA,UACA,aACA,YACA,YACA,UACA,aACA,YACA,UACA,mBACA,mBACA,kBACA,QACA,OACA,QACA,OACA,QACA,QACA,oCACA,+BACA,MACA,uBACA,uBACA,gBACA,aACA,SACA,aACA,sBACA,uBACA,uBACA,eACA,gBACA,SACA,QACA,YACA,eACA,gBACA,SACA,aACA,UACA,cACA,UACA,SACA,aACA,UACA,cACA,wBACA,uBACA,OACA,OACA,OACA,OACA,YACA,aACA,YACA,MACA,OACA,WACA,UACA,YACA,uBACA,WACA,SACA,YACA,2BACA,yBACA,WACA,mBACA,eACA,OACA,MACA,OACA,MACA,QACA,WACA,YACA,aACA,YACA,kBACA,0BACA,iBACA,mBACA,eACA,qBACA,iBACA,eACA,iBACA,kBACA,0BACA,kBACA,oBACA,sBACA,eACA,oBACA,sBACA,eACA,kBACA,oBACA,wBACA,2BACA,4BACA,mCACA,iCACA,kBACA,YACA,aACA,UACA,WACA,UACA,SACA,oBACA,oBACA,UACA,cACA,UACA,aACA,OACA,eACA,UACA,cACA,WACA,aACA,MACA,eACA,6BACA,uBACA,2CACA,UACA,8BACA,YACA,cACA,UACA,QACA,8BACA,YACA,MACA,oBACA,UACA,kBACA,wBACA,WACA,oBACA,oBACA,qBACA,SACA,WACA,WACA,cACA,OACA,WACA,YACA,oBACA,oBACA,aACA,MACA,iBACA,cACA,eACA,aACA,aACA,OACA,SACA,SACA,MACA,SACA,QACA,YACA,eACA,UACA,SACA,eACA,gBACA,WACA,YACA,aACA,UACA,aACA,UACA,gBACA,aACA,YACA,UACA,6BACA,aACA,gBACA,YACA,qBACA,UACA,mBACA,mBACA,kBACA,yBACA,yBACA,WACA,MACA,WACA,gBACA,mBACA,aACA,OACA,QACA,OACA,SACA,MACA,OACA,WACA,WACA,UACA,KACA,YACA,iBACA,MACA,gBACA,wBACA,QACA,OACA,QACA,oCACA,MACA,UACA,aACA,yBACA,qBACA,qBACA,SACA,MACA,MACA,UACA,kBACA,MACA,OACA,YACA,iBACA,WACA,SACA,YACA,QACA,SACA,aACA,MACA,OACA,aACA,mBACA,6BACA,gBACA,gBACA,cACA,cACA,eACA,WACA,aACA,YACA,YACA,eACA,kBACA,kBACA,KACA,qBACA,iBACA,oBACA,WACA,MACA,QACA,eACA,6BACA,gBACA,2BACA,wBACA,6BACA,UACA,SACA,UACA,OACA,kBACA,SACA,eACA,eACA,cACA,iBACA,gBACA,oBACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,YACA,YACA,SACA,UACA,oCACA,qCACA,4CACA,kCACA,4BACA,qBACA,cACA,UACA,QACA,QACA,QACA,aACA,OACA,QACA,kBACA,8BACA,OACA,OACA,OACA,OACA,0BACA,OACA,WACA,cACA,OACA,WACA,cACA,OACA,MACA,OACA,OACA,UACA,QACA,QACA,aACA,iBACA,OACA,SACA,UACA,YACA,YACA,eACA,WACA,cACA,WACA,YACA,aACA,cACA,aACA,cACA,eACA,YACA,gBACA,eACA,cACA,cACA,aACA,cACA,cACA,qBACA,0BACA,sBACA,sBACA,aACA,qBACA,qBACA,uBACA,kBACA,gBACA,YACA,mBACA,gBACA,cACA,eACA,WACA,iBACA,aACA,aACA,eACA,eACA,YACA,aACA,cACA,UACA,gBACA,mBACA,WACA,YACA,OACA,UACA,UACA,OACA,UACA,UACA,4CACA,8BACA,aACA,SACA,aACA,cACA,mBACA,SACA,wBACA,kBACA,SACA,YACA,MACA,UACA,uBACA,2BACA,+BACA,4CACA,uCACA,4BACA,sBACA,0BACA,gCACA,2BACA,gCACA,mCACA,mCACA,2CACA,wCACA,sCACA,uCACA,qCACA,4CACA,8BACA,2BACA,oCACA,2BACA,oCACA,gCACA,sCACA,yBACA,8CACA,gCACA,qCACA,iBACA,gCACA,mCACA,kCACA,sCACA,iCACA,sCACA,uCACA,2BACA,qBACA,4BACA,yCACA,0BACA,mCACA,oCACA,yBACA,gCACA,gBACA,6CACA,qCACA,cACA,mBACA,+BACA,iBACA,6BACA,8BACA,MACA,OACA,kBACA,eACA,kBACA,aACA,UACA,WACA,uBACA,eACA,gBACA,WACA,YACA,aACA,UACA,aACA,UACA,OACA,aACA,YACA,aACA,YACA,eACA,cACA,UACA,YACA,UACA,OACA,eACA,mBACA,mBACA,kBACA,aACA,SACA,YACA,OACA,WACA,QACA,QACA,2BACA,2BACA,WACA,wBACA,wBACA,iBACA,gBACA,iBACA,cACA,iBACA,gBACA,iBACA,gBACA,mBACA,kBACA,cACA,mBACA,uBACA,uBACA,sBACA,SACA,UACA,UACA,QACA,cACA,WACA,qBACA,UACA,WACA,WACA,gBACA,eACA,yBACA,6BACA,eACA,SACA,OACA,aACA,gBACA,MACA,aACA,YACA,eACA,YACA,OACA,OACA,aACA,UACA,QACA,UACA,aACA,QAIEC,GAAa,CAIf,UACA,MACA,QACA,MACA,MACA,KACA,UACA,KACA,OACA,OACA,QACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,eACA,eACA,oBACA,eACA,WACA,SACA,WACA,OACA,OACA,SACA,QACA,YACA,MACA,OACA,OACA,QACA,QACA,YACA,SACA,QACA,KACA,YACA,QACA,SACA,YACA,OACA,KACA,QACA,OACA,UACA,OACA,OACA,YACA,iBACA,QACA,UACA,MACA,OACA,KACA,KACA,KACA,QACA,eACA,UACA,SACA,SACA,QACA,QACA,MACA,OACA,SACA,SACA,SACA,MACA,OACA,QACA,QACA,cACA,OACA,KACA,UACA,OACA,WACA,QACA,SACA,SACA,QACA,SACA,OACA,OACA,WACA,QACA,OAEA,WAEEC,GAAc,CAChB,SACA,UACA,UACA,MACA,UACA,SACA,WACA,UACA,UACA,QACA,SACA,SACA,SACA,mBACA,OACA,UACA,OACA,YACA,SACA,OACA,SACA,YACA,UACA,OACA,WACA,OACA,YACA,gBACA,gBACA,YACA,eACA,UACA,SACA,QACA,YACA,YAIEC,GAAmB1Q,EAAc,CAAC,4BAClC2Q,GAAoB3Q,EAAc,CAEpC,mBACA,OACA,QACA,WACA,SACA,eACA,WACA,UACA,QACA,SACA,uBAGA,qDACA,qBACA,SAEA,MACA,aACA,oDACA,cACA,iBACA,aACA,qBACA,6BACA,iCAEE4Q,GAA2B5Q,EAAc,CAC3C,uDACA,gFAEE6Q,GAA0B7Q,EAAc,CAE1C,gEAEA,SAEA,cAEA,yBAEA,0BACA,YACA,YACA,+BACA,sBACA,eACA,gBACA,4BACA,gBACA,6CACA,oBACA,mCACA,oBAEA,iCACA,+BACA,uBAEA,wBAEA,kBAEA,gBAEA,+BAGA,+BAcA,gBACA,wBACA,mBACA,iBACA,uBACA,uBACA,oBACA,iBACA,oBACA,uBACA,0BACA,uBACA,iCACA,aACA,kBACA,0BACA,yBACA,aACA,0BACA,eACA,6BACA,iBACA,gBACA,uBACA,cACA,cACA,4BACA,eACA,YACA,aACA,aACA,aACA,kBACA,QACA,OACA,SACA,YACA,iBACA,yBACA,oBACA,kBACA,2BACA,wBACA,wBACA,qBACA,kBACA,qBACA,yBACA,wBACA,2BACA,wBACA,kCACA,cACA,mBACA,2BACA,0BACA,cACA,2BACA,gBACA,8BACA,kBACA,wBACA,eACA,eACA,6BACA,gBACA,aACA,cACA,cACA,mBACA,SACA,oBACA,0BACA,uBACA,oBACA,uBACA,0BACA,6BACA,0BACA,gBACA,qBACA,kBACA,6BACA,kBACA,oBACA,0BACA,iBACA,iBACA,kBACA,iBACA,gBACA,uBACA,gBACA,gBACA,qBACA,kBACA,gBACA,sBACA,sBACA,mBACA,gBACA,mBACA,uBACA,sBACA,yBACA,sBACA,YACA,iBACA,yBACA,wBACA,YACA,yBACA,cACA,gBACA,sBACA,aACA,aACA,cACA,WACA,YACA,YACA,YACA,iBACA,oBACA,eACA,UACA,MACA,kBACA,aACA,SACA,OACA,QACA,MACA,SACA,cACA,WACA,eACA,mBACA,iBACA,mCACA,sCACA,gCACA,0BACA,uBACA,uBACA,oBACA,iBACA,uBACA,cACA,oBACA,aACA,wBACA,wBACA,0BACA,wBACA,eACA,6BACA,kBACA,aACA,oBACA,kBACA,eACA,4BACA,6BACA,0BACA,yBACA,aACA,2BACA,eACA,iBACA,wBACA,cACA,gCACA,mCACA,cACA,eACA,cACA,YACA,aACA,oBACA,sBACA,aACA,iBACA,aACA,kBACA,6BACA,kBACA,gBACA,eACA,aACA,QACA,eACA,WACA,aACA,sBACA,kBAEE8Q,GAA0B9Q,EAAc,CAAC,cAAe,QAAS,SAAU,cAC3E+Q,GAAkB/Q,EAAc,CAClC,eACA,+CACA,2BAEEgR,GAAoBhR,EAAc,CACpC,yBACA,kDAEEN,GAAY,CACdzH,KAAM,YACNoL,iBAAkB,CAChBP,eAAgB4N,GAChB3N,gBAAiB,IAAI4N,MAAsBC,MAA6BC,IACxE3N,sBAAuB4N,GACvB3N,cAAe4N,GACf3N,gBAAiB4N,GACjB1N,iBAAkBkN,GAClBjN,kBAAmBkN,GACnBjN,sBAAuB+M,GACvB7M,YAAa,CAAC,KAAM,YACpBI,WAAY,CAAC,SACbO,cAAe,CAEb,CAAEC,MAAO,gBAET,CAAEA,MAAO,+BAEXb,YAAa,CAAC,MACdM,WAAY,CAAEuC,KAAM,KACpB9B,iBAAkB,CA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","file":"static/assets/js/chunk-3bb0ee9d.6b3cca98.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n // default search panel location\n CodeMirror.defineOption(\"search\", {bottom: false});\n\n function searchOverlay(query, caseInsensitive) {\n if (typeof query == \"string\")\n query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n else if (!query.global)\n query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n return {token: function(stream) {\n query.lastIndex = stream.pos;\n var match = query.exec(stream.string);\n if (match && match.index == stream.pos) {\n stream.pos += match[0].length || 1;\n return \"searching\";\n } else if (match) {\n stream.pos = match.index;\n } else {\n stream.skipToEnd();\n }\n }};\n }\n\n function SearchState() {\n this.posFrom = this.posTo = this.lastQuery = this.query = null;\n this.overlay = null;\n }\n\n function getSearchState(cm) {\n return cm.state.search || (cm.state.search = new SearchState());\n }\n\n function queryCaseInsensitive(query) {\n return typeof query == \"string\" && query == query.toLowerCase();\n }\n\n function getSearchCursor(cm, query, pos) {\n // Heuristic: if the query string is all lowercase, do a case insensitive search.\n return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});\n }\n\n function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {\n cm.openDialog(text, onEnter, {\n value: deflt,\n selectValueOnOpen: true,\n closeOnEnter: false,\n onClose: function() { clearSearch(cm); },\n onKeyDown: onKeyDown,\n bottom: cm.options.search.bottom\n });\n }\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n else f(prompt(shortText, deflt));\n }\n\n function confirmDialog(cm, text, shortText, fs) {\n if (cm.openConfirm) cm.openConfirm(text, fs);\n else if (confirm(shortText)) fs[0]();\n }\n\n function parseString(string) {\n return string.replace(/\\\\([nrt\\\\])/g, function(match, ch) {\n if (ch == \"n\") return \"\\n\"\n if (ch == \"r\") return \"\\r\"\n if (ch == \"t\") return \"\\t\"\n if (ch == \"\\\\\") return \"\\\\\"\n return match\n })\n }\n\n function parseQuery(query) {\n var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n if (isRE) {\n try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n catch(e) {} // Not a regular expression after all, do a string search\n } else {\n query = parseString(query)\n }\n if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n query = /x^/;\n return query;\n }\n\n function startSearch(cm, state, query) {\n state.queryText = query;\n state.query = parseQuery(query);\n cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n cm.addOverlay(state.overlay);\n if (cm.showMatchesOnScrollbar) {\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n }\n }\n\n function doSearch(cm, rev, persistent, immediate) {\n var state = getSearchState(cm);\n if (state.query) return findNext(cm, rev);\n var q = cm.getSelection() || state.lastQuery;\n if (q instanceof RegExp && q.source == \"x^\") q = null\n if (persistent && cm.openDialog) {\n var hiding = null\n var searchNext = function(query, event) {\n CodeMirror.e_stop(event);\n if (!query) return;\n if (query != state.queryText) {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n }\n if (hiding) hiding.style.opacity = 1\n findNext(cm, event.shiftKey, function(_, to) {\n var dialog\n if (to.line < 3 && document.querySelector &&\n (dialog = cm.display.wrapper.querySelector(\".CodeMirror-dialog\")) &&\n dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, \"window\").top)\n (hiding = dialog).style.opacity = .4\n })\n };\n persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {\n var keyName = CodeMirror.keyName(event)\n var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption(\"keyMap\")][keyName]\n if (cmd == \"findNext\" || cmd == \"findPrev\" ||\n cmd == \"findPersistentNext\" || cmd == \"findPersistentPrev\") {\n CodeMirror.e_stop(event);\n startSearch(cm, getSearchState(cm), query);\n cm.execCommand(cmd);\n } else if (cmd == \"find\" || cmd == \"findPersistent\") {\n CodeMirror.e_stop(event);\n searchNext(query, event);\n }\n });\n if (immediate && q) {\n startSearch(cm, state, q);\n findNext(cm, rev);\n }\n } else {\n dialog(cm, getQueryDialog(cm), \"Search for:\", q, function(query) {\n if (query && !state.query) cm.operation(function() {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n findNext(cm, rev);\n });\n });\n }\n }\n\n function findNext(cm, rev, callback) {cm.operation(function() {\n var state = getSearchState(cm);\n var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n if (!cursor.find(rev)) {\n cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n if (!cursor.find(rev)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);\n state.posFrom = cursor.from(); state.posTo = cursor.to();\n if (callback) callback(cursor.from(), cursor.to())\n });}\n\n function clearSearch(cm) {cm.operation(function() {\n var state = getSearchState(cm);\n state.lastQuery = state.query;\n if (!state.query) return;\n state.query = state.queryText = null;\n cm.removeOverlay(state.overlay);\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n });}\n\n function el(tag, attrs) {\n var element = tag ? document.createElement(tag) : document.createDocumentFragment();\n for (var key in attrs) {\n element[key] = attrs[key];\n }\n for (var i = 2; i < arguments.length; i++) {\n var child = arguments[i]\n element.appendChild(typeof child == \"string\" ? document.createTextNode(child) : child);\n }\n return element;\n }\n\n function getQueryDialog(cm) {\n var label = el(\"label\", {className: \"CodeMirror-search-label\"},\n cm.phrase(\"Search:\"),\n el(\"input\", {type: \"text\", \"style\": \"width: 10em\", className: \"CodeMirror-search-field\",\n id: \"CodeMirror-search-field\"}));\n label.setAttribute(\"for\",\"CodeMirror-search-field\");\n return el(\"\", null, label, \" \",\n el(\"span\", {style: \"color: #666\", className: \"CodeMirror-search-hint\"},\n cm.phrase(\"(Use /re/ syntax for regexp search)\")));\n }\n function getReplaceQueryDialog(cm) {\n return el(\"\", null, \" \",\n el(\"input\", {type: \"text\", \"style\": \"width: 10em\", className: \"CodeMirror-search-field\"}), \" \",\n el(\"span\", {style: \"color: #666\", className: \"CodeMirror-search-hint\"},\n cm.phrase(\"(Use /re/ syntax for regexp search)\")));\n }\n function getReplacementQueryDialog(cm) {\n return el(\"\", null,\n el(\"span\", {className: \"CodeMirror-search-label\"}, cm.phrase(\"With:\")), \" \",\n el(\"input\", {type: \"text\", \"style\": \"width: 10em\", className: \"CodeMirror-search-field\"}));\n }\n function getDoReplaceConfirm(cm) {\n return el(\"\", null,\n el(\"span\", {className: \"CodeMirror-search-label\"}, cm.phrase(\"Replace?\")), \" \",\n el(\"button\", {}, cm.phrase(\"Yes\")), \" \",\n el(\"button\", {}, cm.phrase(\"No\")), \" \",\n el(\"button\", {}, cm.phrase(\"All\")), \" \",\n el(\"button\", {}, cm.phrase(\"Stop\")));\n }\n\n function replaceAll(cm, query, text) {\n cm.operation(function() {\n for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n if (typeof query != \"string\") {\n var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n } else cursor.replace(text);\n }\n });\n }\n\n function replace(cm, all) {\n if (cm.getOption(\"readOnly\")) return;\n var query = cm.getSelection() || getSearchState(cm).lastQuery;\n var dialogText = all ? cm.phrase(\"Replace all:\") : cm.phrase(\"Replace:\")\n var fragment = el(\"\", null,\n el(\"span\", {className: \"CodeMirror-search-label\"}, dialogText),\n getReplaceQueryDialog(cm))\n dialog(cm, fragment, dialogText, query, function(query) {\n if (!query) return;\n query = parseQuery(query);\n dialog(cm, getReplacementQueryDialog(cm), cm.phrase(\"Replace with:\"), \"\", function(text) {\n text = parseString(text)\n if (all) {\n replaceAll(cm, query, text)\n } else {\n clearSearch(cm);\n var cursor = getSearchCursor(cm, query, cm.getCursor(\"from\"));\n var advance = function() {\n var start = cursor.from(), match;\n if (!(match = cursor.findNext())) {\n cursor = getSearchCursor(cm, query);\n if (!(match = cursor.findNext()) ||\n (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase(\"Replace?\"),\n [function() {doReplace(match);}, advance,\n function() {replaceAll(cm, query, text)}]);\n };\n var doReplace = function(match) {\n cursor.replace(typeof query == \"string\" ? text :\n text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n advance();\n };\n advance();\n }\n });\n });\n }\n\n CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};\n CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};\n CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};\n CodeMirror.commands.findNext = doSearch;\n CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n CodeMirror.commands.clearSearch = clearSearch;\n CodeMirror.commands.replace = replace;\n CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// Open simple dialogs on top of an editor. Relies on dialog.css.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n function dialogDiv(cm, template, bottom) {\n var wrap = cm.getWrapperElement();\n var dialog;\n dialog = wrap.appendChild(document.createElement(\"div\"));\n if (bottom)\n dialog.className = \"CodeMirror-dialog CodeMirror-dialog-bottom\";\n else\n dialog.className = \"CodeMirror-dialog CodeMirror-dialog-top\";\n\n if (typeof template == \"string\") {\n dialog.innerHTML = template;\n } else { // Assuming it's a detached DOM element.\n dialog.appendChild(template);\n }\n CodeMirror.addClass(wrap, 'dialog-opened');\n return dialog;\n }\n\n function closeNotification(cm, newVal) {\n if (cm.state.currentNotificationClose)\n cm.state.currentNotificationClose();\n cm.state.currentNotificationClose = newVal;\n }\n\n CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n if (!options) options = {};\n\n closeNotification(this, null);\n\n var dialog = dialogDiv(this, template, options.bottom);\n var closed = false, me = this;\n function close(newVal) {\n if (typeof newVal == 'string') {\n inp.value = newVal;\n } else {\n if (closed) return;\n closed = true;\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n me.focus();\n\n if (options.onClose) options.onClose(dialog);\n }\n }\n\n var inp = dialog.getElementsByTagName(\"input\")[0], button;\n if (inp) {\n inp.focus();\n\n if (options.value) {\n inp.value = options.value;\n if (options.selectValueOnOpen !== false) {\n inp.select();\n }\n }\n\n if (options.onInput)\n CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n if (options.onKeyUp)\n CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n CodeMirror.on(inp, \"keydown\", function(e) {\n if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n inp.blur();\n CodeMirror.e_stop(e);\n close();\n }\n if (e.keyCode == 13) callback(inp.value, e);\n });\n\n if (options.closeOnBlur !== false) CodeMirror.on(dialog, \"focusout\", function (evt) {\n if (evt.relatedTarget !== null) close();\n });\n } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n CodeMirror.on(button, \"click\", function() {\n close();\n me.focus();\n });\n\n if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n button.focus();\n }\n return close;\n });\n\n CodeMirror.defineExtension(\"openConfirm\", function(template, callbacks, options) {\n closeNotification(this, null);\n var dialog = dialogDiv(this, template, options && options.bottom);\n var buttons = dialog.getElementsByTagName(\"button\");\n var closed = false, me = this, blurring = 1;\n function close() {\n if (closed) return;\n closed = true;\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n me.focus();\n }\n buttons[0].focus();\n for (var i = 0; i < buttons.length; ++i) {\n var b = buttons[i];\n (function(callback) {\n CodeMirror.on(b, \"click\", function(e) {\n CodeMirror.e_preventDefault(e);\n close();\n if (callback) callback(me);\n });\n })(callbacks[i]);\n CodeMirror.on(b, \"blur\", function() {\n --blurring;\n setTimeout(function() { if (blurring <= 0) close(); }, 200);\n });\n CodeMirror.on(b, \"focus\", function() { ++blurring; });\n }\n });\n\n /*\n * openNotification\n * Opens a notification, that can be closed with an optional timer\n * (default 5000ms timer) and always closes on click.\n *\n * If a notification is opened while another is opened, it will close the\n * currently opened one and open the new one immediately.\n */\n CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n closeNotification(this, close);\n var dialog = dialogDiv(this, template, options && options.bottom);\n var closed = false, doneTimer;\n var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n function close() {\n if (closed) return;\n closed = true;\n clearTimeout(doneTimer);\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n }\n\n CodeMirror.on(dialog, 'click', function(e) {\n CodeMirror.e_preventDefault(e);\n close();\n });\n\n if (duration)\n doneTimer = setTimeout(close, duration);\n\n return close;\n });\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('split-pane',{attrs:{\"min-percent\":0,\"default-percent\":_vm.defaultPercent,\"split\":\"vertical\"}},[_c('template',{slot:\"paneL\"},[_c('split-pane',{attrs:{\"split\":\"horizontal\",\"min-percent\":0}},[_c('template',{slot:\"paneL\"},[_c('edit-part',{ref:\"edit_part\",on:{\"runSql\":_vm.handleRunSql,\"clear\":() => {\n _vm.$refs.sql_result.handleClear()\n }}})],1),_c('template',{slot:\"paneR\"},[_c('sql-result',{ref:\"sql_result\",staticStyle:{\"background\":\"#fff\"},on:{\"tabChange\":(val) => _vm.handleTabChange(val)}})],1)],2)],1),_c('template',{slot:\"paneR\"},[_c('div',{staticStyle:{\"height\":\"100%\",\"background\":\"#fff\"}},[_c('markdown',{ref:\"note\",attrs:{\"noteId\":_vm.noteId},on:{\"insert\":_vm.insertToEditor,\"edit\":_vm.editNote,\"expendNote\":_vm.expendNote}})],1)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"padding-top\":\"8px\",\"height\":\"100%\"}},[(!_vm.panes.length)?_c('span',{staticStyle:{\"color\":\"#00000073\"}},[_vm._v(\"当前无 SQL 执行结果\")]):_c('div',{staticClass:\"flex-col\",staticStyle:{\"height\":\"100%\"}},[_c('a-tabs',{attrs:{\"hide-add\":\"\",\"type\":\"editable-card\"},on:{\"edit\":_vm.onEdit},model:{value:(_vm.activeKey),callback:function ($$v) {_vm.activeKey=$$v},expression:\"activeKey\"}},[_vm._l((_vm.panes),function(pane){return _c('a-tab-pane',{key:pane.key,attrs:{\"closable\":pane.closable}},[_c('span',{attrs:{\"slot\":\"tab\"},slot:\"tab\"},[(_vm.newInfoNum && pane.key === _vm.INFO_PANE)?_c('a-badge',{attrs:{\"count\":_vm.newInfoNum}},[_c('span',{staticClass:\"select-none\"},[_vm._v(_vm._s(pane.title))])]):_c('span',{staticClass:\"select-none\"},[_vm._v(_vm._s(pane.title))])],1)])}),_c('a-button',{attrs:{\"slot\":\"tabBarExtraContent\"},on:{\"click\":_vm.handleClear,\"mouseover\":function($event){return _vm.cleanIconHover(true)},\"mouseleave\":function($event){return _vm.cleanIconHover(false)}},slot:\"tabBarExtraContent\"},[_c('img',{staticClass:\"mgr-8\",attrs:{\"src\":require('@/assets/icon/' + _vm.cleanIcon + '.svg')}}),_vm._v(\" 清空结果 \")])],2),_c('div',{staticStyle:{\"overflow\":\"hidden\",\"flex\":\"1\"}},[(_vm.activeKey === _vm.INFO_PANE)?_c('tab-pane-console',{ref:\"tab_pane_console\",attrs:{\"infoList\":_vm.currentPane.content,\"panes\":_vm.panes},on:{\"handleToResult\":_vm.handleSelect,\"clickSql\":(val) => this.$emit('tabChange', val)}}):_c('tab-pane-result',{attrs:{\"result\":_vm.currentPane},on:{\"clickSql\":(val) => this.$emit('tabChange', val)}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import request from \"@/utils/request\";\n\nconst sqlApi = {\n batches: '/api/yasdbs/execute'\n}\n\n// 执行 sql\nexport function runSqlApi(param) {\n return request({\n url: sqlApi.batches,\n method: 'post',\n data: param\n })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"pdlr-12 pdtb-8 mglr-12\",staticStyle:{\"overflow\":\"auto\",\"height\":\"100%\"},attrs:{\"id\":\"currentTabPaneConsole\"}},[_vm._l((_vm.infoList),function(item,index){return _c('div',{key:index,staticClass:\"mgb-8\"},[_c('div',{staticClass:\"console\"},[_c('span',{class:[item.type === 'error' ? 'msg-red' : 'msg', 'mgr-4']},[_vm._v(_vm._s(item.message))]),_c('div',{staticClass:\"flex sql-tooltip mgl-8\"},[_c('a-popover',[_c('template',{slot:\"content\"},[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(\"执行时间:\"+_vm._s(_vm.timestamp2Date(item.startTime)))]),_c('br'),_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(\"结束时间:\"+_vm._s(_vm.timestamp2Date(item.endTime)))])]),_c('span',[_vm._v(_vm._s(item.execTime)+\"ms ( 执行 \"+_vm._s(item.escapeTime)+\" ms )\")])],2),(item.resultTabKey)?_c('div',{staticClass:\"flex\"},[_vm._v(\"   |   \"),(_vm.panes.findIndex((pane) => pane.key === item.resultTabKey) === -1)?_c('a',{staticClass:\"disable-link\",attrs:{\"title\":\"结果页已被关闭\"}},[_vm._v(_vm._s(item.resultTabKey))]):_c('a',{staticClass:\"sql-tooltip\",on:{\"click\":function($event){return _vm.handleToResult(item.resultTabKey)}}},[_vm._v(_vm._s(item.resultTabKey))])]):_vm._e()],1)]),_c('a-tag',{staticClass:\"sql-content\",attrs:{\"title\":item.sql},on:{\"click\":function($event){return _vm.clickSql(item.sql)}}},[_vm._v(_vm._s(item.sql))])],1)}),_c('div',{staticStyle:{\"margin-top\":\"48px\"}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabPaneConsole.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabPaneConsole.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabPaneConsole.vue?vue&type=template&id=4f2453a8&scoped=true&\"\nimport script from \"./TabPaneConsole.vue?vue&type=script&lang=js&\"\nexport * from \"./TabPaneConsole.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TabPaneConsole.vue?vue&type=style&index=0&id=4f2453a8&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f2453a8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('result-table',{attrs:{\"columns\":_vm.columns,\"data-source\":_vm.data,\"result\":_vm.result},on:{\"clickSql\":(val) => this.$emit('clickSql', val)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabPaneResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabPaneResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabPaneResult.vue?vue&type=template&id=a5bbfe96&scoped=true&\"\nimport script from \"./TabPaneResult.vue?vue&type=script&lang=js&\"\nexport * from \"./TabPaneResult.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5bbfe96\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SqlResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SqlResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SqlResult.vue?vue&type=template&id=446b2b58&scoped=true&\"\nimport script from \"./SqlResult.vue?vue&type=script&lang=js&\"\nexport * from \"./SqlResult.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SqlResult.vue?vue&type=style&index=0&id=446b2b58&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"446b2b58\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex-col\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"flex-between pdtb-8 pdlr-12\"},[_c('div',[_c('a-button',{attrs:{\"loading\":_vm.loading,\"type\":\"primary\",\"icon\":\"play-circle\",\"title\":\"Ctrl + Enter\"},on:{\"click\":_vm.handleRun}},[_c('span',[_vm._v(\"运行\")])]),_c('a-button',{staticClass:\"ml-8\",attrs:{\"icon\":\"delete\",\"title\":\"Ctrl + Delete\"},on:{\"click\":_vm.handleClear}},[_c('span',[_vm._v(\"清除\")])]),_c('a-button',{staticClass:\"ml-8\",attrs:{\"icon\":\"highlight\",\"title\":\"Ctrl + Shift + F\"},on:{\"click\":_vm.handleFormat}},[_c('span',[_vm._v(\"一键美化\")])])],1),_c('div',[_c('a-button',{staticClass:\"mr-8\",attrs:{\"loading\":_vm.resetLoading,\"title\":\"切换数据库用户\",\"icon\":\"swap\"},on:{\"click\":_vm.handleSwapSchema}},[_c('span',{staticClass:\"mgl-8\"},[_vm._v(_vm._s(_vm.currentSchema))])]),_c('a-button',{attrs:{\"loading\":_vm.resetLoading,\"title\":\"Ctrl + Shift + Delete\",\"icon\":\"reload\"},on:{\"click\":_vm.handleClearEnv}},[_c('span',{staticClass:\"mgl-8\"},[_vm._v(\"重置环境\")])])],1)]),_c('div',{staticStyle:{\"flex\":\"1\",\"overflow-y\":\"auto\"}},[_c('codemirror',{ref:\"cm\",staticStyle:{\"height\":\"100%\"},attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}})],1),_c('a-modal',{attrs:{\"title\":\"重置环境\",\"width\":700},on:{\"cancel\":_vm.modalClose},model:{value:(_vm.showResetModal),callback:function ($$v) {_vm.showResetModal=$$v},expression:\"showResetModal\"}},[_c('template',{slot:\"footer\"},[_c('a-button',{key:\"back\",on:{\"click\":_vm.modalClose}},[_vm._v(\" 取消 \")]),_c('a-button',{key:\"submit\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleResetOK}},[_vm._v(\" 确认 \")])],1),_c('div',[_c('a-form',{attrs:{\"label-col\":{ span: 4 },\"wrapper-col\":{ span: 18 }}},[_c('a-form-item',{attrs:{\"colon\":false,\"label\":\" \",\"label-col\":{ span: 3 },\"wrapper-col\":{ span: 19 }}},[_c('a-alert',{staticStyle:{\"text-align\":\"center\"},attrs:{\"description\":\"重置环境将删除所有对象,并将数据库置为初始状态。\",\"type\":\"error\"}})],1),_c('a-form-item',{attrs:{\"label\":\"归档\",\"help\":\"保存当前环境中执行过的SQL语句\"}},[_c('a-radio-group',{model:{value:(_vm.archive),callback:function ($$v) {_vm.archive=$$v},expression:\"archive\"}},[_c('a-radio',{attrs:{\"value\":true}},[_vm._v(\" 是 \")]),_c('a-radio',{attrs:{\"value\":false}},[_vm._v(\" 否 \")])],1)],1),(_vm.archive)?_c('a-form-item',{attrs:{\"label\":\"归档描述\"}},[_c('a-textarea',{attrs:{\"placeholder\":\"请输入归档描述\",\"auto-size\":{ minRows: 3, maxRows: 5 },\"maxLength\":200},model:{value:(_vm.archiveDescription),callback:function ($$v) {_vm.archiveDescription=$$v},expression:\"archiveDescription\"}})],1):_vm._e()],1)],1)],2),_c('a-modal',{attrs:{\"title\":\"设置数据库用户\",\"width\":\"35%\"},on:{\"cancel\":_vm.modalClose},model:{value:(_vm.showSchemaModal),callback:function ($$v) {_vm.showSchemaModal=$$v},expression:\"showSchemaModal\"}},[_c('template',{slot:\"footer\"},[_c('a-button',{key:\"back\",on:{\"click\":_vm.modalClose}},[_vm._v(\" 取消 \")]),_c('a-button',{key:\"submit\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSwapOK}},[_vm._v(\" 确认 \")])],1),_c('a-form',{attrs:{\"label-col\":{ span: 5 },\"wrapper-col\":{ span: 17 }}},[_c('a-form-item',{attrs:{\"colon\":false,\"label\":\" \",\"label-col\":{ span: 3 },\"wrapper-col\":{ span: 19 }}},[_c('a-alert',{staticStyle:{\"white-space\":\"pre\",\"text-align\":\"center\"},attrs:{\"description\":\"1. 默认用户/密码:SQLAB/sqlab@yashandb\\n2. 设置的执行SQL的数据库用户,仅针对当前执行环境生效。\",\"type\":\"info\"}})],1),_c('a-form-item',{attrs:{\"help\":_vm.schemaStatus == 'success' ? '' : '用户名不可为空',\"validate-status\":_vm.schemaStatus}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\" 用户名  \"),_c('a-tooltip',{attrs:{\"title\":\"用户名大小写敏感,创建用户时不加引号置为大写,请注意区分\"}},[_c('a-icon',{attrs:{\"type\":\"question-circle-o\"}})],1)],1),_c('a-input',{attrs:{\"placeholder\":\"请输入数据库用户名\",\"allowClear\":true},model:{value:(_vm.swapSchema),callback:function ($$v) {_vm.swapSchema=$$v},expression:\"swapSchema\"}})],1),_c('a-form-item',{attrs:{\"label\":\"密码\",\"help\":_vm.schemaPwdStatus == 'success' ? '' : '用户密码不可为空',\"validate-status\":_vm.schemaPwdStatus}},[_c('a-input-password',{attrs:{\"placeholder\":\"请输入数据库用户密码\"},model:{value:(_vm.schemaPwd),callback:function ($$v) {_vm.schemaPwd=$$v},expression:\"schemaPwd\"}})],1)],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/allDialects.ts\nvar allDialects_exports = {};\n__export(allDialects_exports, {\n bigquery: () => bigquery,\n db2: () => db2,\n db2i: () => db2i,\n hive: () => hive,\n mariadb: () => mariadb,\n mysql: () => mysql,\n n1ql: () => n1ql,\n plsql: () => plsql,\n postgresql: () => postgresql,\n redshift: () => redshift,\n singlestoredb: () => singlestoredb,\n snowflake: () => snowflake,\n spark: () => spark,\n sql: () => sql,\n sqlite: () => sqlite,\n tidb: () => tidb,\n transactsql: () => transactsql,\n trino: () => trino\n});\n\n// src/expandPhrases.ts\nvar expandPhrases = (phrases) => phrases.flatMap(expandSinglePhrase);\nvar expandSinglePhrase = (phrase) => buildCombinations(parsePhrase(phrase)).map(stripExtraWhitespace);\nvar stripExtraWhitespace = (text) => text.replace(/ +/g, \" \").trim();\nvar parsePhrase = (text) => ({\n type: \"mandatory_block\",\n items: parseAlteration(text, 0)[0]\n});\nvar parseAlteration = (text, index, expectClosing) => {\n const alterations = [];\n while (text[index]) {\n const [term, newIndex] = parseConcatenation(text, index);\n alterations.push(term);\n index = newIndex;\n if (text[index] === \"|\") {\n index++;\n } else if (text[index] === \"}\" || text[index] === \"]\") {\n if (expectClosing !== text[index]) {\n throw new Error(`Unbalanced parenthesis in: ${text}`);\n }\n index++;\n return [alterations, index];\n } else if (index === text.length) {\n if (expectClosing) {\n throw new Error(`Unbalanced parenthesis in: ${text}`);\n }\n return [alterations, index];\n } else {\n throw new Error(`Unexpected \"${text[index]}\"`);\n }\n }\n return [alterations, index];\n};\nvar parseConcatenation = (text, index) => {\n const items = [];\n while (true) {\n const [term, newIndex] = parseTerm(text, index);\n if (term) {\n items.push(term);\n index = newIndex;\n } else {\n break;\n }\n }\n return items.length === 1 ? [items[0], index] : [{ type: \"concatenation\", items }, index];\n};\nvar parseTerm = (text, index) => {\n if (text[index] === \"{\") {\n return parseMandatoryBlock(text, index + 1);\n } else if (text[index] === \"[\") {\n return parseOptionalBlock(text, index + 1);\n } else {\n let word = \"\";\n while (text[index] && /[A-Za-z0-9_ ]/.test(text[index])) {\n word += text[index];\n index++;\n }\n return [word, index];\n }\n};\nvar parseMandatoryBlock = (text, index) => {\n const [items, newIndex] = parseAlteration(text, index, \"}\");\n return [{ type: \"mandatory_block\", items }, newIndex];\n};\nvar parseOptionalBlock = (text, index) => {\n const [items, newIndex] = parseAlteration(text, index, \"]\");\n return [{ type: \"optional_block\", items }, newIndex];\n};\nvar buildCombinations = (node) => {\n if (typeof node === \"string\") {\n return [node];\n } else if (node.type === \"concatenation\") {\n return node.items.map(buildCombinations).reduce(stringCombinations, [\"\"]);\n } else if (node.type === \"mandatory_block\") {\n return node.items.flatMap(buildCombinations);\n } else if (node.type === \"optional_block\") {\n return [\"\", ...node.items.flatMap(buildCombinations)];\n } else {\n throw new Error(`Unknown node type: ${node}`);\n }\n};\nvar stringCombinations = (xs, ys) => {\n const results = [];\n for (const x of xs) {\n for (const y of ys) {\n results.push(x + y);\n }\n }\n return results;\n};\n\n// src/lexer/token.ts\nvar TokenType = /* @__PURE__ */ ((TokenType2) => {\n TokenType2[\"QUOTED_IDENTIFIER\"] = \"QUOTED_IDENTIFIER\";\n TokenType2[\"IDENTIFIER\"] = \"IDENTIFIER\";\n TokenType2[\"STRING\"] = \"STRING\";\n TokenType2[\"VARIABLE\"] = \"VARIABLE\";\n TokenType2[\"RESERVED_DATA_TYPE\"] = \"RESERVED_DATA_TYPE\";\n TokenType2[\"RESERVED_PARAMETERIZED_DATA_TYPE\"] = \"RESERVED_PARAMETERIZED_DATA_TYPE\";\n TokenType2[\"RESERVED_KEYWORD\"] = \"RESERVED_KEYWORD\";\n TokenType2[\"RESERVED_FUNCTION_NAME\"] = \"RESERVED_FUNCTION_NAME\";\n TokenType2[\"RESERVED_PHRASE\"] = \"RESERVED_PHRASE\";\n TokenType2[\"RESERVED_SET_OPERATION\"] = \"RESERVED_SET_OPERATION\";\n TokenType2[\"RESERVED_CLAUSE\"] = \"RESERVED_CLAUSE\";\n TokenType2[\"RESERVED_SELECT\"] = \"RESERVED_SELECT\";\n TokenType2[\"RESERVED_JOIN\"] = \"RESERVED_JOIN\";\n TokenType2[\"ARRAY_IDENTIFIER\"] = \"ARRAY_IDENTIFIER\";\n TokenType2[\"ARRAY_KEYWORD\"] = \"ARRAY_KEYWORD\";\n TokenType2[\"CASE\"] = \"CASE\";\n TokenType2[\"END\"] = \"END\";\n TokenType2[\"WHEN\"] = \"WHEN\";\n TokenType2[\"ELSE\"] = \"ELSE\";\n TokenType2[\"THEN\"] = \"THEN\";\n TokenType2[\"LIMIT\"] = \"LIMIT\";\n TokenType2[\"BETWEEN\"] = \"BETWEEN\";\n TokenType2[\"AND\"] = \"AND\";\n TokenType2[\"OR\"] = \"OR\";\n TokenType2[\"XOR\"] = \"XOR\";\n TokenType2[\"OPERATOR\"] = \"OPERATOR\";\n TokenType2[\"COMMA\"] = \"COMMA\";\n TokenType2[\"ASTERISK\"] = \"ASTERISK\";\n TokenType2[\"PROPERTY_ACCESS_OPERATOR\"] = \"PROPERTY_ACCESS_OPERATOR\";\n TokenType2[\"OPEN_PAREN\"] = \"OPEN_PAREN\";\n TokenType2[\"CLOSE_PAREN\"] = \"CLOSE_PAREN\";\n TokenType2[\"LINE_COMMENT\"] = \"LINE_COMMENT\";\n TokenType2[\"BLOCK_COMMENT\"] = \"BLOCK_COMMENT\";\n TokenType2[\"DISABLE_COMMENT\"] = \"DISABLE_COMMENT\";\n TokenType2[\"NUMBER\"] = \"NUMBER\";\n TokenType2[\"NAMED_PARAMETER\"] = \"NAMED_PARAMETER\";\n TokenType2[\"QUOTED_PARAMETER\"] = \"QUOTED_PARAMETER\";\n TokenType2[\"NUMBERED_PARAMETER\"] = \"NUMBERED_PARAMETER\";\n TokenType2[\"POSITIONAL_PARAMETER\"] = \"POSITIONAL_PARAMETER\";\n TokenType2[\"CUSTOM_PARAMETER\"] = \"CUSTOM_PARAMETER\";\n TokenType2[\"DELIMITER\"] = \"DELIMITER\";\n TokenType2[\"EOF\"] = \"EOF\";\n return TokenType2;\n})(TokenType || {});\nvar createEofToken = (index) => ({\n type: \"EOF\" /* EOF */,\n raw: \"\\xABEOF\\xBB\",\n text: \"\\xABEOF\\xBB\",\n start: index\n});\nvar EOF_TOKEN = createEofToken(Infinity);\nvar testToken = (compareToken) => (token) => token.type === compareToken.type && token.text === compareToken.text;\nvar isToken = {\n ARRAY: testToken({ text: \"ARRAY\", type: \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */ }),\n BY: testToken({ text: \"BY\", type: \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */ }),\n SET: testToken({ text: \"SET\", type: \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */ }),\n STRUCT: testToken({ text: \"STRUCT\", type: \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */ }),\n WINDOW: testToken({ text: \"WINDOW\", type: \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */ }),\n VALUES: testToken({ text: \"VALUES\", type: \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */ })\n};\nvar isReserved = (type) => type === \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */ || type === \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */ || type === \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */ || type === \"RESERVED_PHRASE\" /* RESERVED_PHRASE */ || type === \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */ || type === \"RESERVED_SELECT\" /* RESERVED_SELECT */ || type === \"RESERVED_SET_OPERATION\" /* RESERVED_SET_OPERATION */ || type === \"RESERVED_JOIN\" /* RESERVED_JOIN */ || type === \"ARRAY_KEYWORD\" /* ARRAY_KEYWORD */ || type === \"CASE\" /* CASE */ || type === \"END\" /* END */ || type === \"WHEN\" /* WHEN */ || type === \"ELSE\" /* ELSE */ || type === \"THEN\" /* THEN */ || type === \"LIMIT\" /* LIMIT */ || type === \"BETWEEN\" /* BETWEEN */ || type === \"AND\" /* AND */ || type === \"OR\" /* OR */ || type === \"XOR\" /* XOR */;\nvar isLogicalOperator = (type) => type === \"AND\" /* AND */ || type === \"OR\" /* OR */ || type === \"XOR\" /* XOR */;\n\n// src/languages/bigquery/bigquery.functions.ts\nvar functions = [\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/aead_encryption_functions\n \"KEYS.NEW_KEYSET\",\n \"KEYS.ADD_KEY_FROM_RAW_BYTES\",\n \"AEAD.DECRYPT_BYTES\",\n \"AEAD.DECRYPT_STRING\",\n \"AEAD.ENCRYPT\",\n \"KEYS.KEYSET_CHAIN\",\n \"KEYS.KEYSET_FROM_JSON\",\n \"KEYS.KEYSET_TO_JSON\",\n \"KEYS.ROTATE_KEYSET\",\n \"KEYS.KEYSET_LENGTH\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_analytic_functions\n \"ANY_VALUE\",\n \"ARRAY_AGG\",\n \"AVG\",\n \"CORR\",\n \"COUNT\",\n \"COUNTIF\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"MAX\",\n \"MIN\",\n \"ST_CLUSTERDBSCAN\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STRING_AGG\",\n \"SUM\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions\n \"ANY_VALUE\",\n \"ARRAY_AGG\",\n \"ARRAY_CONCAT_AGG\",\n \"AVG\",\n \"BIT_AND\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"COUNT\",\n \"COUNTIF\",\n \"LOGICAL_AND\",\n \"LOGICAL_OR\",\n \"MAX\",\n \"MIN\",\n \"STRING_AGG\",\n \"SUM\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/approximate_aggregate_functions\n \"APPROX_COUNT_DISTINCT\",\n \"APPROX_QUANTILES\",\n \"APPROX_TOP_COUNT\",\n \"APPROX_TOP_SUM\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions\n // 'ARRAY',\n \"ARRAY_CONCAT\",\n \"ARRAY_LENGTH\",\n \"ARRAY_TO_STRING\",\n \"GENERATE_ARRAY\",\n \"GENERATE_DATE_ARRAY\",\n \"GENERATE_TIMESTAMP_ARRAY\",\n \"ARRAY_REVERSE\",\n \"OFFSET\",\n \"SAFE_OFFSET\",\n \"ORDINAL\",\n \"SAFE_ORDINAL\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/bit_functions\n \"BIT_COUNT\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/conversion_functions\n // 'CASE',\n \"PARSE_BIGNUMERIC\",\n \"PARSE_NUMERIC\",\n \"SAFE_CAST\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions\n \"CURRENT_DATE\",\n \"EXTRACT\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATE_SUB\",\n \"DATE_DIFF\",\n \"DATE_TRUNC\",\n \"DATE_FROM_UNIX_DATE\",\n \"FORMAT_DATE\",\n \"LAST_DAY\",\n \"PARSE_DATE\",\n \"UNIX_DATE\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/datetime_functions\n \"CURRENT_DATETIME\",\n \"DATETIME\",\n \"EXTRACT\",\n \"DATETIME_ADD\",\n \"DATETIME_SUB\",\n \"DATETIME_DIFF\",\n \"DATETIME_TRUNC\",\n \"FORMAT_DATETIME\",\n \"LAST_DAY\",\n \"PARSE_DATETIME\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/debugging_functions\n \"ERROR\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/federated_query_functions\n \"EXTERNAL_QUERY\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions\n \"S2_CELLIDFROMPOINT\",\n \"S2_COVERINGCELLIDS\",\n \"ST_ANGLE\",\n \"ST_AREA\",\n \"ST_ASBINARY\",\n \"ST_ASGEOJSON\",\n \"ST_ASTEXT\",\n \"ST_AZIMUTH\",\n \"ST_BOUNDARY\",\n \"ST_BOUNDINGBOX\",\n \"ST_BUFFER\",\n \"ST_BUFFERWITHTOLERANCE\",\n \"ST_CENTROID\",\n \"ST_CENTROID_AGG\",\n \"ST_CLOSESTPOINT\",\n \"ST_CLUSTERDBSCAN\",\n \"ST_CONTAINS\",\n \"ST_CONVEXHULL\",\n \"ST_COVEREDBY\",\n \"ST_COVERS\",\n \"ST_DIFFERENCE\",\n \"ST_DIMENSION\",\n \"ST_DISJOINT\",\n \"ST_DISTANCE\",\n \"ST_DUMP\",\n \"ST_DWITHIN\",\n \"ST_ENDPOINT\",\n \"ST_EQUALS\",\n \"ST_EXTENT\",\n \"ST_EXTERIORRING\",\n \"ST_GEOGFROM\",\n \"ST_GEOGFROMGEOJSON\",\n \"ST_GEOGFROMTEXT\",\n \"ST_GEOGFROMWKB\",\n \"ST_GEOGPOINT\",\n \"ST_GEOGPOINTFROMGEOHASH\",\n \"ST_GEOHASH\",\n \"ST_GEOMETRYTYPE\",\n \"ST_INTERIORRINGS\",\n \"ST_INTERSECTION\",\n \"ST_INTERSECTS\",\n \"ST_INTERSECTSBOX\",\n \"ST_ISCOLLECTION\",\n \"ST_ISEMPTY\",\n \"ST_LENGTH\",\n \"ST_MAKELINE\",\n \"ST_MAKEPOLYGON\",\n \"ST_MAKEPOLYGONORIENTED\",\n \"ST_MAXDISTANCE\",\n \"ST_NPOINTS\",\n \"ST_NUMGEOMETRIES\",\n \"ST_NUMPOINTS\",\n \"ST_PERIMETER\",\n \"ST_POINTN\",\n \"ST_SIMPLIFY\",\n \"ST_SNAPTOGRID\",\n \"ST_STARTPOINT\",\n \"ST_TOUCHES\",\n \"ST_UNION\",\n \"ST_UNION_AGG\",\n \"ST_WITHIN\",\n \"ST_X\",\n \"ST_Y\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/hash_functions\n \"FARM_FINGERPRINT\",\n \"MD5\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/hll_functions\n \"HLL_COUNT.INIT\",\n \"HLL_COUNT.MERGE\",\n \"HLL_COUNT.MERGE_PARTIAL\",\n \"HLL_COUNT.EXTRACT\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/interval_functions\n \"MAKE_INTERVAL\",\n \"EXTRACT\",\n \"JUSTIFY_DAYS\",\n \"JUSTIFY_HOURS\",\n \"JUSTIFY_INTERVAL\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/json_functions\n \"JSON_EXTRACT\",\n \"JSON_QUERY\",\n \"JSON_EXTRACT_SCALAR\",\n \"JSON_VALUE\",\n \"JSON_EXTRACT_ARRAY\",\n \"JSON_QUERY_ARRAY\",\n \"JSON_EXTRACT_STRING_ARRAY\",\n \"JSON_VALUE_ARRAY\",\n \"TO_JSON_STRING\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/mathematical_functions\n \"ABS\",\n \"SIGN\",\n \"IS_INF\",\n \"IS_NAN\",\n \"IEEE_DIVIDE\",\n \"RAND\",\n \"SQRT\",\n \"POW\",\n \"POWER\",\n \"EXP\",\n \"LN\",\n \"LOG\",\n \"LOG10\",\n \"GREATEST\",\n \"LEAST\",\n \"DIV\",\n \"SAFE_DIVIDE\",\n \"SAFE_MULTIPLY\",\n \"SAFE_NEGATE\",\n \"SAFE_ADD\",\n \"SAFE_SUBTRACT\",\n \"MOD\",\n \"ROUND\",\n \"TRUNC\",\n \"CEIL\",\n \"CEILING\",\n \"FLOOR\",\n \"COS\",\n \"COSH\",\n \"ACOS\",\n \"ACOSH\",\n \"SIN\",\n \"SINH\",\n \"ASIN\",\n \"ASINH\",\n \"TAN\",\n \"TANH\",\n \"ATAN\",\n \"ATANH\",\n \"ATAN2\",\n \"RANGE_BUCKET\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/navigation_functions\n \"FIRST_VALUE\",\n \"LAST_VALUE\",\n \"NTH_VALUE\",\n \"LEAD\",\n \"LAG\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/net_functions\n \"NET.IP_FROM_STRING\",\n \"NET.SAFE_IP_FROM_STRING\",\n \"NET.IP_TO_STRING\",\n \"NET.IP_NET_MASK\",\n \"NET.IP_TRUNC\",\n \"NET.IPV4_FROM_INT64\",\n \"NET.IPV4_TO_INT64\",\n \"NET.HOST\",\n \"NET.PUBLIC_SUFFIX\",\n \"NET.REG_DOMAIN\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/numbering_functions\n \"RANK\",\n \"DENSE_RANK\",\n \"PERCENT_RANK\",\n \"CUME_DIST\",\n \"NTILE\",\n \"ROW_NUMBER\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/security_functions\n \"SESSION_USER\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/statistical_aggregate_functions\n \"CORR\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STDDEV\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/string_functions\n \"ASCII\",\n \"BYTE_LENGTH\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHR\",\n \"CODE_POINTS_TO_BYTES\",\n \"CODE_POINTS_TO_STRING\",\n \"CONCAT\",\n \"CONTAINS_SUBSTR\",\n \"ENDS_WITH\",\n \"FORMAT\",\n \"FROM_BASE32\",\n \"FROM_BASE64\",\n \"FROM_HEX\",\n \"INITCAP\",\n \"INSTR\",\n \"LEFT\",\n \"LENGTH\",\n \"LPAD\",\n \"LOWER\",\n \"LTRIM\",\n \"NORMALIZE\",\n \"NORMALIZE_AND_CASEFOLD\",\n \"OCTET_LENGTH\",\n \"REGEXP_CONTAINS\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_EXTRACT_ALL\",\n \"REGEXP_INSTR\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REPLACE\",\n \"REPEAT\",\n \"REVERSE\",\n \"RIGHT\",\n \"RPAD\",\n \"RTRIM\",\n \"SAFE_CONVERT_BYTES_TO_STRING\",\n \"SOUNDEX\",\n \"SPLIT\",\n \"STARTS_WITH\",\n \"STRPOS\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TO_BASE32\",\n \"TO_BASE64\",\n \"TO_CODE_POINTS\",\n \"TO_HEX\",\n \"TRANSLATE\",\n \"TRIM\",\n \"UNICODE\",\n \"UPPER\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/time_functions\n \"CURRENT_TIME\",\n \"TIME\",\n \"EXTRACT\",\n \"TIME_ADD\",\n \"TIME_SUB\",\n \"TIME_DIFF\",\n \"TIME_TRUNC\",\n \"FORMAT_TIME\",\n \"PARSE_TIME\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions\n \"CURRENT_TIMESTAMP\",\n \"EXTRACT\",\n \"STRING\",\n \"TIMESTAMP\",\n \"TIMESTAMP_ADD\",\n \"TIMESTAMP_SUB\",\n \"TIMESTAMP_DIFF\",\n \"TIMESTAMP_TRUNC\",\n \"FORMAT_TIMESTAMP\",\n \"PARSE_TIMESTAMP\",\n \"TIMESTAMP_SECONDS\",\n \"TIMESTAMP_MILLIS\",\n \"TIMESTAMP_MICROS\",\n \"UNIX_SECONDS\",\n \"UNIX_MILLIS\",\n \"UNIX_MICROS\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/uuid_functions\n \"GENERATE_UUID\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/conditional_expressions\n \"COALESCE\",\n \"IF\",\n \"IFNULL\",\n \"NULLIF\",\n // https://cloud.google.com/bigquery/docs/reference/legacy-sql\n // legacyAggregate\n \"AVG\",\n \"BIT_AND\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"CORR\",\n \"COUNT\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"EXACT_COUNT_DISTINCT\",\n \"FIRST\",\n \"GROUP_CONCAT\",\n \"GROUP_CONCAT_UNQUOTED\",\n \"LAST\",\n \"MAX\",\n \"MIN\",\n \"NEST\",\n \"NTH\",\n \"QUANTILES\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"TOP\",\n \"UNIQUE\",\n \"VARIANCE\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n // legacyBitwise\n \"BIT_COUNT\",\n // legacyCasting\n \"BOOLEAN\",\n \"BYTES\",\n \"CAST\",\n \"FLOAT\",\n \"HEX_STRING\",\n \"INTEGER\",\n \"STRING\",\n // legacyComparison\n // expr 'IN',\n \"COALESCE\",\n \"GREATEST\",\n \"IFNULL\",\n \"IS_INF\",\n \"IS_NAN\",\n \"IS_EXPLICITLY_DEFINED\",\n \"LEAST\",\n \"NVL\",\n // legacyDatetime\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATEDIFF\",\n \"DAY\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"FORMAT_UTC_USEC\",\n \"HOUR\",\n \"MINUTE\",\n \"MONTH\",\n \"MSEC_TO_TIMESTAMP\",\n \"NOW\",\n \"PARSE_UTC_USEC\",\n \"QUARTER\",\n \"SEC_TO_TIMESTAMP\",\n \"SECOND\",\n \"STRFTIME_UTC_USEC\",\n \"TIME\",\n \"TIMESTAMP\",\n \"TIMESTAMP_TO_MSEC\",\n \"TIMESTAMP_TO_SEC\",\n \"TIMESTAMP_TO_USEC\",\n \"USEC_TO_TIMESTAMP\",\n \"UTC_USEC_TO_DAY\",\n \"UTC_USEC_TO_HOUR\",\n \"UTC_USEC_TO_MONTH\",\n \"UTC_USEC_TO_WEEK\",\n \"UTC_USEC_TO_YEAR\",\n \"WEEK\",\n \"YEAR\",\n // legacyIp\n \"FORMAT_IP\",\n \"PARSE_IP\",\n \"FORMAT_PACKED_IP\",\n \"PARSE_PACKED_IP\",\n // legacyJson\n \"JSON_EXTRACT\",\n \"JSON_EXTRACT_SCALAR\",\n // legacyMath\n \"ABS\",\n \"ACOS\",\n \"ACOSH\",\n \"ASIN\",\n \"ASINH\",\n \"ATAN\",\n \"ATANH\",\n \"ATAN2\",\n \"CEIL\",\n \"COS\",\n \"COSH\",\n \"DEGREES\",\n \"EXP\",\n \"FLOOR\",\n \"LN\",\n \"LOG\",\n \"LOG2\",\n \"LOG10\",\n \"PI\",\n \"POW\",\n \"RADIANS\",\n \"RAND\",\n \"ROUND\",\n \"SIN\",\n \"SINH\",\n \"SQRT\",\n \"TAN\",\n \"TANH\",\n // legacyRegex\n \"REGEXP_MATCH\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_REPLACE\",\n // legacyString\n \"CONCAT\",\n // expr CONTAINS 'str'\n \"INSTR\",\n \"LEFT\",\n \"LENGTH\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"REPLACE\",\n \"RIGHT\",\n \"RPAD\",\n \"RTRIM\",\n \"SPLIT\",\n \"SUBSTR\",\n \"UPPER\",\n // legacyTableWildcard\n \"TABLE_DATE_RANGE\",\n \"TABLE_DATE_RANGE_STRICT\",\n \"TABLE_QUERY\",\n // legacyUrl\n \"HOST\",\n \"DOMAIN\",\n \"TLD\",\n // legacyWindow\n \"AVG\",\n \"COUNT\",\n \"MAX\",\n \"MIN\",\n \"STDDEV\",\n \"SUM\",\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"ROW_NUMBER\",\n // legacyMisc\n \"CURRENT_USER\",\n \"EVERY\",\n \"FROM_BASE64\",\n \"HASH\",\n \"FARM_FINGERPRINT\",\n \"IF\",\n \"POSITION\",\n \"SHA1\",\n \"SOME\",\n \"TO_BASE64\",\n // other\n \"BQ.JOBS.CANCEL\",\n \"BQ.REFRESH_MATERIALIZED_VIEW\",\n // ddl\n \"OPTIONS\",\n // pivot\n \"PIVOT\",\n \"UNPIVOT\"\n];\n\n// src/languages/bigquery/bigquery.keywords.ts\nvar keywords = [\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#reserved_keywords\n \"ALL\",\n \"AND\",\n \"ANY\",\n \"AS\",\n \"ASC\",\n \"ASSERT_ROWS_MODIFIED\",\n \"AT\",\n \"BETWEEN\",\n \"BY\",\n \"CASE\",\n \"CAST\",\n \"COLLATE\",\n \"CONTAINS\",\n \"CREATE\",\n \"CROSS\",\n \"CUBE\",\n \"CURRENT\",\n \"DEFAULT\",\n \"DEFINE\",\n \"DESC\",\n \"DISTINCT\",\n \"ELSE\",\n \"END\",\n \"ENUM\",\n \"ESCAPE\",\n \"EXCEPT\",\n \"EXCLUDE\",\n \"EXISTS\",\n \"EXTRACT\",\n \"FALSE\",\n \"FETCH\",\n \"FOLLOWING\",\n \"FOR\",\n \"FROM\",\n \"FULL\",\n \"GROUP\",\n \"GROUPING\",\n \"GROUPS\",\n \"HASH\",\n \"HAVING\",\n \"IF\",\n \"IGNORE\",\n \"IN\",\n \"INNER\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"JOIN\",\n \"LATERAL\",\n \"LEFT\",\n \"LIMIT\",\n \"LOOKUP\",\n \"MERGE\",\n \"NATURAL\",\n \"NEW\",\n \"NO\",\n \"NOT\",\n \"NULL\",\n \"NULLS\",\n \"OF\",\n \"ON\",\n \"OR\",\n \"ORDER\",\n \"OUTER\",\n \"OVER\",\n \"PARTITION\",\n \"PRECEDING\",\n \"PROTO\",\n \"RANGE\",\n \"RECURSIVE\",\n \"RESPECT\",\n \"RIGHT\",\n \"ROLLUP\",\n \"ROWS\",\n \"SELECT\",\n \"SET\",\n \"SOME\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"THEN\",\n \"TO\",\n \"TREAT\",\n \"TRUE\",\n \"UNBOUNDED\",\n \"UNION\",\n \"UNNEST\",\n \"USING\",\n \"WHEN\",\n \"WHERE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHIN\",\n // misc\n \"SAFE\",\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language\n \"LIKE\",\n // CREATE TABLE LIKE\n \"COPY\",\n // CREATE TABLE COPY\n \"CLONE\",\n // CREATE TABLE CLONE\n \"IN\",\n \"OUT\",\n \"INOUT\",\n \"RETURNS\",\n \"LANGUAGE\",\n \"CASCADE\",\n \"RESTRICT\",\n \"DETERMINISTIC\"\n];\nvar dataTypes = [\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types\n \"ARRAY\",\n // parametric, ARRAY\n \"BOOL\",\n \"BYTES\",\n // parameterised, BYTES(Length)\n \"DATE\",\n \"DATETIME\",\n \"GEOGRAPHY\",\n \"INTERVAL\",\n \"INT64\",\n \"INT\",\n \"SMALLINT\",\n \"INTEGER\",\n \"BIGINT\",\n \"TINYINT\",\n \"BYTEINT\",\n \"NUMERIC\",\n // parameterised, NUMERIC(Precision[, Scale])\n \"DECIMAL\",\n // parameterised, DECIMAL(Precision[, Scale])\n \"BIGNUMERIC\",\n // parameterised, BIGNUMERIC(Precision[, Scale])\n \"BIGDECIMAL\",\n // parameterised, BIGDECIMAL(Precision[, Scale])\n \"FLOAT64\",\n \"STRING\",\n // parameterised, STRING(Length)\n \"STRUCT\",\n // parametric, STRUCT\n \"TIME\",\n \"TIMEZONE\"\n];\n\n// src/languages/bigquery/bigquery.formatter.ts\nvar reservedSelect = expandPhrases([\"SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]\"]);\nvar reservedClauses = expandPhrases([\n // Queries: https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"QUALIFY\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n \"OMIT RECORD IF\",\n // legacy\n // Data modification: https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax\n // - insert:\n \"INSERT [INTO]\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE [INTO]\",\n \"WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]\",\n \"UPDATE SET\",\n \"CLUSTER BY\",\n \"FOR SYSTEM_TIME AS OF\",\n // CREATE SNAPSHOT TABLE\n \"WITH CONNECTION\",\n \"WITH PARTITION COLUMNS\",\n \"REMOTE WITH CONNECTION\"\n]);\nvar standardOnelineClauses = expandPhrases([\n \"CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses = expandPhrases([\n // - create:\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language\n \"CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE [FROM]\",\n // - drop table:\n \"DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE [IF EXISTS]\",\n \"ADD COLUMN [IF NOT EXISTS]\",\n \"DROP COLUMN [IF EXISTS]\",\n \"RENAME TO\",\n \"ALTER COLUMN [IF EXISTS]\",\n \"SET DEFAULT COLLATE\",\n // for alter column\n \"SET OPTIONS\",\n // for alter column\n \"DROP NOT NULL\",\n // for alter column\n \"SET DATA TYPE\",\n // for alter column\n // - alter schema\n \"ALTER SCHEMA [IF EXISTS]\",\n // - alter view\n \"ALTER [MATERIALIZED] VIEW [IF EXISTS]\",\n // - alter bi_capacity\n \"ALTER BI_CAPACITY\",\n // - truncate:\n \"TRUNCATE TABLE\",\n // - create schema\n \"CREATE SCHEMA [IF NOT EXISTS]\",\n \"DEFAULT COLLATE\",\n // stored procedures\n \"CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]\",\n \"CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]\",\n // row access policy\n \"CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]\",\n \"GRANT TO\",\n \"FILTER USING\",\n // capacity\n \"CREATE CAPACITY\",\n \"AS JSON\",\n // reservation\n \"CREATE RESERVATION\",\n // assignment\n \"CREATE ASSIGNMENT\",\n // search index\n \"CREATE SEARCH INDEX [IF NOT EXISTS]\",\n // drop\n \"DROP SCHEMA [IF EXISTS]\",\n \"DROP [MATERIALIZED] VIEW [IF EXISTS]\",\n \"DROP [TABLE] FUNCTION [IF EXISTS]\",\n \"DROP PROCEDURE [IF EXISTS]\",\n \"DROP ROW ACCESS POLICY\",\n \"DROP ALL ROW ACCESS POLICIES\",\n \"DROP CAPACITY [IF EXISTS]\",\n \"DROP RESERVATION [IF EXISTS]\",\n \"DROP ASSIGNMENT [IF EXISTS]\",\n \"DROP SEARCH INDEX [IF EXISTS]\",\n \"DROP [IF EXISTS]\",\n // DCL, https://cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language\n \"GRANT\",\n \"REVOKE\",\n // Script, https://cloud.google.com/bigquery/docs/reference/standard-sql/scripting\n \"DECLARE\",\n \"EXECUTE IMMEDIATE\",\n \"LOOP\",\n \"END LOOP\",\n \"REPEAT\",\n \"END REPEAT\",\n \"WHILE\",\n \"END WHILE\",\n \"BREAK\",\n \"LEAVE\",\n \"CONTINUE\",\n \"ITERATE\",\n \"FOR\",\n \"END FOR\",\n \"BEGIN\",\n \"BEGIN TRANSACTION\",\n \"COMMIT TRANSACTION\",\n \"ROLLBACK TRANSACTION\",\n \"RAISE\",\n \"RETURN\",\n \"CALL\",\n // Debug, https://cloud.google.com/bigquery/docs/reference/standard-sql/debugging-statements\n \"ASSERT\",\n // Other, https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements\n \"EXPORT DATA\"\n]);\nvar reservedSetOperations = expandPhrases([\n \"UNION {ALL | DISTINCT}\",\n \"EXCEPT DISTINCT\",\n \"INTERSECT DISTINCT\"\n]);\nvar reservedJoins = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\"\n]);\nvar reservedPhrases = expandPhrases([\n // https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#tablesample_operator\n \"TABLESAMPLE SYSTEM\",\n // From DDL: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language\n \"ANY TYPE\",\n \"ALL COLUMNS\",\n \"NOT DETERMINISTIC\",\n // inside window definitions\n \"{ROWS | RANGE} BETWEEN\",\n // comparison operator\n \"IS [NOT] DISTINCT FROM\"\n]);\nvar bigquery = {\n name: \"bigquery\",\n tokenizerOptions: {\n reservedSelect,\n reservedClauses: [...reservedClauses, ...tabularOnelineClauses, ...standardOnelineClauses],\n reservedSetOperations,\n reservedJoins,\n reservedPhrases,\n reservedKeywords: keywords,\n reservedDataTypes: dataTypes,\n reservedFunctionNames: functions,\n extraParens: [\"[]\"],\n stringTypes: [\n // The triple-quoted strings are listed first, so they get matched first.\n // Otherwise the first two quotes of \"\"\" will get matched as an empty \"\" string.\n { quote: '\"\"\"..\"\"\"', prefixes: [\"R\", \"B\", \"RB\", \"BR\"] },\n { quote: \"'''..'''\", prefixes: [\"R\", \"B\", \"RB\", \"BR\"] },\n '\"\"-bs',\n \"''-bs\",\n { quote: '\"\"-raw', prefixes: [\"R\", \"B\", \"RB\", \"BR\"], requirePrefix: true },\n { quote: \"''-raw\", prefixes: [\"R\", \"B\", \"RB\", \"BR\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n identChars: { dashes: true },\n paramTypes: { positional: true, named: [\"@\"], quoted: [\"@\"] },\n variableTypes: [{ regex: String.raw`@@\\w+` }],\n lineCommentTypes: [\"--\", \"#\"],\n operators: [\"&\", \"|\", \"^\", \"~\", \">>\", \"<<\", \"||\", \"=>\"],\n postProcess\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses, ...tabularOnelineClauses],\n tabularOnelineClauses\n }\n};\nfunction postProcess(tokens) {\n return detectArraySubscripts(combineParameterizedTypes(tokens));\n}\nfunction detectArraySubscripts(tokens) {\n let prevToken = EOF_TOKEN;\n return tokens.map((token) => {\n if (token.text === \"OFFSET\" && prevToken.text === \"[\") {\n prevToken = token;\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */ });\n } else {\n prevToken = token;\n return token;\n }\n });\n}\nfunction combineParameterizedTypes(tokens) {\n var _a;\n const processed = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if ((isToken.ARRAY(token) || isToken.STRUCT(token)) && ((_a = tokens[i + 1]) == null ? void 0 : _a.text) === \"<\") {\n const endIndex = findClosingAngleBracketIndex(tokens, i + 1);\n const typeDefTokens = tokens.slice(i, endIndex + 1);\n processed.push({\n type: \"IDENTIFIER\" /* IDENTIFIER */,\n raw: typeDefTokens.map(formatTypeDefToken(\"raw\")).join(\"\"),\n text: typeDefTokens.map(formatTypeDefToken(\"text\")).join(\"\"),\n start: token.start\n });\n i = endIndex;\n } else {\n processed.push(token);\n }\n }\n return processed;\n}\nvar formatTypeDefToken = (key) => (token) => {\n if (token.type === \"IDENTIFIER\" /* IDENTIFIER */ || token.type === \"COMMA\" /* COMMA */) {\n return token[key] + \" \";\n } else {\n return token[key];\n }\n};\nfunction findClosingAngleBracketIndex(tokens, startIndex) {\n let level = 0;\n for (let i = startIndex; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.text === \"<\") {\n level++;\n } else if (token.text === \">\") {\n level--;\n } else if (token.text === \">>\") {\n level -= 2;\n }\n if (level === 0) {\n return i;\n }\n }\n return tokens.length - 1;\n}\n\n// src/languages/db2/db2.functions.ts\nvar functions2 = [\n // https://www.ibm.com/docs/en/db2/11.5?topic=bif-aggregate-functions\n \"ARRAY_AGG\",\n \"AVG\",\n \"CORRELATION\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"COVARIANCE\",\n \"COVARIANCE_SAMP\",\n \"CUME_DIST\",\n \"GROUPING\",\n \"LISTAGG\",\n \"MAX\",\n \"MEDIAN\",\n \"MIN\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERCENT_RANK\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_COUNT\",\n \"REGR_INTERCEPT\",\n \"REGR_ICPT\",\n \"REGR_R2\",\n \"REGR_SLOPE\",\n \"REGR_SXX\",\n \"REGR_SXY\",\n \"REGR_SYY\",\n \"STDDEV\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"VARIANCE\",\n \"VARIANCE_SAMP\",\n \"XMLAGG\",\n \"XMLGROUP\",\n // https://www.ibm.com/docs/en/db2/11.5?topic=bif-scalar-functions\n \"ABS\",\n \"ABSVAL\",\n \"ACOS\",\n \"ADD_DAYS\",\n \"ADD_HOURS\",\n \"ADD_MINUTES\",\n \"ADD_MONTHS\",\n \"ADD_SECONDS\",\n \"ADD_YEARS\",\n \"AGE\",\n \"ARRAY_DELETE\",\n \"ARRAY_FIRST\",\n \"ARRAY_LAST\",\n \"ARRAY_NEXT\",\n \"ARRAY_PRIOR\",\n \"ASCII\",\n \"ASCII_STR\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"ATANH\",\n \"BITAND\",\n \"BITANDNOT\",\n \"BITOR\",\n \"BITXOR\",\n \"BITNOT\",\n \"BPCHAR\",\n \"BSON_TO_JSON\",\n \"BTRIM\",\n \"CARDINALITY\",\n \"CEILING\",\n \"CEIL\",\n \"CHARACTER_LENGTH\",\n \"CHR\",\n \"COALESCE\",\n \"COLLATION_KEY\",\n \"COLLATION_KEY_BIT\",\n \"COMPARE_DECFLOAT\",\n \"CONCAT\",\n \"COS\",\n \"COSH\",\n \"COT\",\n \"CURSOR_ROWCOUNT\",\n \"DATAPARTITIONNUM\",\n \"DATE_PART\",\n \"DATE_TRUNC\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFWEEK_ISO\",\n \"DAYOFYEAR\",\n \"DAYS\",\n \"DAYS_BETWEEN\",\n \"DAYS_TO_END_OF_MONTH\",\n \"DBPARTITIONNUM\",\n \"DECFLOAT\",\n \"DECFLOAT_FORMAT\",\n \"DECODE\",\n \"DECRYPT_BIN\",\n \"DECRYPT_CHAR\",\n \"DEGREES\",\n \"DEREF\",\n \"DIFFERENCE\",\n \"DIGITS\",\n \"DOUBLE_PRECISION\",\n \"EMPTY_BLOB\",\n \"EMPTY_CLOB\",\n \"EMPTY_DBCLOB\",\n \"EMPTY_NCLOB\",\n \"ENCRYPT\",\n \"EVENT_MON_STATE\",\n \"EXP\",\n \"EXTRACT\",\n \"FIRST_DAY\",\n \"FLOOR\",\n \"FROM_UTC_TIMESTAMP\",\n \"GENERATE_UNIQUE\",\n \"GETHINT\",\n \"GREATEST\",\n \"HASH\",\n \"HASH4\",\n \"HASH8\",\n \"HASHEDVALUE\",\n \"HEX\",\n \"HEXTORAW\",\n \"HOUR\",\n \"HOURS_BETWEEN\",\n \"IDENTITY_VAL_LOCAL\",\n \"IFNULL\",\n \"INITCAP\",\n \"INSERT\",\n \"INSTR\",\n \"INSTR2\",\n \"INSTR4\",\n \"INSTRB\",\n \"INTNAND\",\n \"INTNOR\",\n \"INTNXOR\",\n \"INTNNOT\",\n \"ISNULL\",\n \"JSON_ARRAY\",\n \"JSON_OBJECT\",\n \"JSON_QUERY\",\n \"JSON_TO_BSON\",\n \"JSON_VALUE\",\n \"JULIAN_DAY\",\n \"LAST_DAY\",\n \"LCASE\",\n \"LEAST\",\n \"LEFT\",\n \"LENGTH\",\n \"LENGTH2\",\n \"LENGTH4\",\n \"LENGTHB\",\n \"LN\",\n \"LOCATE\",\n \"LOCATE_IN_STRING\",\n \"LOG10\",\n \"LONG_VARCHAR\",\n \"LONG_VARGRAPHIC\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MAX\",\n \"MAX_CARDINALITY\",\n \"MICROSECOND\",\n \"MIDNIGHT_SECONDS\",\n \"MIN\",\n \"MINUTE\",\n \"MINUTES_BETWEEN\",\n \"MOD\",\n \"MONTH\",\n \"MONTHNAME\",\n \"MONTHS_BETWEEN\",\n \"MULTIPLY_ALT\",\n \"NEXT_DAY\",\n \"NEXT_MONTH\",\n \"NEXT_QUARTER\",\n \"NEXT_WEEK\",\n \"NEXT_YEAR\",\n \"NORMALIZE_DECFLOAT\",\n \"NOW\",\n \"NULLIF\",\n \"NVL\",\n \"NVL2\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"PARAMETER\",\n \"POSITION\",\n \"POSSTR\",\n \"POW\",\n \"POWER\",\n \"QUANTIZE\",\n \"QUARTER\",\n \"QUOTE_IDENT\",\n \"QUOTE_LITERAL\",\n \"RADIANS\",\n \"RAISE_ERROR\",\n \"RAND\",\n \"RANDOM\",\n \"RAWTOHEX\",\n \"REC2XML\",\n \"REGEXP_COUNT\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_INSTR\",\n \"REGEXP_LIKE\",\n \"REGEXP_MATCH_COUNT\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REPEAT\",\n \"REPLACE\",\n \"RID\",\n \"RID_BIT\",\n \"RIGHT\",\n \"ROUND\",\n \"ROUND_TIMESTAMP\",\n \"RPAD\",\n \"RTRIM\",\n \"SECLABEL\",\n \"SECLABEL_BY_NAME\",\n \"SECLABEL_TO_CHAR\",\n \"SECOND\",\n \"SECONDS_BETWEEN\",\n \"SIGN\",\n \"SIN\",\n \"SINH\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SQRT\",\n \"STRIP\",\n \"STRLEFT\",\n \"STRPOS\",\n \"STRRIGHT\",\n \"SUBSTR\",\n \"SUBSTR2\",\n \"SUBSTR4\",\n \"SUBSTRB\",\n \"SUBSTRING\",\n \"TABLE_NAME\",\n \"TABLE_SCHEMA\",\n \"TAN\",\n \"TANH\",\n \"THIS_MONTH\",\n \"THIS_QUARTER\",\n \"THIS_WEEK\",\n \"THIS_YEAR\",\n \"TIMESTAMP_FORMAT\",\n \"TIMESTAMP_ISO\",\n \"TIMESTAMPDIFF\",\n \"TIMEZONE\",\n \"TO_CHAR\",\n \"TO_CLOB\",\n \"TO_DATE\",\n \"TO_HEX\",\n \"TO_MULTI_BYTE\",\n \"TO_NCHAR\",\n \"TO_NCLOB\",\n \"TO_NUMBER\",\n \"TO_SINGLE_BYTE\",\n \"TO_TIMESTAMP\",\n \"TO_UTC_TIMESTAMP\",\n \"TOTALORDER\",\n \"TRANSLATE\",\n \"TRIM\",\n \"TRIM_ARRAY\",\n \"TRUNC_TIMESTAMP\",\n \"TRUNCATE\",\n \"TRUNC\",\n \"TYPE_ID\",\n \"TYPE_NAME\",\n \"TYPE_SCHEMA\",\n \"UCASE\",\n \"UNICODE_STR\",\n \"UPPER\",\n \"VALUE\",\n \"VARCHAR_BIT_FORMAT\",\n \"VARCHAR_FORMAT\",\n \"VARCHAR_FORMAT_BIT\",\n \"VERIFY_GROUP_FOR_USER\",\n \"VERIFY_ROLE_FOR_USER\",\n \"VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER\",\n \"WEEK\",\n \"WEEK_ISO\",\n \"WEEKS_BETWEEN\",\n \"WIDTH_BUCKET\",\n \"XMLATTRIBUTES\",\n \"XMLCOMMENT\",\n \"XMLCONCAT\",\n \"XMLDOCUMENT\",\n \"XMLELEMENT\",\n \"XMLFOREST\",\n \"XMLNAMESPACES\",\n \"XMLPARSE\",\n \"XMLPI\",\n \"XMLQUERY\",\n \"XMLROW\",\n \"XMLSERIALIZE\",\n \"XMLTEXT\",\n \"XMLVALIDATE\",\n \"XMLXSROBJECTID\",\n \"XSLTRANSFORM\",\n \"YEAR\",\n \"YEARS_BETWEEN\",\n \"YMD_BETWEEN\",\n // https://www.ibm.com/docs/en/db2/11.5?topic=bif-table-functions\n \"BASE_TABLE\",\n \"JSON_TABLE\",\n \"UNNEST\",\n \"XMLTABLE\",\n // https://www.ibm.com/docs/en/db2/11.5?topic=expressions-olap-specification\n // Additional function names not already present in the aggregate functions list\n \"RANK\",\n \"DENSE_RANK\",\n \"NTILE\",\n \"LAG\",\n \"LEAD\",\n \"ROW_NUMBER\",\n \"FIRST_VALUE\",\n \"LAST_VALUE\",\n \"NTH_VALUE\",\n \"RATIO_TO_REPORT\",\n // Type casting\n \"CAST\"\n];\n\n// src/languages/db2/db2.keywords.ts\nvar keywords2 = [\n // https://www.ibm.com/docs/en/db2/11.5?topic=sql-reserved-schema-names-reserved-words\n \"ACTIVATE\",\n \"ADD\",\n \"AFTER\",\n \"ALIAS\",\n \"ALL\",\n \"ALLOCATE\",\n \"ALLOW\",\n \"ALTER\",\n \"AND\",\n \"ANY\",\n \"AS\",\n \"ASENSITIVE\",\n \"ASSOCIATE\",\n \"ASUTIME\",\n \"AT\",\n \"ATTRIBUTES\",\n \"AUDIT\",\n \"AUTHORIZATION\",\n \"AUX\",\n \"AUXILIARY\",\n \"BEFORE\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BINARY\",\n \"BUFFERPOOL\",\n \"BY\",\n \"CACHE\",\n \"CALL\",\n \"CALLED\",\n \"CAPTURE\",\n \"CARDINALITY\",\n \"CASCADED\",\n \"CASE\",\n \"CAST\",\n \"CHECK\",\n \"CLONE\",\n \"CLOSE\",\n \"CLUSTER\",\n \"COLLECTION\",\n \"COLLID\",\n \"COLUMN\",\n \"COMMENT\",\n \"COMMIT\",\n \"CONCAT\",\n \"CONDITION\",\n \"CONNECT\",\n \"CONNECTION\",\n \"CONSTRAINT\",\n \"CONTAINS\",\n \"CONTINUE\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_LC_CTYPE\",\n \"CURRENT_PATH\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_SERVER\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMEZONE\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"CYCLE\",\n \"DATA\",\n \"DATABASE\",\n \"DATAPARTITIONNAME\",\n \"DATAPARTITIONNUM\",\n \"DAY\",\n \"DAYS\",\n \"DB2GENERAL\",\n \"DB2GENRL\",\n \"DB2SQL\",\n \"DBINFO\",\n \"DBPARTITIONNAME\",\n \"DBPARTITIONNUM\",\n \"DEALLOCATE\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DEFAULTS\",\n \"DEFINITION\",\n \"DELETE\",\n \"DENSERANK\",\n \"DENSE_RANK\",\n \"DESCRIBE\",\n \"DESCRIPTOR\",\n \"DETERMINISTIC\",\n \"DIAGNOSTICS\",\n \"DISABLE\",\n \"DISALLOW\",\n \"DISCONNECT\",\n \"DISTINCT\",\n \"DO\",\n \"DOCUMENT\",\n \"DROP\",\n \"DSSIZE\",\n \"DYNAMIC\",\n \"EACH\",\n \"EDITPROC\",\n \"ELSE\",\n \"ELSEIF\",\n \"ENABLE\",\n \"ENCODING\",\n \"ENCRYPTION\",\n \"END\",\n \"END-EXEC\",\n \"ENDING\",\n \"ERASE\",\n \"ESCAPE\",\n \"EVERY\",\n \"EXCEPT\",\n \"EXCEPTION\",\n \"EXCLUDING\",\n \"EXCLUSIVE\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXIT\",\n \"EXPLAIN\",\n \"EXTENDED\",\n \"EXTERNAL\",\n \"EXTRACT\",\n \"FENCED\",\n \"FETCH\",\n \"FIELDPROC\",\n \"FILE\",\n \"FINAL\",\n \"FIRST1\",\n \"FOR\",\n \"FOREIGN\",\n \"FREE\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GENERAL\",\n \"GENERATED\",\n \"GET\",\n \"GLOBAL\",\n \"GO\",\n \"GOTO\",\n \"GRANT\",\n \"GRAPHIC\",\n \"GROUP\",\n \"HANDLER\",\n \"HASH\",\n \"HASHED_VALUE\",\n \"HAVING\",\n \"HINT\",\n \"HOLD\",\n \"HOUR\",\n \"HOURS\",\n \"IDENTITY\",\n \"IF\",\n \"IMMEDIATE\",\n \"IMPORT\",\n \"IN\",\n \"INCLUDING\",\n \"INCLUSIVE\",\n \"INCREMENT\",\n \"INDEX\",\n \"INDICATOR\",\n \"INDICATORS\",\n \"INF\",\n \"INFINITY\",\n \"INHERIT\",\n \"INNER\",\n \"INOUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"INTEGRITY\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ISNULL\",\n \"ISOBID\",\n \"ISOLATION\",\n \"ITERATE\",\n \"JAR\",\n \"JAVA\",\n \"JOIN\",\n \"KEEP\",\n \"KEY\",\n \"LABEL\",\n \"LANGUAGE\",\n \"LAST3\",\n \"LATERAL\",\n \"LC_CTYPE\",\n \"LEAVE\",\n \"LEFT\",\n \"LIKE\",\n \"LIMIT\",\n \"LINKTYPE\",\n \"LOCAL\",\n \"LOCALDATE\",\n \"LOCALE\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCATOR\",\n \"LOCATORS\",\n \"LOCK\",\n \"LOCKMAX\",\n \"LOCKSIZE\",\n \"LOOP\",\n \"MAINTAINED\",\n \"MATERIALIZED\",\n \"MAXVALUE\",\n \"MICROSECOND\",\n \"MICROSECONDS\",\n \"MINUTE\",\n \"MINUTES\",\n \"MINVALUE\",\n \"MODE\",\n \"MODIFIES\",\n \"MONTH\",\n \"MONTHS\",\n \"NAN\",\n \"NEW\",\n \"NEW_TABLE\",\n \"NEXTVAL\",\n \"NO\",\n \"NOCACHE\",\n \"NOCYCLE\",\n \"NODENAME\",\n \"NODENUMBER\",\n \"NOMAXVALUE\",\n \"NOMINVALUE\",\n \"NONE\",\n \"NOORDER\",\n \"NORMALIZED\",\n \"NOT2\",\n \"NOTNULL\",\n \"NULL\",\n \"NULLS\",\n \"NUMPARTS\",\n \"OBID\",\n \"OF\",\n \"OFF\",\n \"OFFSET\",\n \"OLD\",\n \"OLD_TABLE\",\n \"ON\",\n \"OPEN\",\n \"OPTIMIZATION\",\n \"OPTIMIZE\",\n \"OPTION\",\n \"OR\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OVER\",\n \"OVERRIDING\",\n \"PACKAGE\",\n \"PADDED\",\n \"PAGESIZE\",\n \"PARAMETER\",\n \"PART\",\n \"PARTITION\",\n \"PARTITIONED\",\n \"PARTITIONING\",\n \"PARTITIONS\",\n \"PASSWORD\",\n \"PATH\",\n \"PERCENT\",\n \"PIECESIZE\",\n \"PLAN\",\n \"POSITION\",\n \"PRECISION\",\n \"PREPARE\",\n \"PREVVAL\",\n \"PRIMARY\",\n \"PRIQTY\",\n \"PRIVILEGES\",\n \"PROCEDURE\",\n \"PROGRAM\",\n \"PSID\",\n \"PUBLIC\",\n \"QUERY\",\n \"QUERYNO\",\n \"RANGE\",\n \"RANK\",\n \"READ\",\n \"READS\",\n \"RECOVERY\",\n \"REFERENCES\",\n \"REFERENCING\",\n \"REFRESH\",\n \"RELEASE\",\n \"RENAME\",\n \"REPEAT\",\n \"RESET\",\n \"RESIGNAL\",\n \"RESTART\",\n \"RESTRICT\",\n \"RESULT\",\n \"RESULT_SET_LOCATOR\",\n \"RETURN\",\n \"RETURNS\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLE\",\n \"ROLLBACK\",\n \"ROUND_CEILING\",\n \"ROUND_DOWN\",\n \"ROUND_FLOOR\",\n \"ROUND_HALF_DOWN\",\n \"ROUND_HALF_EVEN\",\n \"ROUND_HALF_UP\",\n \"ROUND_UP\",\n \"ROUTINE\",\n \"ROW\",\n \"ROWNUMBER\",\n \"ROWS\",\n \"ROWSET\",\n \"ROW_NUMBER\",\n \"RRN\",\n \"RUN\",\n \"SAVEPOINT\",\n \"SCHEMA\",\n \"SCRATCHPAD\",\n \"SCROLL\",\n \"SEARCH\",\n \"SECOND\",\n \"SECONDS\",\n \"SECQTY\",\n \"SECURITY\",\n \"SELECT\",\n \"SENSITIVE\",\n \"SEQUENCE\",\n \"SESSION\",\n \"SESSION_USER\",\n \"SET\",\n \"SIGNAL\",\n \"SIMPLE\",\n \"SNAN\",\n \"SOME\",\n \"SOURCE\",\n \"SPECIFIC\",\n \"SQL\",\n \"SQLID\",\n \"STACKED\",\n \"STANDARD\",\n \"START\",\n \"STARTING\",\n \"STATEMENT\",\n \"STATIC\",\n \"STATMENT\",\n \"STAY\",\n \"STOGROUP\",\n \"STORES\",\n \"STYLE\",\n \"SUBSTRING\",\n \"SUMMARY\",\n \"SYNONYM\",\n \"SYSFUN\",\n \"SYSIBM\",\n \"SYSPROC\",\n \"SYSTEM\",\n \"SYSTEM_USER\",\n \"TABLE\",\n \"TABLESPACE\",\n \"THEN\",\n \"TO\",\n \"TRANSACTION\",\n \"TRIGGER\",\n \"TRIM\",\n \"TRUNCATE\",\n \"TYPE\",\n \"UNDO\",\n \"UNION\",\n \"UNIQUE\",\n \"UNTIL\",\n \"UPDATE\",\n \"USAGE\",\n \"USER\",\n \"USING\",\n \"VALIDPROC\",\n \"VALUE\",\n \"VALUES\",\n \"VARIABLE\",\n \"VARIANT\",\n \"VCAT\",\n \"VERSION\",\n \"VIEW\",\n \"VOLATILE\",\n \"VOLUMES\",\n \"WHEN\",\n \"WHENEVER\",\n \"WHERE\",\n \"WHILE\",\n \"WITH\",\n \"WITHOUT\",\n \"WLM\",\n \"WRITE\",\n \"XMLELEMENT\",\n \"XMLEXISTS\",\n \"XMLNAMESPACES\",\n \"YEAR\",\n \"YEARS\"\n];\nvar dataTypes2 = [\n // https://www.ibm.com/docs/en/db2-for-zos/12?topic=columns-data-types\n \"ARRAY\",\n \"BIGINT\",\n \"BINARY\",\n \"BLOB\",\n \"BOOLEAN\",\n \"CCSID\",\n \"CHAR\",\n \"CHARACTER\",\n \"CLOB\",\n \"DATE\",\n \"DATETIME\",\n \"DBCLOB\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"DOUBLE PRECISION\",\n \"FLOAT\",\n \"FLOAT4\",\n \"FLOAT8\",\n \"GRAPHIC\",\n \"INT\",\n \"INT2\",\n \"INT4\",\n \"INT8\",\n \"INTEGER\",\n \"INTERVAL\",\n \"LONG VARCHAR\",\n \"LONG VARGRAPHIC\",\n \"NCHAR\",\n \"NCHR\",\n \"NCLOB\",\n \"NVARCHAR\",\n \"NUMERIC\",\n \"SMALLINT\",\n \"REAL\",\n \"TIME\",\n \"TIMESTAMP\",\n \"VARBINARY\",\n \"VARCHAR\",\n \"VARGRAPHIC\"\n];\n\n// src/languages/db2/db2.formatter.ts\nvar reservedSelect2 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses2 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER BY [INPUT SEQUENCE]\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH NEXT\",\n \"FOR UPDATE [OF]\",\n \"FOR {READ | FETCH} ONLY\",\n \"FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]\",\n \"WAIT FOR OUTCOME\",\n \"SKIP LOCKED DATA\",\n \"INTO\",\n // Data modification\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE INTO\",\n \"WHEN [NOT] MATCHED [THEN]\",\n \"UPDATE SET\",\n \"INSERT\"\n]);\nvar standardOnelineClauses2 = expandPhrases([\n \"CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses2 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] VIEW\",\n // - update:\n \"UPDATE\",\n \"WHERE CURRENT OF\",\n \"WITH {RR | RS | CS | UR}\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // alter table:\n \"ALTER TABLE\",\n \"ADD [COLUMN]\",\n \"DROP [COLUMN]\",\n \"RENAME COLUMN\",\n \"ALTER [COLUMN]\",\n \"SET DATA TYPE\",\n // for alter column\n \"SET NOT NULL\",\n // for alter column\n \"DROP {DEFAULT | GENERATED | NOT NULL}\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // https://www.ibm.com/docs/en/db2/11.5?topic=s-statements\n \"ALLOCATE\",\n \"ALTER AUDIT POLICY\",\n \"ALTER BUFFERPOOL\",\n \"ALTER DATABASE PARTITION GROUP\",\n \"ALTER DATABASE\",\n \"ALTER EVENT MONITOR\",\n \"ALTER FUNCTION\",\n \"ALTER HISTOGRAM TEMPLATE\",\n \"ALTER INDEX\",\n \"ALTER MASK\",\n \"ALTER METHOD\",\n \"ALTER MODULE\",\n \"ALTER NICKNAME\",\n \"ALTER PACKAGE\",\n \"ALTER PERMISSION\",\n \"ALTER PROCEDURE\",\n \"ALTER SCHEMA\",\n \"ALTER SECURITY LABEL COMPONENT\",\n \"ALTER SECURITY POLICY\",\n \"ALTER SEQUENCE\",\n \"ALTER SERVER\",\n \"ALTER SERVICE CLASS\",\n \"ALTER STOGROUP\",\n \"ALTER TABLESPACE\",\n \"ALTER THRESHOLD\",\n \"ALTER TRIGGER\",\n \"ALTER TRUSTED CONTEXT\",\n \"ALTER TYPE\",\n \"ALTER USAGE LIST\",\n \"ALTER USER MAPPING\",\n \"ALTER VIEW\",\n \"ALTER WORK ACTION SET\",\n \"ALTER WORK CLASS SET\",\n \"ALTER WORKLOAD\",\n \"ALTER WRAPPER\",\n \"ALTER XSROBJECT\",\n \"ALTER STOGROUP\",\n \"ALTER TABLESPACE\",\n \"ALTER TRIGGER\",\n \"ALTER TRUSTED CONTEXT\",\n \"ALTER VIEW\",\n \"ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}\",\n \"AUDIT\",\n \"BEGIN DECLARE SECTION\",\n \"CALL\",\n \"CLOSE\",\n \"COMMENT ON\",\n \"COMMIT [WORK]\",\n \"CONNECT\",\n \"CREATE [OR REPLACE] [PUBLIC] ALIAS\",\n \"CREATE AUDIT POLICY\",\n \"CREATE BUFFERPOOL\",\n \"CREATE DATABASE PARTITION GROUP\",\n \"CREATE EVENT MONITOR\",\n \"CREATE [OR REPLACE] FUNCTION\",\n \"CREATE FUNCTION MAPPING\",\n \"CREATE HISTOGRAM TEMPLATE\",\n \"CREATE [UNIQUE] INDEX\",\n \"CREATE INDEX EXTENSION\",\n \"CREATE [OR REPLACE] MASK\",\n \"CREATE [SPECIFIC] METHOD\",\n \"CREATE [OR REPLACE] MODULE\",\n \"CREATE [OR REPLACE] NICKNAME\",\n \"CREATE [OR REPLACE] PERMISSION\",\n \"CREATE [OR REPLACE] PROCEDURE\",\n \"CREATE ROLE\",\n \"CREATE SCHEMA\",\n \"CREATE SECURITY LABEL [COMPONENT]\",\n \"CREATE SECURITY POLICY\",\n \"CREATE [OR REPLACE] SEQUENCE\",\n \"CREATE SERVICE CLASS\",\n \"CREATE SERVER\",\n \"CREATE STOGROUP\",\n \"CREATE SYNONYM\",\n \"CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE\",\n \"CREATE THRESHOLD\",\n \"CREATE {TRANSFORM | TRANSFORMS} FOR\",\n \"CREATE [OR REPLACE] TRIGGER\",\n \"CREATE TRUSTED CONTEXT\",\n \"CREATE [OR REPLACE] TYPE\",\n \"CREATE TYPE MAPPING\",\n \"CREATE USAGE LIST\",\n \"CREATE USER MAPPING FOR\",\n \"CREATE [OR REPLACE] VARIABLE\",\n \"CREATE WORK ACTION SET\",\n \"CREATE WORK CLASS SET\",\n \"CREATE WORKLOAD\",\n \"CREATE WRAPPER\",\n \"DECLARE\",\n \"DECLARE GLOBAL TEMPORARY TABLE\",\n \"DESCRIBE [INPUT | OUTPUT]\",\n \"DISCONNECT\",\n \"DROP [PUBLIC] ALIAS\",\n \"DROP AUDIT POLICY\",\n \"DROP BUFFERPOOL\",\n \"DROP DATABASE PARTITION GROUP\",\n \"DROP EVENT MONITOR\",\n \"DROP [SPECIFIC] FUNCTION\",\n \"DROP FUNCTION MAPPING\",\n \"DROP HISTOGRAM TEMPLATE\",\n \"DROP INDEX [EXTENSION]\",\n \"DROP MASK\",\n \"DROP [SPECIFIC] METHOD\",\n \"DROP MODULE\",\n \"DROP NICKNAME\",\n \"DROP PACKAGE\",\n \"DROP PERMISSION\",\n \"DROP [SPECIFIC] PROCEDURE\",\n \"DROP ROLE\",\n \"DROP SCHEMA\",\n \"DROP SECURITY LABEL [COMPONENT]\",\n \"DROP SECURITY POLICY\",\n \"DROP SEQUENCE\",\n \"DROP SERVER\",\n \"DROP SERVICE CLASS\",\n \"DROP STOGROUP\",\n \"DROP TABLE HIERARCHY\",\n \"DROP {TABLESPACE | TABLESPACES}\",\n \"DROP {TRANSFORM | TRANSFORMS}\",\n \"DROP THRESHOLD\",\n \"DROP TRIGGER\",\n \"DROP TRUSTED CONTEXT\",\n \"DROP TYPE [MAPPING]\",\n \"DROP USAGE LIST\",\n \"DROP USER MAPPING FOR\",\n \"DROP VARIABLE\",\n \"DROP VIEW [HIERARCHY]\",\n \"DROP WORK {ACTION | CLASS} SET\",\n \"DROP WORKLOAD\",\n \"DROP WRAPPER\",\n \"DROP XSROBJECT\",\n \"END DECLARE SECTION\",\n \"EXECUTE [IMMEDIATE]\",\n \"EXPLAIN {PLAN [SECTION] | ALL}\",\n \"FETCH [FROM]\",\n \"FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL\",\n \"FLUSH EVENT MONITOR\",\n \"FLUSH FEDERATED CACHE\",\n \"FLUSH OPTIMIZATION PROFILE CACHE\",\n \"FLUSH PACKAGE CACHE [DYNAMIC]\",\n \"FLUSH AUTHENTICATION CACHE [FOR ALL]\",\n \"FREE LOCATOR\",\n \"GET DIAGNOSTICS\",\n \"GOTO\",\n \"GRANT\",\n // TODO: lots of syntax here\n \"INCLUDE\",\n \"ITERATE\",\n \"LEAVE\",\n \"LOCK TABLE\",\n \"LOOP\",\n \"OPEN\",\n \"PIPE\",\n \"PREPARE\",\n \"REFRESH TABLE\",\n \"RELEASE\",\n \"RELEASE [TO] SAVEPOINT\",\n \"RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]\",\n \"REPEAT\",\n \"RESIGNAL\",\n \"RETURN\",\n \"REVOKE\",\n // TODO: lots of syntax here\n \"ROLLBACK [WORK] [TO SAVEPOINT]\",\n \"SAVEPOINT\",\n \"SET COMPILATION ENVIRONMENT\",\n \"SET CONNECTION\",\n \"SET CURRENT\",\n // TODO: bunch of syntax here\n \"SET ENCRYPTION PASSWORD\",\n \"SET EVENT MONITOR STATE\",\n \"SET INTEGRITY\",\n \"SET PASSTHRU\",\n \"SET PATH\",\n \"SET ROLE\",\n \"SET SCHEMA\",\n \"SET SERVER OPTION\",\n \"SET {SESSION AUTHORIZATION | SESSION_USER}\",\n \"SET USAGE LIST\",\n \"SIGNAL\",\n \"TRANSFER OWNERSHIP OF\",\n \"WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}\",\n \"WHILE\"\n]);\nvar reservedSetOperations2 = expandPhrases([\"UNION [ALL]\", \"EXCEPT [ALL]\", \"INTERSECT [ALL]\"]);\nvar reservedJoins2 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\"\n]);\nvar reservedPhrases2 = expandPhrases([\n \"ON DELETE\",\n \"ON UPDATE\",\n \"SET NULL\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar db2 = {\n name: \"db2\",\n tokenizerOptions: {\n reservedSelect: reservedSelect2,\n reservedClauses: [...reservedClauses2, ...standardOnelineClauses2, ...tabularOnelineClauses2],\n reservedSetOperations: reservedSetOperations2,\n reservedJoins: reservedJoins2,\n reservedPhrases: reservedPhrases2,\n reservedKeywords: keywords2,\n reservedDataTypes: dataTypes2,\n reservedFunctionNames: functions2,\n extraParens: [\"[]\"],\n stringTypes: [\n { quote: \"''-qq\", prefixes: [\"G\", \"N\", \"U&\"] },\n { quote: \"''-raw\", prefixes: [\"X\", \"BX\", \"GX\", \"UX\"], requirePrefix: true }\n ],\n identTypes: [`\"\"-qq`],\n identChars: { first: \"@#$\", rest: \"@#$\" },\n paramTypes: { positional: true, named: [\":\"] },\n paramChars: { first: \"@#$\", rest: \"@#$\" },\n operators: [\n \"**\",\n \"%\",\n \"|\",\n \"&\",\n \"^\",\n \"~\",\n \"\\xAC=\",\n \"\\xAC>\",\n \"\\xAC<\",\n \"!>\",\n \"!<\",\n \"^=\",\n \"^>\",\n \"^<\",\n \"||\",\n \"->\",\n \"=>\"\n ]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses2, ...tabularOnelineClauses2],\n tabularOnelineClauses: tabularOnelineClauses2\n }\n};\n\n// src/languages/db2i/db2i.functions.ts\nvar functions3 = [\n // https://www.ibm.com/docs/en/i/7.5?topic=functions-aggregate\n // TODO: 'ANY', - conflicts with test for ANY predicate in 'operators.ys'!!\n \"ARRAY_AGG\",\n \"AVG\",\n \"CORR\",\n \"CORRELATION\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"COVAR_POP\",\n \"COVARIANCE\",\n \"COVAR\",\n \"COVAR_SAMP\",\n \"COVARIANCE_SAMP\",\n \"EVERY\",\n \"GROUPING\",\n \"JSON_ARRAYAGG\",\n \"JSON_OBJECTAGG\",\n \"LISTAGG\",\n \"MAX\",\n \"MEDIAN\",\n \"MIN\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n // https://www.ibm.com/docs/en/i/7.5?topic=functions-regression'\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_COUNT\",\n \"REGR_INTERCEPT\",\n \"REGR_R2\",\n \"REGR_SLOPE\",\n \"REGR_SXX\",\n \"REGR_SXY\",\n \"REGR_SYY\",\n \"SOME\",\n \"STDDEV_POP\",\n \"STDDEV\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"VAR_POP\",\n \"VARIANCE\",\n \"VAR\",\n \"VAR_SAMP\",\n \"VARIANCE_SAMP\",\n \"XMLAGG\",\n \"XMLGROUP\",\n // https://www.ibm.com/docs/en/i/7.5?topic=functions-scalar\n \"ABS\",\n \"ABSVAL\",\n \"ACOS\",\n \"ADD_DAYS\",\n \"ADD_HOURS\",\n \"ADD_MINUTES\",\n \"ADD_MONTHS\",\n \"ADD_SECONDS\",\n \"ADD_YEARS\",\n \"ANTILOG\",\n \"ARRAY_MAX_CARDINALITY\",\n \"ARRAY_TRIM\",\n \"ASCII\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"ATANH\",\n \"BASE64_DECODE\",\n \"BASE64_ENCODE\",\n \"BIT_LENGTH\",\n \"BITAND\",\n \"BITANDNOT\",\n \"BITNOT\",\n \"BITOR\",\n \"BITXOR\",\n \"BSON_TO_JSON\",\n \"CARDINALITY\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHR\",\n \"COALESCE\",\n \"COMPARE_DECFLOAT\",\n \"CONCAT\",\n \"CONTAINS\",\n \"COS\",\n \"COSH\",\n \"COT\",\n \"CURDATE\",\n \"CURTIME\",\n \"DATABASE\",\n \"DATAPARTITIONNAME\",\n \"DATAPARTITIONNUM\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK_ISO\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"DAYS\",\n \"DBPARTITIONNAME\",\n \"DBPARTITIONNUM\",\n \"DECFLOAT_FORMAT\",\n \"DECFLOAT_SORTKEY\",\n \"DECRYPT_BINARY\",\n \"DECRYPT_BIT\",\n \"DECRYPT_CHAR\",\n \"DECRYPT_DB\",\n \"DEGREES\",\n \"DIFFERENCE\",\n \"DIGITS\",\n \"DLCOMMENT\",\n \"DLLINKTYPE\",\n \"DLURLCOMPLETE\",\n \"DLURLPATH\",\n \"DLURLPATHONLY\",\n \"DLURLSCHEME\",\n \"DLURLSERVER\",\n \"DLVALUE\",\n \"DOUBLE_PRECISION\",\n \"DOUBLE\",\n \"ENCRPYT\",\n \"ENCRYPT_AES\",\n \"ENCRYPT_AES256\",\n \"ENCRYPT_RC2\",\n \"ENCRYPT_TDES\",\n \"EXP\",\n \"EXTRACT\",\n \"FIRST_DAY\",\n \"FLOOR\",\n \"GENERATE_UNIQUE\",\n \"GET_BLOB_FROM_FILE\",\n \"GET_CLOB_FROM_FILE\",\n \"GET_DBCLOB_FROM_FILE\",\n \"GET_XML_FILE\",\n \"GETHINT\",\n \"GREATEST\",\n \"HASH_MD5\",\n \"HASH_ROW\",\n \"HASH_SHA1\",\n \"HASH_SHA256\",\n \"HASH_SHA512\",\n \"HASH_VALUES\",\n \"HASHED_VALUE\",\n \"HEX\",\n \"HEXTORAW\",\n \"HOUR\",\n \"HTML_ENTITY_DECODE\",\n \"HTML_ENTITY_ENCODE\",\n \"HTTP_DELETE_BLOB\",\n \"HTTP_DELETE\",\n \"HTTP_GET_BLOB\",\n \"HTTP_GET\",\n \"HTTP_PATCH_BLOB\",\n \"HTTP_PATCH\",\n \"HTTP_POST_BLOB\",\n \"HTTP_POST\",\n \"HTTP_PUT_BLOB\",\n \"HTTP_PUT\",\n \"IDENTITY_VAL_LOCAL\",\n \"IFNULL\",\n \"INSERT\",\n \"INSTR\",\n \"INTERPRET\",\n \"ISFALSE\",\n \"ISNOTFALSE\",\n \"ISNOTTRUE\",\n \"ISTRUE\",\n \"JSON_ARRAY\",\n \"JSON_OBJECT\",\n \"JSON_QUERY\",\n \"JSON_TO_BSON\",\n \"JSON_UPDATE\",\n \"JSON_VALUE\",\n \"JULIAN_DAY\",\n \"LAND\",\n \"LAST_DAY\",\n \"LCASE\",\n \"LEAST\",\n \"LEFT\",\n \"LENGTH\",\n \"LN\",\n \"LNOT\",\n \"LOCATE_IN_STRING\",\n \"LOCATE\",\n \"LOG10\",\n \"LOR\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MAX_CARDINALITY\",\n \"MAX\",\n \"MICROSECOND\",\n \"MIDNIGHT_SECONDS\",\n \"MIN\",\n \"MINUTE\",\n \"MOD\",\n \"MONTH\",\n \"MONTHNAME\",\n \"MONTHS_BETWEEN\",\n \"MQREAD\",\n \"MQREADCLOB\",\n \"MQRECEIVE\",\n \"MQRECEIVECLOB\",\n \"MQSEND\",\n \"MULTIPLY_ALT\",\n \"NEXT_DAY\",\n \"NORMALIZE_DECFLOAT\",\n \"NOW\",\n \"NULLIF\",\n \"NVL\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"PI\",\n \"POSITION\",\n \"POSSTR\",\n \"POW\",\n \"POWER\",\n \"QUANTIZE\",\n \"QUARTER\",\n \"RADIANS\",\n \"RAISE_ERROR\",\n \"RANDOM\",\n \"RAND\",\n \"REGEXP_COUNT\",\n \"REGEXP_INSTR\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REPEAT\",\n \"REPLACE\",\n \"RID\",\n \"RIGHT\",\n \"ROUND_TIMESTAMP\",\n \"ROUND\",\n \"RPAD\",\n \"RRN\",\n \"RTRIM\",\n \"SCORE\",\n \"SECOND\",\n \"SIGN\",\n \"SIN\",\n \"SINH\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SQRT\",\n \"STRIP\",\n \"STRLEFT\",\n \"STRPOS\",\n \"STRRIGHT\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TABLE_NAME\",\n \"TABLE_SCHEMA\",\n \"TAN\",\n \"TANH\",\n \"TIMESTAMP_FORMAT\",\n \"TIMESTAMP_ISO\",\n \"TIMESTAMPDIFF_BIG\",\n \"TIMESTAMPDIFF\",\n \"TO_CHAR\",\n \"TO_CLOB\",\n \"TO_DATE\",\n \"TO_NUMBER\",\n \"TO_TIMESTAMP\",\n \"TOTALORDER\",\n \"TRANSLATE\",\n \"TRIM_ARRAY\",\n \"TRIM\",\n \"TRUNC_TIMESTAMP\",\n \"TRUNC\",\n \"TRUNCATE\",\n \"UCASE\",\n \"UPPER\",\n \"URL_DECODE\",\n \"URL_ENCODE\",\n \"VALUE\",\n \"VARBINARY_FORMAT\",\n \"VARCHAR_BIT_FORMAT\",\n \"VARCHAR_FORMAT_BINARY\",\n \"VARCHAR_FORMAT\",\n \"VERIFY_GROUP_FOR_USER\",\n \"WEEK_ISO\",\n \"WEEK\",\n \"WRAP\",\n \"XMLATTRIBUTES\",\n \"XMLCOMMENT\",\n \"XMLCONCAT\",\n \"XMLDOCUMENT\",\n \"XMLELEMENT\",\n \"XMLFOREST\",\n \"XMLNAMESPACES\",\n \"XMLPARSE\",\n \"XMLPI\",\n \"XMLROW\",\n \"XMLSERIALIZE\",\n \"XMLTEXT\",\n \"XMLVALIDATE\",\n \"XOR\",\n \"XSLTRANSFORM\",\n \"YEAR\",\n \"ZONED\",\n // https://www.ibm.com/docs/en/i/7.5?topic=functions-table\n \"BASE_TABLE\",\n \"HTTP_DELETE_BLOB_VERBOSE\",\n \"HTTP_DELETE_VERBOSE\",\n \"HTTP_GET_BLOB_VERBOSE\",\n \"HTTP_GET_VERBOSE\",\n \"HTTP_PATCH_BLOB_VERBOSE\",\n \"HTTP_PATCH_VERBOSE\",\n \"HTTP_POST_BLOB_VERBOSE\",\n \"HTTP_POST_VERBOSE\",\n \"HTTP_PUT_BLOB_VERBOSE\",\n \"HTTP_PUT_VERBOSE\",\n \"JSON_TABLE\",\n \"MQREADALL\",\n \"MQREADALLCLOB\",\n \"MQRECEIVEALL\",\n \"MQRECEIVEALLCLOB\",\n \"XMLTABLE\",\n // https://www.ibm.com/docs/en/db2-for-zos/11?topic=functions-row\n \"UNPACK\",\n // https://www.ibm.com/docs/en/i/7.5?topic=expressions-olap-specifications\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"PERCENT_RANK\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"ROW_NUMBER\",\n // Type casting\n \"CAST\"\n];\n\n// src/languages/db2i/db2i.keywords.ts\nvar keywords3 = [\n // https://www.ibm.com/docs/en/i/7.5?topic=words-reserved\n // TODO: This list likely contains all keywords, not only the reserved ones,\n // try to filter it down to just the reserved keywords.\n \"ABSENT\",\n \"ACCORDING\",\n \"ACCTNG\",\n \"ACTION\",\n \"ACTIVATE\",\n \"ADD\",\n \"ALIAS\",\n \"ALL\",\n \"ALLOCATE\",\n \"ALLOW\",\n \"ALTER\",\n \"AND\",\n \"ANY\",\n \"APPEND\",\n \"APPLNAME\",\n \"ARRAY\",\n \"ARRAY_AGG\",\n \"ARRAY_TRIM\",\n \"AS\",\n \"ASC\",\n \"ASENSITIVE\",\n \"ASSOCIATE\",\n \"ATOMIC\",\n \"ATTACH\",\n \"ATTRIBUTES\",\n \"AUTHORIZATION\",\n \"AUTONOMOUS\",\n \"BEFORE\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BIND\",\n \"BSON\",\n \"BUFFERPOOL\",\n \"BY\",\n \"CACHE\",\n \"CALL\",\n \"CALLED\",\n \"CARDINALITY\",\n \"CASE\",\n \"CAST\",\n \"CHECK\",\n \"CL\",\n \"CLOSE\",\n \"CLUSTER\",\n \"COLLECT\",\n \"COLLECTION\",\n \"COLUMN\",\n \"COMMENT\",\n \"COMMIT\",\n \"COMPACT\",\n \"COMPARISONS\",\n \"COMPRESS\",\n \"CONCAT\",\n \"CONCURRENT\",\n \"CONDITION\",\n \"CONNECT\",\n \"CONNECT_BY_ROOT\",\n \"CONNECTION\",\n \"CONSTANT\",\n \"CONSTRAINT\",\n \"CONTAINS\",\n \"CONTENT\",\n \"CONTINUE\",\n \"COPY\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"CREATE\",\n \"CREATEIN\",\n \"CROSS\",\n \"CUBE\",\n \"CUME_DIST\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_PATH\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_SERVER\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMEZONE\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"CYCLE\",\n \"DATABASE\",\n \"DATAPARTITIONNAME\",\n \"DATAPARTITIONNUM\",\n \"DAY\",\n \"DAYS\",\n \"DB2GENERAL\",\n \"DB2GENRL\",\n \"DB2SQL\",\n \"DBINFO\",\n \"DBPARTITIONNAME\",\n \"DBPARTITIONNUM\",\n \"DEACTIVATE\",\n \"DEALLOCATE\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DEFAULTS\",\n \"DEFER\",\n \"DEFINE\",\n \"DEFINITION\",\n \"DELETE\",\n \"DELETING\",\n \"DENSE_RANK\",\n \"DENSERANK\",\n \"DESC\",\n \"DESCRIBE\",\n \"DESCRIPTOR\",\n \"DETACH\",\n \"DETERMINISTIC\",\n \"DIAGNOSTICS\",\n \"DISABLE\",\n \"DISALLOW\",\n \"DISCONNECT\",\n \"DISTINCT\",\n \"DO\",\n \"DOCUMENT\",\n \"DROP\",\n \"DYNAMIC\",\n \"EACH\",\n \"ELSE\",\n \"ELSEIF\",\n \"EMPTY\",\n \"ENABLE\",\n \"ENCODING\",\n \"ENCRYPTION\",\n \"END\",\n \"END-EXEC\",\n \"ENDING\",\n \"ENFORCED\",\n \"ERROR\",\n \"ESCAPE\",\n \"EVERY\",\n \"EXCEPT\",\n \"EXCEPTION\",\n \"EXCLUDING\",\n \"EXCLUSIVE\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXIT\",\n \"EXTEND\",\n \"EXTERNAL\",\n \"EXTRACT\",\n \"FALSE\",\n \"FENCED\",\n \"FETCH\",\n \"FIELDPROC\",\n \"FILE\",\n \"FINAL\",\n \"FIRST_VALUE\",\n \"FOR\",\n \"FOREIGN\",\n \"FORMAT\",\n \"FREE\",\n \"FREEPAGE\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GBPCACHE\",\n \"GENERAL\",\n \"GENERATED\",\n \"GET\",\n \"GLOBAL\",\n \"GO\",\n \"GOTO\",\n \"GRANT\",\n \"GROUP\",\n \"HANDLER\",\n \"HASH\",\n \"HASH_ROW\",\n \"HASHED_VALUE\",\n \"HAVING\",\n \"HINT\",\n \"HOLD\",\n \"HOUR\",\n \"HOURS\",\n // 'ID', Not actually a reserved keyword\n \"IDENTITY\",\n \"IF\",\n \"IGNORE\",\n \"IMMEDIATE\",\n \"IMPLICITLY\",\n \"IN\",\n \"INCLUDE\",\n \"INCLUDING\",\n \"INCLUSIVE\",\n \"INCREMENT\",\n \"INDEX\",\n \"INDEXBP\",\n \"INDICATOR\",\n \"INF\",\n \"INFINITY\",\n \"INHERIT\",\n \"INLINE\",\n \"INNER\",\n \"INOUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"INSERTING\",\n \"INTEGRITY\",\n \"INTERPRET\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ISNULL\",\n \"ISOLATION\",\n \"ITERATE\",\n \"JAVA\",\n \"JOIN\",\n \"JSON\",\n \"JSON_ARRAY\",\n \"JSON_ARRAYAGG\",\n \"JSON_EXISTS\",\n \"JSON_OBJECT\",\n \"JSON_OBJECTAGG\",\n \"JSON_QUERY\",\n \"JSON_TABLE\",\n \"JSON_VALUE\",\n \"KEEP\",\n \"KEY\",\n \"KEYS\",\n \"LABEL\",\n \"LAG\",\n \"LANGUAGE\",\n \"LAST_VALUE\",\n \"LATERAL\",\n \"LEAD\",\n \"LEAVE\",\n \"LEFT\",\n \"LEVEL2\",\n \"LIKE\",\n \"LIMIT\",\n \"LINKTYPE\",\n \"LISTAGG\",\n \"LOCAL\",\n \"LOCALDATE\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCATION\",\n \"LOCATOR\",\n \"LOCK\",\n \"LOCKSIZE\",\n \"LOG\",\n \"LOGGED\",\n \"LOOP\",\n \"MAINTAINED\",\n \"MASK\",\n \"MATCHED\",\n \"MATERIALIZED\",\n \"MAXVALUE\",\n \"MERGE\",\n \"MICROSECOND\",\n \"MICROSECONDS\",\n \"MINPCTUSED\",\n \"MINUTE\",\n \"MINUTES\",\n \"MINVALUE\",\n \"MIRROR\",\n \"MIXED\",\n \"MODE\",\n \"MODIFIES\",\n \"MONTH\",\n \"MONTHS\",\n \"NAMESPACE\",\n \"NAN\",\n \"NATIONAL\",\n \"NCHAR\",\n \"NCLOB\",\n \"NESTED\",\n \"NEW\",\n \"NEW_TABLE\",\n \"NEXTVAL\",\n \"NO\",\n \"NOCACHE\",\n \"NOCYCLE\",\n \"NODENAME\",\n \"NODENUMBER\",\n \"NOMAXVALUE\",\n \"NOMINVALUE\",\n \"NONE\",\n \"NOORDER\",\n \"NORMALIZED\",\n \"NOT\",\n \"NOTNULL\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULL\",\n \"NULLS\",\n \"NVARCHAR\",\n \"OBID\",\n \"OBJECT\",\n \"OF\",\n \"OFF\",\n \"OFFSET\",\n \"OLD\",\n \"OLD_TABLE\",\n \"OMIT\",\n \"ON\",\n \"ONLY\",\n \"OPEN\",\n \"OPTIMIZE\",\n \"OPTION\",\n \"OR\",\n \"ORDER\",\n \"ORDINALITY\",\n \"ORGANIZE\",\n \"OUT\",\n \"OUTER\",\n \"OVER\",\n \"OVERLAY\",\n \"OVERRIDING\",\n \"PACKAGE\",\n \"PADDED\",\n \"PAGE\",\n \"PAGESIZE\",\n \"PARAMETER\",\n \"PART\",\n \"PARTITION\",\n \"PARTITIONED\",\n \"PARTITIONING\",\n \"PARTITIONS\",\n \"PASSING\",\n \"PASSWORD\",\n \"PATH\",\n \"PCTFREE\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERIOD\",\n \"PERMISSION\",\n \"PIECESIZE\",\n \"PIPE\",\n \"PLAN\",\n \"POSITION\",\n \"PREPARE\",\n \"PREVVAL\",\n \"PRIMARY\",\n \"PRIOR\",\n \"PRIQTY\",\n \"PRIVILEGES\",\n \"PROCEDURE\",\n \"PROGRAM\",\n \"PROGRAMID\",\n \"QUERY\",\n \"RANGE\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"RCDFMT\",\n \"READ\",\n \"READS\",\n \"RECOVERY\",\n \"REFERENCES\",\n \"REFERENCING\",\n \"REFRESH\",\n \"REGEXP_LIKE\",\n \"RELEASE\",\n \"RENAME\",\n \"REPEAT\",\n \"RESET\",\n \"RESIGNAL\",\n \"RESTART\",\n \"RESULT\",\n \"RESULT_SET_LOCATOR\",\n \"RETURN\",\n \"RETURNING\",\n \"RETURNS\",\n \"REVOKE\",\n \"RID\",\n \"RIGHT\",\n \"ROLLBACK\",\n \"ROLLUP\",\n \"ROUTINE\",\n \"ROW\",\n \"ROW_NUMBER\",\n \"ROWNUMBER\",\n \"ROWS\",\n \"RRN\",\n \"RUN\",\n \"SAVEPOINT\",\n \"SBCS\",\n \"SCALAR\",\n \"SCHEMA\",\n \"SCRATCHPAD\",\n \"SCROLL\",\n \"SEARCH\",\n \"SECOND\",\n \"SECONDS\",\n \"SECQTY\",\n \"SECURED\",\n \"SELECT\",\n \"SENSITIVE\",\n \"SEQUENCE\",\n \"SESSION\",\n \"SESSION_USER\",\n \"SET\",\n \"SIGNAL\",\n \"SIMPLE\",\n \"SKIP\",\n \"SNAN\",\n \"SOME\",\n \"SOURCE\",\n \"SPECIFIC\",\n \"SQL\",\n \"SQLID\",\n \"SQLIND_DEFAULT\",\n \"SQLIND_UNASSIGNED\",\n \"STACKED\",\n \"START\",\n \"STARTING\",\n \"STATEMENT\",\n \"STATIC\",\n \"STOGROUP\",\n \"SUBSTRING\",\n \"SUMMARY\",\n \"SYNONYM\",\n \"SYSTEM_TIME\",\n \"SYSTEM_USER\",\n \"TABLE\",\n \"TABLESPACE\",\n \"TABLESPACES\",\n \"TAG\",\n \"THEN\",\n \"THREADSAFE\",\n \"TO\",\n \"TRANSACTION\",\n \"TRANSFER\",\n \"TRIGGER\",\n \"TRIM\",\n \"TRIM_ARRAY\",\n \"TRUE\",\n \"TRUNCATE\",\n \"TRY_CAST\",\n \"TYPE\",\n \"UNDO\",\n \"UNION\",\n \"UNIQUE\",\n \"UNIT\",\n \"UNKNOWN\",\n \"UNNEST\",\n \"UNTIL\",\n \"UPDATE\",\n \"UPDATING\",\n \"URI\",\n \"USAGE\",\n \"USE\",\n \"USER\",\n \"USERID\",\n \"USING\",\n \"VALUE\",\n \"VALUES\",\n \"VARIABLE\",\n \"VARIANT\",\n \"VCAT\",\n \"VERSION\",\n \"VERSIONING\",\n \"VIEW\",\n \"VOLATILE\",\n \"WAIT\",\n \"WHEN\",\n \"WHENEVER\",\n \"WHERE\",\n \"WHILE\",\n \"WITH\",\n \"WITHIN\",\n \"WITHOUT\",\n \"WRAPPED\",\n \"WRAPPER\",\n \"WRITE\",\n \"WRKSTNNAME\",\n \"XMLAGG\",\n \"XMLATTRIBUTES\",\n \"XMLCAST\",\n \"XMLCOMMENT\",\n \"XMLCONCAT\",\n \"XMLDOCUMENT\",\n \"XMLELEMENT\",\n \"XMLFOREST\",\n \"XMLGROUP\",\n \"XMLNAMESPACES\",\n \"XMLPARSE\",\n \"XMLPI\",\n \"XMLROW\",\n \"XMLSERIALIZE\",\n \"XMLTABLE\",\n \"XMLTEXT\",\n \"XMLVALIDATE\",\n \"XSLTRANSFORM\",\n \"XSROBJECT\",\n \"YEAR\",\n \"YEARS\",\n \"YES\",\n \"ZONE\"\n];\nvar dataTypes3 = [\n // https://www.ibm.com/docs/en/i/7.2?topic=iaodsd-odbc-data-types-how-they-correspond-db2-i-database-types\n \"ARRAY\",\n \"BIGINT\",\n \"BINARY\",\n \"BIT\",\n \"BLOB\",\n \"BOOLEAN\",\n \"CCSID\",\n \"CHAR\",\n \"CHARACTER\",\n \"CLOB\",\n \"DATA\",\n \"DATALINK\",\n \"DATE\",\n \"DBCLOB\",\n \"DECFLOAT\",\n \"DECIMAL\",\n \"DEC\",\n \"DOUBLE\",\n \"DOUBLE PRECISION\",\n \"FLOAT\",\n \"GRAPHIC\",\n \"INT\",\n \"INTEGER\",\n \"LONG\",\n \"NUMERIC\",\n \"REAL\",\n \"ROWID\",\n \"SMALLINT\",\n \"TIME\",\n \"TIMESTAMP\",\n \"VARBINARY\",\n \"VARCHAR\",\n \"VARGRAPHIC\",\n \"XML\"\n];\n\n// src/languages/db2i/db2i.formatter.ts\nvar reservedSelect3 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses3 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"INTO\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER [SIBLINGS] BY [INPUT SEQUENCE]\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n \"FOR UPDATE [OF]\",\n \"FOR READ ONLY\",\n \"OPTIMIZE FOR\",\n // Data modification\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE INTO\",\n \"WHEN [NOT] MATCHED [THEN]\",\n \"UPDATE SET\",\n \"DELETE\",\n \"INSERT\",\n // Data definition - table\n \"FOR SYSTEM NAME\"\n]);\nvar standardOnelineClauses3 = expandPhrases([\"CREATE [OR REPLACE] TABLE\"]);\nvar tabularOnelineClauses3 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [RECURSIVE] VIEW\",\n // - update:\n \"UPDATE\",\n \"WHERE CURRENT OF\",\n \"WITH {NC | RR | RS | CS | UR}\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE\",\n // alter table:\n \"ALTER TABLE\",\n \"ADD [COLUMN]\",\n \"ALTER [COLUMN]\",\n \"DROP [COLUMN]\",\n \"SET DATA TYPE\",\n // for alter column\n \"SET {GENERATED ALWAYS | GENERATED BY DEFAULT}\",\n // for alter column\n \"SET NOT NULL\",\n // for alter column\n \"SET {NOT HIDDEN | IMPLICITLY HIDDEN}\",\n // for alter column\n \"SET FIELDPROC\",\n // for alter column\n \"DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // other\n \"SET [CURRENT] SCHEMA\",\n \"SET CURRENT_SCHEMA\",\n // https://www.ibm.com/docs/en/i/7.5?topic=reference-statements\n \"ALLOCATE CURSOR\",\n \"ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL\",\n \"ALTER [SPECIFIC] {FUNCTION | PROCEDURE}\",\n \"ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}\",\n \"ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}\",\n \"BEGIN DECLARE SECTION\",\n \"CALL\",\n \"CLOSE\",\n \"COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}\",\n \"COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}\",\n \"COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}\",\n \"COMMENT ON [TABLE FUNCTION] RETURN COLUMN\",\n \"COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]\",\n \"COMMIT [WORK] [HOLD]\",\n \"CONNECT [TO | RESET] USER\",\n \"CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}\",\n \"CREATE [ENCODED VECTOR] INDEX\",\n \"CREATE UNIQUE [WHERE NOT NULL] INDEX\",\n \"CREATE SCHEMA\",\n \"CREATE TYPE\",\n \"DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]\",\n \"DECLARE CURSOR\",\n \"DECLARE GLOBAL TEMPORARY TABLE\",\n \"DECLARE\",\n \"DESCRIBE CURSOR\",\n \"DESCRIBE INPUT\",\n \"DESCRIBE [OUTPUT]\",\n \"DESCRIBE {PROCEDURE | ROUTINE}\",\n \"DESCRIBE TABLE\",\n \"DISCONNECT ALL [SQL]\",\n \"DISCONNECT [CURRENT]\",\n \"DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]\",\n \"DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]\",\n \"END DECLARE SECTION\",\n \"EXECUTE [IMMEDIATE]\",\n // 'FETCH {NEXT | PRIOR | FIRST | LAST | BEFORE | AFTER | CURRENT} [FROM]',\n \"FREE LOCATOR\",\n \"GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]\",\n \"GET [CURRENT | STACKED] DIAGNOSTICS\",\n \"GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}\",\n \"HOLD LOCATOR\",\n \"INCLUDE\",\n \"LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}\",\n \"LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}\",\n \"LOCK TABLE\",\n \"OPEN\",\n \"PREPARE\",\n \"REFRESH TABLE\",\n \"RELEASE\",\n \"RELEASE [TO] SAVEPOINT\",\n \"RENAME [TABLE | INDEX] TO\",\n \"REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}\",\n \"ROLLBACK [WORK] [HOLD | TO SAVEPOINT]\",\n \"SAVEPOINT\",\n \"SET CONNECTION\",\n \"SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}\",\n \"SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]\",\n \"SET ENCRYPTION PASSWORD\",\n \"SET OPTION\",\n \"SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}\",\n \"SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]\",\n \"SET SESSION AUTHORIZATION\",\n \"SET SESSION_USER\",\n \"SET TRANSACTION\",\n \"SIGNAL SQLSTATE [VALUE]\",\n \"TAG\",\n \"TRANSFER OWNERSHIP OF\",\n \"WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}\"\n]);\nvar reservedSetOperations3 = expandPhrases([\"UNION [ALL]\", \"EXCEPT [ALL]\", \"INTERSECT [ALL]\"]);\nvar reservedJoins3 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"[LEFT | RIGHT] EXCEPTION JOIN\",\n \"{INNER | CROSS} JOIN\"\n]);\nvar reservedPhrases3 = expandPhrases([\n \"ON DELETE\",\n \"ON UPDATE\",\n \"SET NULL\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar db2i = {\n name: \"db2i\",\n tokenizerOptions: {\n reservedSelect: reservedSelect3,\n reservedClauses: [...reservedClauses3, ...standardOnelineClauses3, ...tabularOnelineClauses3],\n reservedSetOperations: reservedSetOperations3,\n reservedJoins: reservedJoins3,\n reservedPhrases: reservedPhrases3,\n reservedKeywords: keywords3,\n reservedDataTypes: dataTypes3,\n reservedFunctionNames: functions3,\n nestedBlockComments: true,\n extraParens: [\"[]\"],\n stringTypes: [\n { quote: \"''-qq\", prefixes: [\"G\", \"N\"] },\n { quote: \"''-raw\", prefixes: [\"X\", \"BX\", \"GX\", \"UX\"], requirePrefix: true }\n ],\n identTypes: [`\"\"-qq`],\n identChars: { first: \"@#$\", rest: \"@#$\" },\n paramTypes: { positional: true, named: [\":\"] },\n paramChars: { first: \"@#$\", rest: \"@#$\" },\n operators: [\"**\", \"\\xAC=\", \"\\xAC>\", \"\\xAC<\", \"!>\", \"!<\", \"||\", \"=>\"]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses3, ...tabularOnelineClauses3],\n tabularOnelineClauses: tabularOnelineClauses3\n }\n};\n\n// src/languages/hive/hive.functions.ts\nvar functions4 = [\n // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF\n // math\n \"ABS\",\n \"ACOS\",\n \"ASIN\",\n \"ATAN\",\n \"BIN\",\n \"BROUND\",\n \"CBRT\",\n \"CEIL\",\n \"CEILING\",\n \"CONV\",\n \"COS\",\n \"DEGREES\",\n // 'E',\n \"EXP\",\n \"FACTORIAL\",\n \"FLOOR\",\n \"GREATEST\",\n \"HEX\",\n \"LEAST\",\n \"LN\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"NEGATIVE\",\n \"PI\",\n \"PMOD\",\n \"POSITIVE\",\n \"POW\",\n \"POWER\",\n \"RADIANS\",\n \"RAND\",\n \"ROUND\",\n \"SHIFTLEFT\",\n \"SHIFTRIGHT\",\n \"SHIFTRIGHTUNSIGNED\",\n \"SIGN\",\n \"SIN\",\n \"SQRT\",\n \"TAN\",\n \"UNHEX\",\n \"WIDTH_BUCKET\",\n // array\n \"ARRAY_CONTAINS\",\n \"MAP_KEYS\",\n \"MAP_VALUES\",\n \"SIZE\",\n \"SORT_ARRAY\",\n // conversion\n \"BINARY\",\n \"CAST\",\n // date\n \"ADD_MONTHS\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATE_FORMAT\",\n \"DATE_SUB\",\n \"DATEDIFF\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFYEAR\",\n \"EXTRACT\",\n \"FROM_UNIXTIME\",\n \"FROM_UTC_TIMESTAMP\",\n \"HOUR\",\n \"LAST_DAY\",\n \"MINUTE\",\n \"MONTH\",\n \"MONTHS_BETWEEN\",\n \"NEXT_DAY\",\n \"QUARTER\",\n \"SECOND\",\n \"TIMESTAMP\",\n \"TO_DATE\",\n \"TO_UTC_TIMESTAMP\",\n \"TRUNC\",\n \"UNIX_TIMESTAMP\",\n \"WEEKOFYEAR\",\n \"YEAR\",\n // conditional\n \"ASSERT_TRUE\",\n \"COALESCE\",\n \"IF\",\n \"ISNOTNULL\",\n \"ISNULL\",\n \"NULLIF\",\n \"NVL\",\n // string\n \"ASCII\",\n \"BASE64\",\n \"CHARACTER_LENGTH\",\n \"CHR\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONTEXT_NGRAMS\",\n \"DECODE\",\n \"ELT\",\n \"ENCODE\",\n \"FIELD\",\n \"FIND_IN_SET\",\n \"FORMAT_NUMBER\",\n \"GET_JSON_OBJECT\",\n \"IN_FILE\",\n \"INITCAP\",\n \"INSTR\",\n \"LCASE\",\n \"LENGTH\",\n \"LEVENSHTEIN\",\n \"LOCATE\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"NGRAMS\",\n \"OCTET_LENGTH\",\n \"PARSE_URL\",\n \"PRINTF\",\n \"QUOTE\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_REPLACE\",\n \"REPEAT\",\n \"REVERSE\",\n \"RPAD\",\n \"RTRIM\",\n \"SENTENCES\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SPLIT\",\n \"STR_TO_MAP\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TRANSLATE\",\n \"TRIM\",\n \"UCASE\",\n \"UNBASE64\",\n \"UPPER\",\n // masking\n \"MASK\",\n \"MASK_FIRST_N\",\n \"MASK_HASH\",\n \"MASK_LAST_N\",\n \"MASK_SHOW_FIRST_N\",\n \"MASK_SHOW_LAST_N\",\n // misc\n \"AES_DECRYPT\",\n \"AES_ENCRYPT\",\n \"CRC32\",\n \"CURRENT_DATABASE\",\n \"CURRENT_USER\",\n \"HASH\",\n \"JAVA_METHOD\",\n \"LOGGED_IN_USER\",\n \"MD5\",\n \"REFLECT\",\n \"SHA\",\n \"SHA1\",\n \"SHA2\",\n \"SURROGATE_KEY\",\n \"VERSION\",\n // aggregate\n \"AVG\",\n \"COLLECT_LIST\",\n \"COLLECT_SET\",\n \"CORR\",\n \"COUNT\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"HISTOGRAM_NUMERIC\",\n \"MAX\",\n \"MIN\",\n \"NTILE\",\n \"PERCENTILE\",\n \"PERCENTILE_APPROX\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_COUNT\",\n \"REGR_INTERCEPT\",\n \"REGR_R2\",\n \"REGR_SLOPE\",\n \"REGR_SXX\",\n \"REGR_SXY\",\n \"REGR_SYY\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n // table\n \"EXPLODE\",\n \"INLINE\",\n \"JSON_TUPLE\",\n \"PARSE_URL_TUPLE\",\n \"POSEXPLODE\",\n \"STACK\",\n // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics\n \"LEAD\",\n \"LAG\",\n \"FIRST_VALUE\",\n \"LAST_VALUE\",\n \"RANK\",\n \"ROW_NUMBER\",\n \"DENSE_RANK\",\n \"CUME_DIST\",\n \"PERCENT_RANK\",\n \"NTILE\"\n];\n\n// src/languages/hive/hive.keywords.ts\nvar keywords4 = [\n // https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl\n // Non-reserved keywords have proscribed meanings in. HiveQL, but can still be used as table or column names\n \"ADD\",\n \"ADMIN\",\n \"AFTER\",\n \"ANALYZE\",\n \"ARCHIVE\",\n \"ASC\",\n \"BEFORE\",\n \"BUCKET\",\n \"BUCKETS\",\n \"CASCADE\",\n \"CHANGE\",\n \"CLUSTER\",\n \"CLUSTERED\",\n \"CLUSTERSTATUS\",\n \"COLLECTION\",\n \"COLUMNS\",\n \"COMMENT\",\n \"COMPACT\",\n \"COMPACTIONS\",\n \"COMPUTE\",\n \"CONCATENATE\",\n \"CONTINUE\",\n \"DATA\",\n \"DATABASES\",\n \"DATETIME\",\n \"DAY\",\n \"DBPROPERTIES\",\n \"DEFERRED\",\n \"DEFINED\",\n \"DELIMITED\",\n \"DEPENDENCY\",\n \"DESC\",\n \"DIRECTORIES\",\n \"DIRECTORY\",\n \"DISABLE\",\n \"DISTRIBUTE\",\n \"ELEM_TYPE\",\n \"ENABLE\",\n \"ESCAPED\",\n \"EXCLUSIVE\",\n \"EXPLAIN\",\n \"EXPORT\",\n \"FIELDS\",\n \"FILE\",\n \"FILEFORMAT\",\n \"FIRST\",\n \"FORMAT\",\n \"FORMATTED\",\n \"FUNCTIONS\",\n \"HOLD_DDLTIME\",\n \"HOUR\",\n \"IDXPROPERTIES\",\n \"IGNORE\",\n \"INDEX\",\n \"INDEXES\",\n \"INPATH\",\n \"INPUTDRIVER\",\n \"INPUTFORMAT\",\n \"ITEMS\",\n \"JAR\",\n \"KEYS\",\n \"KEY_TYPE\",\n \"LIMIT\",\n \"LINES\",\n \"LOAD\",\n \"LOCATION\",\n \"LOCK\",\n \"LOCKS\",\n \"LOGICAL\",\n \"LONG\",\n \"MAPJOIN\",\n \"MATERIALIZED\",\n \"METADATA\",\n \"MINUS\",\n \"MINUTE\",\n \"MONTH\",\n \"MSCK\",\n \"NOSCAN\",\n \"NO_DROP\",\n \"OFFLINE\",\n \"OPTION\",\n \"OUTPUTDRIVER\",\n \"OUTPUTFORMAT\",\n \"OVERWRITE\",\n \"OWNER\",\n \"PARTITIONED\",\n \"PARTITIONS\",\n \"PLUS\",\n \"PRETTY\",\n \"PRINCIPALS\",\n \"PROTECTION\",\n \"PURGE\",\n \"READ\",\n \"READONLY\",\n \"REBUILD\",\n \"RECORDREADER\",\n \"RECORDWRITER\",\n \"RELOAD\",\n \"RENAME\",\n \"REPAIR\",\n \"REPLACE\",\n \"REPLICATION\",\n \"RESTRICT\",\n \"REWRITE\",\n \"ROLE\",\n \"ROLES\",\n \"SCHEMA\",\n \"SCHEMAS\",\n \"SECOND\",\n \"SEMI\",\n \"SERDE\",\n \"SERDEPROPERTIES\",\n \"SERVER\",\n \"SETS\",\n \"SHARED\",\n \"SHOW\",\n \"SHOW_DATABASE\",\n \"SKEWED\",\n \"SORT\",\n \"SORTED\",\n \"SSL\",\n \"STATISTICS\",\n \"STORED\",\n \"STREAMTABLE\",\n \"STRING\",\n \"TABLES\",\n \"TBLPROPERTIES\",\n \"TEMPORARY\",\n \"TERMINATED\",\n \"TINYINT\",\n \"TOUCH\",\n \"TRANSACTIONS\",\n \"UNARCHIVE\",\n \"UNDO\",\n \"UNIONTYPE\",\n \"UNLOCK\",\n \"UNSET\",\n \"UNSIGNED\",\n \"URI\",\n \"USE\",\n \"UTC\",\n \"UTCTIMESTAMP\",\n \"VALUE_TYPE\",\n \"VIEW\",\n \"WHILE\",\n \"YEAR\",\n \"AUTOCOMMIT\",\n \"ISOLATION\",\n \"LEVEL\",\n \"OFFSET\",\n \"SNAPSHOT\",\n \"TRANSACTION\",\n \"WORK\",\n \"WRITE\",\n \"ABORT\",\n \"KEY\",\n \"LAST\",\n \"NORELY\",\n \"NOVALIDATE\",\n \"NULLS\",\n \"RELY\",\n \"VALIDATE\",\n \"DETAIL\",\n \"DOW\",\n \"EXPRESSION\",\n \"OPERATOR\",\n \"QUARTER\",\n \"SUMMARY\",\n \"VECTORIZATION\",\n \"WEEK\",\n \"YEARS\",\n \"MONTHS\",\n \"WEEKS\",\n \"DAYS\",\n \"HOURS\",\n \"MINUTES\",\n \"SECONDS\",\n \"TIMESTAMPTZ\",\n \"ZONE\",\n // reserved\n \"ALL\",\n \"ALTER\",\n \"AND\",\n \"AS\",\n \"AUTHORIZATION\",\n \"BETWEEN\",\n \"BOTH\",\n \"BY\",\n \"CASE\",\n \"CAST\",\n \"COLUMN\",\n \"CONF\",\n \"CREATE\",\n \"CROSS\",\n \"CUBE\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIMESTAMP\",\n \"CURSOR\",\n \"DATABASE\",\n \"DELETE\",\n \"DESCRIBE\",\n \"DISTINCT\",\n \"DROP\",\n \"ELSE\",\n \"END\",\n \"EXCHANGE\",\n \"EXISTS\",\n \"EXTENDED\",\n \"EXTERNAL\",\n \"FALSE\",\n \"FETCH\",\n \"FOLLOWING\",\n \"FOR\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GRANT\",\n \"GROUP\",\n \"GROUPING\",\n \"HAVING\",\n \"IF\",\n \"IMPORT\",\n \"IN\",\n \"INNER\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"JOIN\",\n \"LATERAL\",\n \"LEFT\",\n \"LESS\",\n \"LIKE\",\n \"LOCAL\",\n \"MACRO\",\n \"MORE\",\n \"NONE\",\n \"NOT\",\n \"NULL\",\n \"OF\",\n \"ON\",\n \"OR\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OVER\",\n \"PARTIALSCAN\",\n \"PARTITION\",\n \"PERCENT\",\n \"PRECEDING\",\n \"PRESERVE\",\n \"PROCEDURE\",\n \"RANGE\",\n \"READS\",\n \"REDUCE\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLLUP\",\n \"ROW\",\n \"ROWS\",\n \"SELECT\",\n \"SET\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"THEN\",\n \"TO\",\n \"TRANSFORM\",\n \"TRIGGER\",\n \"TRUE\",\n \"TRUNCATE\",\n \"UNBOUNDED\",\n \"UNION\",\n \"UNIQUEJOIN\",\n \"UPDATE\",\n \"USER\",\n \"USING\",\n \"UTC_TMESTAMP\",\n \"VALUES\",\n \"WHEN\",\n \"WHERE\",\n \"WINDOW\",\n \"WITH\",\n \"COMMIT\",\n \"ONLY\",\n \"REGEXP\",\n \"RLIKE\",\n \"ROLLBACK\",\n \"START\",\n \"CACHE\",\n \"CONSTRAINT\",\n \"FOREIGN\",\n \"PRIMARY\",\n \"REFERENCES\",\n \"DAYOFWEEK\",\n \"EXTRACT\",\n \"FLOOR\",\n \"VIEWS\",\n \"TIME\",\n \"SYNC\",\n // fileTypes\n \"TEXTFILE\",\n \"SEQUENCEFILE\",\n \"ORC\",\n \"CSV\",\n \"TSV\",\n \"PARQUET\",\n \"AVRO\",\n \"RCFILE\",\n \"JSONFILE\",\n \"INPUTFORMAT\",\n \"OUTPUTFORMAT\"\n];\nvar dataTypes4 = [\n // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types\n \"ARRAY\",\n \"BIGINT\",\n \"BINARY\",\n \"BOOLEAN\",\n \"CHAR\",\n \"DATE\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"FLOAT\",\n \"INT\",\n \"INTEGER\",\n \"INTERVAL\",\n \"MAP\",\n \"NUMERIC\",\n \"PRECISION\",\n \"SMALLINT\",\n \"STRUCT\",\n \"TIMESTAMP\",\n \"VARCHAR\"\n];\n\n// src/languages/hive/hive.formatter.ts\nvar reservedSelect4 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses4 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"SORT BY\",\n \"CLUSTER BY\",\n \"DISTRIBUTE BY\",\n \"LIMIT\",\n // Data manipulation\n // - insert:\n // Hive does not actually support plain INSERT INTO, only INSERT INTO TABLE\n // but it's a nuisance to not support it, as all other dialects do.\n \"INSERT INTO [TABLE]\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE INTO\",\n \"WHEN [NOT] MATCHED [THEN]\",\n \"UPDATE SET\",\n \"INSERT [VALUES]\",\n // - insert overwrite directory:\n // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Writingdataintothefilesystemfromqueries\n \"INSERT OVERWRITE [LOCAL] DIRECTORY\",\n // - load:\n // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Loadingfilesintotables\n \"LOAD DATA [LOCAL] INPATH\",\n \"[OVERWRITE] INTO TABLE\"\n]);\nvar standardOnelineClauses4 = expandPhrases([\n \"CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses4 = expandPhrases([\n // - create:\n \"CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"RENAME TO\",\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // other\n \"ALTER\",\n \"CREATE\",\n \"USE\",\n \"DESCRIBE\",\n \"DROP\",\n \"FETCH\",\n \"SHOW\",\n \"STORED AS\",\n \"STORED BY\",\n \"ROW FORMAT\"\n]);\nvar reservedSetOperations4 = expandPhrases([\"UNION [ALL | DISTINCT]\"]);\nvar reservedJoins4 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n // non-standard joins\n \"LEFT SEMI JOIN\"\n]);\nvar reservedPhrases4 = expandPhrases([\"{ROWS | RANGE} BETWEEN\"]);\nvar hive = {\n name: \"hive\",\n tokenizerOptions: {\n reservedSelect: reservedSelect4,\n reservedClauses: [...reservedClauses4, ...standardOnelineClauses4, ...tabularOnelineClauses4],\n reservedSetOperations: reservedSetOperations4,\n reservedJoins: reservedJoins4,\n reservedPhrases: reservedPhrases4,\n reservedKeywords: keywords4,\n reservedDataTypes: dataTypes4,\n reservedFunctionNames: functions4,\n extraParens: [\"[]\"],\n stringTypes: ['\"\"-bs', \"''-bs\"],\n identTypes: [\"``\"],\n variableTypes: [{ quote: \"{}\", prefixes: [\"$\"], requirePrefix: true }],\n operators: [\"%\", \"~\", \"^\", \"|\", \"&\", \"<=>\", \"==\", \"!\", \"||\"]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses4, ...tabularOnelineClauses4],\n tabularOnelineClauses: tabularOnelineClauses4\n }\n};\n\n// src/languages/mariadb/likeMariaDb.ts\nfunction postProcess2(tokens) {\n return tokens.map((token, i) => {\n const nextToken = tokens[i + 1] || EOF_TOKEN;\n if (isToken.SET(token) && nextToken.text === \"(\") {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */ });\n }\n const prevToken = tokens[i - 1] || EOF_TOKEN;\n if (isToken.VALUES(token) && prevToken.text === \"=\") {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */ });\n }\n return token;\n });\n}\n\n// src/languages/mariadb/mariadb.keywords.ts\nvar keywords5 = [\n // https://mariadb.com/kb/en/reserved-words/\n \"ACCESSIBLE\",\n \"ADD\",\n \"ALL\",\n \"ALTER\",\n \"ANALYZE\",\n \"AND\",\n \"AS\",\n \"ASC\",\n \"ASENSITIVE\",\n \"BEFORE\",\n \"BETWEEN\",\n \"BOTH\",\n \"BY\",\n \"CALL\",\n \"CASCADE\",\n \"CASE\",\n \"CHANGE\",\n \"CHECK\",\n \"COLLATE\",\n \"COLUMN\",\n \"CONDITION\",\n \"CONSTRAINT\",\n \"CONTINUE\",\n \"CONVERT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT_DATE\",\n \"CURRENT_ROLE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"DATABASE\",\n \"DATABASES\",\n \"DAY_HOUR\",\n \"DAY_MICROSECOND\",\n \"DAY_MINUTE\",\n \"DAY_SECOND\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DELAYED\",\n \"DELETE\",\n \"DELETE_DOMAIN_ID\",\n \"DESC\",\n \"DESCRIBE\",\n \"DETERMINISTIC\",\n \"DISTINCT\",\n \"DISTINCTROW\",\n \"DIV\",\n \"DO_DOMAIN_IDS\",\n \"DROP\",\n \"DUAL\",\n \"EACH\",\n \"ELSE\",\n \"ELSEIF\",\n \"ENCLOSED\",\n \"ESCAPED\",\n \"EXCEPT\",\n \"EXISTS\",\n \"EXIT\",\n \"EXPLAIN\",\n \"FALSE\",\n \"FETCH\",\n \"FOR\",\n \"FORCE\",\n \"FOREIGN\",\n \"FROM\",\n \"FULLTEXT\",\n \"GENERAL\",\n \"GRANT\",\n \"GROUP\",\n \"HAVING\",\n \"HIGH_PRIORITY\",\n \"HOUR_MICROSECOND\",\n \"HOUR_MINUTE\",\n \"HOUR_SECOND\",\n \"IF\",\n \"IGNORE\",\n \"IGNORE_DOMAIN_IDS\",\n \"IGNORE_SERVER_IDS\",\n \"IN\",\n \"INDEX\",\n \"INFILE\",\n \"INNER\",\n \"INOUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTERVAL\",\n \"INTO\",\n \"IS\",\n \"ITERATE\",\n \"JOIN\",\n \"KEY\",\n \"KEYS\",\n \"KILL\",\n \"LEADING\",\n \"LEAVE\",\n \"LEFT\",\n \"LIKE\",\n \"LIMIT\",\n \"LINEAR\",\n \"LINES\",\n \"LOAD\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCK\",\n \"LOOP\",\n \"LOW_PRIORITY\",\n \"MASTER_HEARTBEAT_PERIOD\",\n \"MASTER_SSL_VERIFY_SERVER_CERT\",\n \"MATCH\",\n \"MAXVALUE\",\n \"MINUTE_MICROSECOND\",\n \"MINUTE_SECOND\",\n \"MOD\",\n \"MODIFIES\",\n \"NATURAL\",\n \"NOT\",\n \"NO_WRITE_TO_BINLOG\",\n \"NULL\",\n \"OFFSET\",\n \"ON\",\n \"OPTIMIZE\",\n \"OPTION\",\n \"OPTIONALLY\",\n \"OR\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OUTFILE\",\n \"OVER\",\n \"PAGE_CHECKSUM\",\n \"PARSE_VCOL_EXPR\",\n \"PARTITION\",\n \"POSITION\",\n \"PRIMARY\",\n \"PROCEDURE\",\n \"PURGE\",\n \"RANGE\",\n \"READ\",\n \"READS\",\n \"READ_WRITE\",\n \"RECURSIVE\",\n \"REF_SYSTEM_ID\",\n \"REFERENCES\",\n \"REGEXP\",\n \"RELEASE\",\n \"RENAME\",\n \"REPEAT\",\n \"REPLACE\",\n \"REQUIRE\",\n \"RESIGNAL\",\n \"RESTRICT\",\n \"RETURN\",\n \"RETURNING\",\n \"REVOKE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROW_NUMBER\",\n \"ROWS\",\n \"SCHEMA\",\n \"SCHEMAS\",\n \"SECOND_MICROSECOND\",\n \"SELECT\",\n \"SENSITIVE\",\n \"SEPARATOR\",\n \"SET\",\n \"SHOW\",\n \"SIGNAL\",\n \"SLOW\",\n \"SPATIAL\",\n \"SPECIFIC\",\n \"SQL\",\n \"SQLEXCEPTION\",\n \"SQLSTATE\",\n \"SQLWARNING\",\n \"SQL_BIG_RESULT\",\n \"SQL_CALC_FOUND_ROWS\",\n \"SQL_SMALL_RESULT\",\n \"SSL\",\n \"STARTING\",\n \"STATS_AUTO_RECALC\",\n \"STATS_PERSISTENT\",\n \"STATS_SAMPLE_PAGES\",\n \"STRAIGHT_JOIN\",\n \"TABLE\",\n \"TERMINATED\",\n \"THEN\",\n \"TO\",\n \"TRAILING\",\n \"TRIGGER\",\n \"TRUE\",\n \"UNDO\",\n \"UNION\",\n \"UNIQUE\",\n \"UNLOCK\",\n \"UNSIGNED\",\n \"UPDATE\",\n \"USAGE\",\n \"USE\",\n \"USING\",\n \"UTC_DATE\",\n \"UTC_TIME\",\n \"UTC_TIMESTAMP\",\n \"VALUES\",\n \"WHEN\",\n \"WHERE\",\n \"WHILE\",\n \"WINDOW\",\n \"WITH\",\n \"WRITE\",\n \"XOR\",\n \"YEAR_MONTH\",\n \"ZEROFILL\"\n];\nvar dataTypes5 = [\n // https://mariadb.com/kb/en/data-types/\n \"BIGINT\",\n \"BINARY\",\n \"BIT\",\n \"BLOB\",\n \"CHAR BYTE\",\n \"CHAR\",\n \"CHARACTER\",\n \"DATETIME\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE PRECISION\",\n \"DOUBLE\",\n \"ENUM\",\n \"FIXED\",\n \"FLOAT\",\n \"FLOAT4\",\n \"FLOAT8\",\n \"INT\",\n \"INT1\",\n \"INT2\",\n \"INT3\",\n \"INT4\",\n \"INT8\",\n \"INTEGER\",\n \"LONG\",\n \"LONGBLOB\",\n \"LONGTEXT\",\n \"MEDIUMBLOB\",\n \"MEDIUMINT\",\n \"MEDIUMTEXT\",\n \"MIDDLEINT\",\n \"NATIONAL CHAR\",\n \"NATIONAL VARCHAR\",\n \"NUMERIC\",\n \"PRECISION\",\n \"REAL\",\n \"SMALLINT\",\n \"TEXT\",\n \"TIMESTAMP\",\n \"TINYBLOB\",\n \"TINYINT\",\n \"TINYTEXT\",\n \"VARBINARY\",\n \"VARCHAR\",\n \"VARCHARACTER\",\n \"VARYING\",\n \"YEAR\"\n // 'NUMBER', // ?? In oracle mode only\n // 'SET' // handled as special-case in postProcess\n];\n\n// src/languages/mariadb/mariadb.functions.ts\nvar functions5 = [\n // https://mariadb.com/kb/en/information-schema-sql_functions-table/\n \"ADDDATE\",\n \"ADD_MONTHS\",\n \"BIT_AND\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"CAST\",\n \"COUNT\",\n \"CUME_DIST\",\n \"CURDATE\",\n \"CURTIME\",\n \"DATE_ADD\",\n \"DATE_SUB\",\n \"DATE_FORMAT\",\n \"DECODE\",\n \"DENSE_RANK\",\n \"EXTRACT\",\n \"FIRST_VALUE\",\n \"GROUP_CONCAT\",\n \"JSON_ARRAYAGG\",\n \"JSON_OBJECTAGG\",\n \"LAG\",\n \"LEAD\",\n \"MAX\",\n \"MEDIAN\",\n \"MID\",\n \"MIN\",\n \"NOW\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"POSITION\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"RANK\",\n \"ROW_NUMBER\",\n \"SESSION_USER\",\n \"STD\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"SUBDATE\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUM\",\n \"SYSTEM_USER\",\n \"TRIM\",\n \"TRIM_ORACLE\",\n \"VARIANCE\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"ABS\",\n \"ACOS\",\n \"ADDTIME\",\n \"AES_DECRYPT\",\n \"AES_ENCRYPT\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"BENCHMARK\",\n \"BIN\",\n \"BINLOG_GTID_POS\",\n \"BIT_COUNT\",\n \"BIT_LENGTH\",\n \"CEIL\",\n \"CEILING\",\n \"CHARACTER_LENGTH\",\n \"CHAR_LENGTH\",\n \"CHR\",\n \"COERCIBILITY\",\n \"COLUMN_CHECK\",\n \"COLUMN_EXISTS\",\n \"COLUMN_LIST\",\n \"COLUMN_JSON\",\n \"COMPRESS\",\n \"CONCAT\",\n \"CONCAT_OPERATOR_ORACLE\",\n \"CONCAT_WS\",\n \"CONNECTION_ID\",\n \"CONV\",\n \"CONVERT_TZ\",\n \"COS\",\n \"COT\",\n \"CRC32\",\n \"DATEDIFF\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"DEGREES\",\n \"DECODE_HISTOGRAM\",\n \"DECODE_ORACLE\",\n \"DES_DECRYPT\",\n \"DES_ENCRYPT\",\n \"ELT\",\n \"ENCODE\",\n \"ENCRYPT\",\n \"EXP\",\n \"EXPORT_SET\",\n \"EXTRACTVALUE\",\n \"FIELD\",\n \"FIND_IN_SET\",\n \"FLOOR\",\n \"FORMAT\",\n \"FOUND_ROWS\",\n \"FROM_BASE64\",\n \"FROM_DAYS\",\n \"FROM_UNIXTIME\",\n \"GET_LOCK\",\n \"GREATEST\",\n \"HEX\",\n \"IFNULL\",\n \"INSTR\",\n \"ISNULL\",\n \"IS_FREE_LOCK\",\n \"IS_USED_LOCK\",\n \"JSON_ARRAY\",\n \"JSON_ARRAY_APPEND\",\n \"JSON_ARRAY_INSERT\",\n \"JSON_COMPACT\",\n \"JSON_CONTAINS\",\n \"JSON_CONTAINS_PATH\",\n \"JSON_DEPTH\",\n \"JSON_DETAILED\",\n \"JSON_EXISTS\",\n \"JSON_EXTRACT\",\n \"JSON_INSERT\",\n \"JSON_KEYS\",\n \"JSON_LENGTH\",\n \"JSON_LOOSE\",\n \"JSON_MERGE\",\n \"JSON_MERGE_PATCH\",\n \"JSON_MERGE_PRESERVE\",\n \"JSON_QUERY\",\n \"JSON_QUOTE\",\n \"JSON_OBJECT\",\n \"JSON_REMOVE\",\n \"JSON_REPLACE\",\n \"JSON_SET\",\n \"JSON_SEARCH\",\n \"JSON_TYPE\",\n \"JSON_UNQUOTE\",\n \"JSON_VALID\",\n \"JSON_VALUE\",\n \"LAST_DAY\",\n \"LAST_INSERT_ID\",\n \"LCASE\",\n \"LEAST\",\n \"LENGTH\",\n \"LENGTHB\",\n \"LN\",\n \"LOAD_FILE\",\n \"LOCATE\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"LOWER\",\n \"LPAD\",\n \"LPAD_ORACLE\",\n \"LTRIM\",\n \"LTRIM_ORACLE\",\n \"MAKEDATE\",\n \"MAKETIME\",\n \"MAKE_SET\",\n \"MASTER_GTID_WAIT\",\n \"MASTER_POS_WAIT\",\n \"MD5\",\n \"MONTHNAME\",\n \"NAME_CONST\",\n \"NVL\",\n \"NVL2\",\n \"OCT\",\n \"OCTET_LENGTH\",\n \"ORD\",\n \"PERIOD_ADD\",\n \"PERIOD_DIFF\",\n \"PI\",\n \"POW\",\n \"POWER\",\n \"QUOTE\",\n \"REGEXP_INSTR\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"RADIANS\",\n \"RAND\",\n \"RELEASE_ALL_LOCKS\",\n \"RELEASE_LOCK\",\n \"REPLACE_ORACLE\",\n \"REVERSE\",\n \"ROUND\",\n \"RPAD\",\n \"RPAD_ORACLE\",\n \"RTRIM\",\n \"RTRIM_ORACLE\",\n \"SEC_TO_TIME\",\n \"SHA\",\n \"SHA1\",\n \"SHA2\",\n \"SIGN\",\n \"SIN\",\n \"SLEEP\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SQRT\",\n \"STRCMP\",\n \"STR_TO_DATE\",\n \"SUBSTR_ORACLE\",\n \"SUBSTRING_INDEX\",\n \"SUBTIME\",\n \"SYS_GUID\",\n \"TAN\",\n \"TIMEDIFF\",\n \"TIME_FORMAT\",\n \"TIME_TO_SEC\",\n \"TO_BASE64\",\n \"TO_CHAR\",\n \"TO_DAYS\",\n \"TO_SECONDS\",\n \"UCASE\",\n \"UNCOMPRESS\",\n \"UNCOMPRESSED_LENGTH\",\n \"UNHEX\",\n \"UNIX_TIMESTAMP\",\n \"UPDATEXML\",\n \"UPPER\",\n \"UUID\",\n \"UUID_SHORT\",\n \"VERSION\",\n \"WEEKDAY\",\n \"WEEKOFYEAR\",\n \"WSREP_LAST_WRITTEN_GTID\",\n \"WSREP_LAST_SEEN_GTID\",\n \"WSREP_SYNC_WAIT_UPTO_GTID\",\n \"YEARWEEK\",\n // CASE expression shorthands\n \"COALESCE\",\n \"NULLIF\"\n];\n\n// src/languages/mariadb/mariadb.formatter.ts\nvar reservedSelect5 = expandPhrases([\"SELECT [ALL | DISTINCT | DISTINCTROW]\"]);\nvar reservedClauses5 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n // Data manipulation\n // - insert:\n \"INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]\",\n \"REPLACE [LOW_PRIORITY | DELAYED] [INTO]\",\n \"VALUES\",\n \"ON DUPLICATE KEY UPDATE\",\n // - update:\n \"SET\",\n // other\n \"RETURNING\"\n]);\nvar standardOnelineClauses5 = expandPhrases([\n \"CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses5 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE [LOW_PRIORITY] [IGNORE]\",\n // - delete:\n \"DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM\",\n // - drop table:\n \"DROP [TEMPORARY] TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]\",\n \"ADD [COLUMN] [IF NOT EXISTS]\",\n \"{CHANGE | MODIFY} [COLUMN] [IF EXISTS]\",\n \"DROP [COLUMN] [IF EXISTS]\",\n \"RENAME [TO]\",\n \"RENAME COLUMN\",\n \"ALTER [COLUMN]\",\n \"{SET | DROP} DEFAULT\",\n // for alter column\n \"SET {VISIBLE | INVISIBLE}\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // https://mariadb.com/docs/reference/mdb/sql-statements/\n \"ALTER DATABASE\",\n \"ALTER DATABASE COMMENT\",\n \"ALTER EVENT\",\n \"ALTER FUNCTION\",\n \"ALTER PROCEDURE\",\n \"ALTER SCHEMA\",\n \"ALTER SCHEMA COMMENT\",\n \"ALTER SEQUENCE\",\n \"ALTER SERVER\",\n \"ALTER USER\",\n \"ALTER VIEW\",\n \"ANALYZE\",\n \"ANALYZE TABLE\",\n \"BACKUP LOCK\",\n \"BACKUP STAGE\",\n \"BACKUP UNLOCK\",\n \"BEGIN\",\n \"BINLOG\",\n \"CACHE INDEX\",\n \"CALL\",\n \"CHANGE MASTER TO\",\n \"CHECK TABLE\",\n \"CHECK VIEW\",\n \"CHECKSUM TABLE\",\n \"COMMIT\",\n \"CREATE AGGREGATE FUNCTION\",\n \"CREATE DATABASE\",\n \"CREATE EVENT\",\n \"CREATE FUNCTION\",\n \"CREATE INDEX\",\n \"CREATE PROCEDURE\",\n \"CREATE ROLE\",\n \"CREATE SEQUENCE\",\n \"CREATE SERVER\",\n \"CREATE SPATIAL INDEX\",\n \"CREATE TRIGGER\",\n \"CREATE UNIQUE INDEX\",\n \"CREATE USER\",\n \"DEALLOCATE PREPARE\",\n \"DESCRIBE\",\n \"DROP DATABASE\",\n \"DROP EVENT\",\n \"DROP FUNCTION\",\n \"DROP INDEX\",\n \"DROP PREPARE\",\n \"DROP PROCEDURE\",\n \"DROP ROLE\",\n \"DROP SEQUENCE\",\n \"DROP SERVER\",\n \"DROP TRIGGER\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"EXECUTE\",\n \"EXPLAIN\",\n \"FLUSH\",\n \"GET DIAGNOSTICS\",\n \"GET DIAGNOSTICS CONDITION\",\n \"GRANT\",\n \"HANDLER\",\n \"HELP\",\n \"INSTALL PLUGIN\",\n \"INSTALL SONAME\",\n \"KILL\",\n \"LOAD DATA INFILE\",\n \"LOAD INDEX INTO CACHE\",\n \"LOAD XML INFILE\",\n \"LOCK TABLE\",\n \"OPTIMIZE TABLE\",\n \"PREPARE\",\n \"PURGE BINARY LOGS\",\n \"PURGE MASTER LOGS\",\n \"RELEASE SAVEPOINT\",\n \"RENAME TABLE\",\n \"RENAME USER\",\n \"REPAIR TABLE\",\n \"REPAIR VIEW\",\n \"RESET MASTER\",\n \"RESET QUERY CACHE\",\n \"RESET REPLICA\",\n \"RESET SLAVE\",\n \"RESIGNAL\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"SAVEPOINT\",\n \"SET CHARACTER SET\",\n \"SET DEFAULT ROLE\",\n \"SET GLOBAL TRANSACTION\",\n \"SET NAMES\",\n \"SET PASSWORD\",\n \"SET ROLE\",\n \"SET STATEMENT\",\n \"SET TRANSACTION\",\n \"SHOW\",\n \"SHOW ALL REPLICAS STATUS\",\n \"SHOW ALL SLAVES STATUS\",\n \"SHOW AUTHORS\",\n \"SHOW BINARY LOGS\",\n \"SHOW BINLOG EVENTS\",\n \"SHOW BINLOG STATUS\",\n \"SHOW CHARACTER SET\",\n \"SHOW CLIENT_STATISTICS\",\n \"SHOW COLLATION\",\n \"SHOW COLUMNS\",\n \"SHOW CONTRIBUTORS\",\n \"SHOW CREATE DATABASE\",\n \"SHOW CREATE EVENT\",\n \"SHOW CREATE FUNCTION\",\n \"SHOW CREATE PACKAGE\",\n \"SHOW CREATE PACKAGE BODY\",\n \"SHOW CREATE PROCEDURE\",\n \"SHOW CREATE SEQUENCE\",\n \"SHOW CREATE TABLE\",\n \"SHOW CREATE TRIGGER\",\n \"SHOW CREATE USER\",\n \"SHOW CREATE VIEW\",\n \"SHOW DATABASES\",\n \"SHOW ENGINE\",\n \"SHOW ENGINE INNODB STATUS\",\n \"SHOW ENGINES\",\n \"SHOW ERRORS\",\n \"SHOW EVENTS\",\n \"SHOW EXPLAIN\",\n \"SHOW FUNCTION CODE\",\n \"SHOW FUNCTION STATUS\",\n \"SHOW GRANTS\",\n \"SHOW INDEX\",\n \"SHOW INDEXES\",\n \"SHOW INDEX_STATISTICS\",\n \"SHOW KEYS\",\n \"SHOW LOCALES\",\n \"SHOW MASTER LOGS\",\n \"SHOW MASTER STATUS\",\n \"SHOW OPEN TABLES\",\n \"SHOW PACKAGE BODY CODE\",\n \"SHOW PACKAGE BODY STATUS\",\n \"SHOW PACKAGE STATUS\",\n \"SHOW PLUGINS\",\n \"SHOW PLUGINS SONAME\",\n \"SHOW PRIVILEGES\",\n \"SHOW PROCEDURE CODE\",\n \"SHOW PROCEDURE STATUS\",\n \"SHOW PROCESSLIST\",\n \"SHOW PROFILE\",\n \"SHOW PROFILES\",\n \"SHOW QUERY_RESPONSE_TIME\",\n \"SHOW RELAYLOG EVENTS\",\n \"SHOW REPLICA\",\n \"SHOW REPLICA HOSTS\",\n \"SHOW REPLICA STATUS\",\n \"SHOW SCHEMAS\",\n \"SHOW SLAVE\",\n \"SHOW SLAVE HOSTS\",\n \"SHOW SLAVE STATUS\",\n \"SHOW STATUS\",\n \"SHOW STORAGE ENGINES\",\n \"SHOW TABLE STATUS\",\n \"SHOW TABLES\",\n \"SHOW TRIGGERS\",\n \"SHOW USER_STATISTICS\",\n \"SHOW VARIABLES\",\n \"SHOW WARNINGS\",\n \"SHOW WSREP_MEMBERSHIP\",\n \"SHOW WSREP_STATUS\",\n \"SHUTDOWN\",\n \"SIGNAL\",\n \"START ALL REPLICAS\",\n \"START ALL SLAVES\",\n \"START REPLICA\",\n \"START SLAVE\",\n \"START TRANSACTION\",\n \"STOP ALL REPLICAS\",\n \"STOP ALL SLAVES\",\n \"STOP REPLICA\",\n \"STOP SLAVE\",\n \"UNINSTALL PLUGIN\",\n \"UNINSTALL SONAME\",\n \"UNLOCK TABLE\",\n \"USE\",\n \"XA BEGIN\",\n \"XA COMMIT\",\n \"XA END\",\n \"XA PREPARE\",\n \"XA RECOVER\",\n \"XA ROLLBACK\",\n \"XA START\"\n]);\nvar reservedSetOperations5 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT [ALL | DISTINCT]\",\n \"INTERSECT [ALL | DISTINCT]\",\n \"MINUS [ALL | DISTINCT]\"\n]);\nvar reservedJoins5 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL JOIN\",\n \"NATURAL {LEFT | RIGHT} [OUTER] JOIN\",\n // non-standard joins\n \"STRAIGHT_JOIN\"\n]);\nvar reservedPhrases5 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\",\n \"CHARACTER SET\",\n \"{ROWS | RANGE} BETWEEN\",\n \"IDENTIFIED BY\"\n]);\nvar mariadb = {\n name: \"mariadb\",\n tokenizerOptions: {\n reservedSelect: reservedSelect5,\n reservedClauses: [...reservedClauses5, ...standardOnelineClauses5, ...tabularOnelineClauses5],\n reservedSetOperations: reservedSetOperations5,\n reservedJoins: reservedJoins5,\n reservedPhrases: reservedPhrases5,\n supportsXor: true,\n reservedKeywords: keywords5,\n reservedDataTypes: dataTypes5,\n reservedFunctionNames: functions5,\n // TODO: support _ char set prefixes such as _utf8, _latin1, _binary, _utf8mb4, etc.\n stringTypes: [\n '\"\"-qq-bs',\n \"''-qq-bs\",\n { quote: \"''-raw\", prefixes: [\"B\", \"X\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n identChars: { first: \"$\", rest: \"$\", allowFirstCharNumber: true },\n variableTypes: [\n { regex: \"@@?[A-Za-z0-9_.$]+\" },\n { quote: '\"\"-qq-bs', prefixes: [\"@\"], requirePrefix: true },\n { quote: \"''-qq-bs\", prefixes: [\"@\"], requirePrefix: true },\n { quote: \"``\", prefixes: [\"@\"], requirePrefix: true }\n ],\n paramTypes: { positional: true },\n lineCommentTypes: [\"--\", \"#\"],\n operators: [\n \"%\",\n \":=\",\n \"&\",\n \"|\",\n \"^\",\n \"~\",\n \"<<\",\n \">>\",\n \"<=>\",\n \"&&\",\n \"||\",\n \"!\",\n \"*.*\"\n // Not actually an operator\n ],\n postProcess: postProcess2\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses5, ...tabularOnelineClauses5],\n tabularOnelineClauses: tabularOnelineClauses5\n }\n};\n\n// src/languages/mysql/mysql.keywords.ts\nvar keywords6 = [\n // https://dev.mysql.com/doc/refman/8.0/en/keywords.html\n \"ACCESSIBLE\",\n // (R)\n \"ADD\",\n // (R)\n \"ALL\",\n // (R)\n \"ALTER\",\n // (R)\n \"ANALYZE\",\n // (R)\n \"AND\",\n // (R)\n \"AS\",\n // (R)\n \"ASC\",\n // (R)\n \"ASENSITIVE\",\n // (R)\n \"BEFORE\",\n // (R)\n \"BETWEEN\",\n // (R)\n \"BOTH\",\n // (R)\n \"BY\",\n // (R)\n \"CALL\",\n // (R)\n \"CASCADE\",\n // (R)\n \"CASE\",\n // (R)\n \"CHANGE\",\n // (R)\n \"CHECK\",\n // (R)\n \"COLLATE\",\n // (R)\n \"COLUMN\",\n // (R)\n \"CONDITION\",\n // (R)\n \"CONSTRAINT\",\n // (R)\n \"CONTINUE\",\n // (R)\n \"CONVERT\",\n // (R)\n \"CREATE\",\n // (R)\n \"CROSS\",\n // (R)\n \"CUBE\",\n // (R)\n \"CUME_DIST\",\n // (R)\n \"CURRENT_DATE\",\n // (R)\n \"CURRENT_TIME\",\n // (R)\n \"CURRENT_TIMESTAMP\",\n // (R)\n \"CURRENT_USER\",\n // (R)\n \"CURSOR\",\n // (R)\n \"DATABASE\",\n // (R)\n \"DATABASES\",\n // (R)\n \"DAY_HOUR\",\n // (R)\n \"DAY_MICROSECOND\",\n // (R)\n \"DAY_MINUTE\",\n // (R)\n \"DAY_SECOND\",\n // (R)\n \"DECLARE\",\n // (R)\n \"DEFAULT\",\n // (R)\n \"DELAYED\",\n // (R)\n \"DELETE\",\n // (R)\n \"DENSE_RANK\",\n // (R)\n \"DESC\",\n // (R)\n \"DESCRIBE\",\n // (R)\n \"DETERMINISTIC\",\n // (R)\n \"DISTINCT\",\n // (R)\n \"DISTINCTROW\",\n // (R)\n \"DIV\",\n // (R)\n \"DROP\",\n // (R)\n \"DUAL\",\n // (R)\n \"EACH\",\n // (R)\n \"ELSE\",\n // (R)\n \"ELSEIF\",\n // (R)\n \"EMPTY\",\n // (R)\n \"ENCLOSED\",\n // (R)\n \"ESCAPED\",\n // (R)\n \"EXCEPT\",\n // (R)\n \"EXISTS\",\n // (R)\n \"EXIT\",\n // (R)\n \"EXPLAIN\",\n // (R)\n \"FALSE\",\n // (R)\n \"FETCH\",\n // (R)\n \"FIRST_VALUE\",\n // (R)\n \"FOR\",\n // (R)\n \"FORCE\",\n // (R)\n \"FOREIGN\",\n // (R)\n \"FROM\",\n // (R)\n \"FULLTEXT\",\n // (R)\n \"FUNCTION\",\n // (R)\n \"GENERATED\",\n // (R)\n \"GET\",\n // (R)\n \"GRANT\",\n // (R)\n \"GROUP\",\n // (R)\n \"GROUPING\",\n // (R)\n \"GROUPS\",\n // (R)\n \"HAVING\",\n // (R)\n \"HIGH_PRIORITY\",\n // (R)\n \"HOUR_MICROSECOND\",\n // (R)\n \"HOUR_MINUTE\",\n // (R)\n \"HOUR_SECOND\",\n // (R)\n \"IF\",\n // (R)\n \"IGNORE\",\n // (R)\n \"IN\",\n // (R)\n \"INDEX\",\n // (R)\n \"INFILE\",\n // (R)\n \"INNER\",\n // (R)\n \"INOUT\",\n // (R)\n \"INSENSITIVE\",\n // (R)\n \"INSERT\",\n // (R)\n \"IN\",\n // <-- moved over from functions\n \"INTERSECT\",\n // (R)\n \"INTERVAL\",\n // (R)\n \"INTO\",\n // (R)\n \"IO_AFTER_GTIDS\",\n // (R)\n \"IO_BEFORE_GTIDS\",\n // (R)\n \"IS\",\n // (R)\n \"ITERATE\",\n // (R)\n \"JOIN\",\n // (R)\n \"JSON_TABLE\",\n // (R)\n \"KEY\",\n // (R)\n \"KEYS\",\n // (R)\n \"KILL\",\n // (R)\n \"LAG\",\n // (R)\n \"LAST_VALUE\",\n // (R)\n \"LATERAL\",\n // (R)\n \"LEAD\",\n // (R)\n \"LEADING\",\n // (R)\n \"LEAVE\",\n // (R)\n \"LEFT\",\n // (R)\n \"LIKE\",\n // (R)\n \"LIMIT\",\n // (R)\n \"LINEAR\",\n // (R)\n \"LINES\",\n // (R)\n \"LOAD\",\n // (R)\n \"LOCALTIME\",\n // (R)\n \"LOCALTIMESTAMP\",\n // (R)\n \"LOCK\",\n // (R)\n \"LONG\",\n // (R)\n \"LOOP\",\n // (R)\n \"LOW_PRIORITY\",\n // (R)\n \"MASTER_BIND\",\n // (R)\n \"MASTER_SSL_VERIFY_SERVER_CERT\",\n // (R)\n \"MATCH\",\n // (R)\n \"MAXVALUE\",\n // (R)\n \"MINUTE_MICROSECOND\",\n // (R)\n \"MINUTE_SECOND\",\n // (R)\n \"MOD\",\n // (R)\n \"MODIFIES\",\n // (R)\n \"NATURAL\",\n // (R)\n \"NOT\",\n // (R)\n \"NO_WRITE_TO_BINLOG\",\n // (R)\n \"NTH_VALUE\",\n // (R)\n \"NTILE\",\n // (R)\n \"NULL\",\n // (R)\n \"OF\",\n // (R)\n \"ON\",\n // (R)\n \"OPTIMIZE\",\n // (R)\n \"OPTIMIZER_COSTS\",\n // (R)\n \"OPTION\",\n // (R)\n \"OPTIONALLY\",\n // (R)\n \"OR\",\n // (R)\n \"ORDER\",\n // (R)\n \"OUT\",\n // (R)\n \"OUTER\",\n // (R)\n \"OUTFILE\",\n // (R)\n \"OVER\",\n // (R)\n \"PARTITION\",\n // (R)\n \"PERCENT_RANK\",\n // (R)\n \"PRIMARY\",\n // (R)\n \"PROCEDURE\",\n // (R)\n \"PURGE\",\n // (R)\n \"RANGE\",\n // (R)\n \"RANK\",\n // (R)\n \"READ\",\n // (R)\n \"READS\",\n // (R)\n \"READ_WRITE\",\n // (R)\n \"RECURSIVE\",\n // (R)\n \"REFERENCES\",\n // (R)\n \"REGEXP\",\n // (R)\n \"RELEASE\",\n // (R)\n \"RENAME\",\n // (R)\n \"REPEAT\",\n // (R)\n \"REPLACE\",\n // (R)\n \"REQUIRE\",\n // (R)\n \"RESIGNAL\",\n // (R)\n \"RESTRICT\",\n // (R)\n \"RETURN\",\n // (R)\n \"REVOKE\",\n // (R)\n \"RIGHT\",\n // (R)\n \"RLIKE\",\n // (R)\n \"ROW\",\n // (R)\n \"ROWS\",\n // (R)\n \"ROW_NUMBER\",\n // (R)\n \"SCHEMA\",\n // (R)\n \"SCHEMAS\",\n // (R)\n \"SECOND_MICROSECOND\",\n // (R)\n \"SELECT\",\n // (R)\n \"SENSITIVE\",\n // (R)\n \"SEPARATOR\",\n // (R)\n \"SET\",\n // (R)\n \"SHOW\",\n // (R)\n \"SIGNAL\",\n // (R)\n \"SPATIAL\",\n // (R)\n \"SPECIFIC\",\n // (R)\n \"SQL\",\n // (R)\n \"SQLEXCEPTION\",\n // (R)\n \"SQLSTATE\",\n // (R)\n \"SQLWARNING\",\n // (R)\n \"SQL_BIG_RESULT\",\n // (R)\n \"SQL_CALC_FOUND_ROWS\",\n // (R)\n \"SQL_SMALL_RESULT\",\n // (R)\n \"SSL\",\n // (R)\n \"STARTING\",\n // (R)\n \"STORED\",\n // (R)\n \"STRAIGHT_JOIN\",\n // (R)\n \"SYSTEM\",\n // (R)\n \"TABLE\",\n // (R)\n \"TERMINATED\",\n // (R)\n \"THEN\",\n // (R)\n \"TO\",\n // (R)\n \"TRAILING\",\n // (R)\n \"TRIGGER\",\n // (R)\n \"TRUE\",\n // (R)\n \"UNDO\",\n // (R)\n \"UNION\",\n // (R)\n \"UNIQUE\",\n // (R)\n \"UNLOCK\",\n // (R)\n \"UNSIGNED\",\n // (R)\n \"UPDATE\",\n // (R)\n \"USAGE\",\n // (R)\n \"USE\",\n // (R)\n \"USING\",\n // (R)\n \"UTC_DATE\",\n // (R)\n \"UTC_TIME\",\n // (R)\n \"UTC_TIMESTAMP\",\n // (R)\n \"VALUES\",\n // (R)\n \"VIRTUAL\",\n // (R)\n \"WHEN\",\n // (R)\n \"WHERE\",\n // (R)\n \"WHILE\",\n // (R)\n \"WINDOW\",\n // (R)\n \"WITH\",\n // (R)\n \"WRITE\",\n // (R)\n \"XOR\",\n // (R)\n \"YEAR_MONTH\",\n // (R)\n \"ZEROFILL\"\n // (R)\n];\nvar dataTypes6 = [\n // https://dev.mysql.com/doc/refman/8.0/en/data-types.html\n \"BIGINT\",\n // (R)\n \"BINARY\",\n // (R)\n \"BIT\",\n \"BLOB\",\n // (R)\n \"BOOL\",\n // (R)\n \"BOOLEAN\",\n // (R)\n \"CHAR\",\n // (R)\n \"CHARACTER\",\n // (R)\n \"DATE\",\n // (R)\n \"DATETIME\",\n // (R)\n \"DEC\",\n // (R)\n \"DECIMAL\",\n // (R)\n \"DOUBLE PRECISION\",\n \"DOUBLE\",\n // (R)\n \"ENUM\",\n \"FIXED\",\n \"FLOAT\",\n // (R)\n \"FLOAT4\",\n // (R)\n \"FLOAT8\",\n // (R)\n \"INT\",\n // (R)\n \"INT1\",\n // (R)\n \"INT2\",\n // (R)\n \"INT3\",\n // (R)\n \"INT4\",\n // (R)\n \"INT8\",\n // (R)\n \"INTEGER\",\n // (R)\n \"LONGBLOB\",\n // (R)\n \"LONGTEXT\",\n // (R)\n \"MEDIUMBLOB\",\n // (R)\n \"MEDIUMINT\",\n // (R)\n \"MEDIUMTEXT\",\n // (R)\n \"MIDDLEINT\",\n // (R)\n \"NATIONAL CHAR\",\n // (R)\n \"NATIONAL VARCHAR\",\n // (R)\n \"NUMERIC\",\n // (R)\n \"PRECISION\",\n // (R)\n \"REAL\",\n // (R)\n \"SMALLINT\",\n // (R)\n \"TEXT\",\n \"TIME\",\n \"TIMESTAMP\",\n // (R)\n \"TINYBLOB\",\n // (R)\n \"TINYINT\",\n // (R)\n \"TINYTEXT\",\n // (R)\n \"VARBINARY\",\n // (R)\n \"VARCHAR\",\n // (R)\n \"VARCHARACTER\",\n // (R)\n \"VARYING\",\n // (R)\n \"YEAR\"\n // 'SET' // handled as special-case in postProcess\n];\n\n// src/languages/mysql/mysql.functions.ts\nvar functions6 = [\n // https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html\n \"ABS\",\n \"ACOS\",\n \"ADDDATE\",\n \"ADDTIME\",\n \"AES_DECRYPT\",\n \"AES_ENCRYPT\",\n // 'AND',\n \"ANY_VALUE\",\n \"ASCII\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"AVG\",\n \"BENCHMARK\",\n \"BIN\",\n \"BIN_TO_UUID\",\n \"BINARY\",\n \"BIT_AND\",\n \"BIT_COUNT\",\n \"BIT_LENGTH\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"CAN_ACCESS_COLUMN\",\n \"CAN_ACCESS_DATABASE\",\n \"CAN_ACCESS_TABLE\",\n \"CAN_ACCESS_USER\",\n \"CAN_ACCESS_VIEW\",\n \"CAST\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHARSET\",\n \"COALESCE\",\n \"COERCIBILITY\",\n \"COLLATION\",\n \"COMPRESS\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONNECTION_ID\",\n \"CONV\",\n \"CONVERT\",\n \"CONVERT_TZ\",\n \"COS\",\n \"COT\",\n \"COUNT\",\n \"CRC32\",\n \"CUME_DIST\",\n \"CURDATE\",\n \"CURRENT_DATE\",\n \"CURRENT_ROLE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURTIME\",\n \"DATABASE\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATE_FORMAT\",\n \"DATE_SUB\",\n \"DATEDIFF\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"DEFAULT\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DIV\",\n \"ELT\",\n \"EXP\",\n \"EXPORT_SET\",\n \"EXTRACT\",\n \"EXTRACTVALUE\",\n \"FIELD\",\n \"FIND_IN_SET\",\n \"FIRST_VALUE\",\n \"FLOOR\",\n \"FORMAT\",\n \"FORMAT_BYTES\",\n \"FORMAT_PICO_TIME\",\n \"FOUND_ROWS\",\n \"FROM_BASE64\",\n \"FROM_DAYS\",\n \"FROM_UNIXTIME\",\n \"GEOMCOLLECTION\",\n \"GEOMETRYCOLLECTION\",\n \"GET_DD_COLUMN_PRIVILEGES\",\n \"GET_DD_CREATE_OPTIONS\",\n \"GET_DD_INDEX_SUB_PART_LENGTH\",\n \"GET_FORMAT\",\n \"GET_LOCK\",\n \"GREATEST\",\n \"GROUP_CONCAT\",\n \"GROUPING\",\n \"GTID_SUBSET\",\n \"GTID_SUBTRACT\",\n \"HEX\",\n \"HOUR\",\n \"ICU_VERSION\",\n \"IF\",\n \"IFNULL\",\n // 'IN',\n \"INET_ATON\",\n \"INET_NTOA\",\n \"INET6_ATON\",\n \"INET6_NTOA\",\n \"INSERT\",\n \"INSTR\",\n \"INTERNAL_AUTO_INCREMENT\",\n \"INTERNAL_AVG_ROW_LENGTH\",\n \"INTERNAL_CHECK_TIME\",\n \"INTERNAL_CHECKSUM\",\n \"INTERNAL_DATA_FREE\",\n \"INTERNAL_DATA_LENGTH\",\n \"INTERNAL_DD_CHAR_LENGTH\",\n \"INTERNAL_GET_COMMENT_OR_ERROR\",\n \"INTERNAL_GET_ENABLED_ROLE_JSON\",\n \"INTERNAL_GET_HOSTNAME\",\n \"INTERNAL_GET_USERNAME\",\n \"INTERNAL_GET_VIEW_WARNING_OR_ERROR\",\n \"INTERNAL_INDEX_COLUMN_CARDINALITY\",\n \"INTERNAL_INDEX_LENGTH\",\n \"INTERNAL_IS_ENABLED_ROLE\",\n \"INTERNAL_IS_MANDATORY_ROLE\",\n \"INTERNAL_KEYS_DISABLED\",\n \"INTERNAL_MAX_DATA_LENGTH\",\n \"INTERNAL_TABLE_ROWS\",\n \"INTERNAL_UPDATE_TIME\",\n \"INTERVAL\",\n \"IS\",\n \"IS_FREE_LOCK\",\n \"IS_IPV4\",\n \"IS_IPV4_COMPAT\",\n \"IS_IPV4_MAPPED\",\n \"IS_IPV6\",\n \"IS NOT\",\n \"IS NOT NULL\",\n \"IS NULL\",\n \"IS_USED_LOCK\",\n \"IS_UUID\",\n \"ISNULL\",\n \"JSON_ARRAY\",\n \"JSON_ARRAY_APPEND\",\n \"JSON_ARRAY_INSERT\",\n \"JSON_ARRAYAGG\",\n \"JSON_CONTAINS\",\n \"JSON_CONTAINS_PATH\",\n \"JSON_DEPTH\",\n \"JSON_EXTRACT\",\n \"JSON_INSERT\",\n \"JSON_KEYS\",\n \"JSON_LENGTH\",\n \"JSON_MERGE\",\n \"JSON_MERGE_PATCH\",\n \"JSON_MERGE_PRESERVE\",\n \"JSON_OBJECT\",\n \"JSON_OBJECTAGG\",\n \"JSON_OVERLAPS\",\n \"JSON_PRETTY\",\n \"JSON_QUOTE\",\n \"JSON_REMOVE\",\n \"JSON_REPLACE\",\n \"JSON_SCHEMA_VALID\",\n \"JSON_SCHEMA_VALIDATION_REPORT\",\n \"JSON_SEARCH\",\n \"JSON_SET\",\n \"JSON_STORAGE_FREE\",\n \"JSON_STORAGE_SIZE\",\n \"JSON_TABLE\",\n \"JSON_TYPE\",\n \"JSON_UNQUOTE\",\n \"JSON_VALID\",\n \"JSON_VALUE\",\n \"LAG\",\n \"LAST_DAY\",\n \"LAST_INSERT_ID\",\n \"LAST_VALUE\",\n \"LCASE\",\n \"LEAD\",\n \"LEAST\",\n \"LEFT\",\n \"LENGTH\",\n \"LIKE\",\n \"LINESTRING\",\n \"LN\",\n \"LOAD_FILE\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCATE\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MAKE_SET\",\n \"MAKEDATE\",\n \"MAKETIME\",\n \"MASTER_POS_WAIT\",\n \"MATCH\",\n \"MAX\",\n \"MBRCONTAINS\",\n \"MBRCOVEREDBY\",\n \"MBRCOVERS\",\n \"MBRDISJOINT\",\n \"MBREQUALS\",\n \"MBRINTERSECTS\",\n \"MBROVERLAPS\",\n \"MBRTOUCHES\",\n \"MBRWITHIN\",\n \"MD5\",\n \"MEMBER OF\",\n \"MICROSECOND\",\n \"MID\",\n \"MIN\",\n \"MINUTE\",\n \"MOD\",\n \"MONTH\",\n \"MONTHNAME\",\n \"MULTILINESTRING\",\n \"MULTIPOINT\",\n \"MULTIPOLYGON\",\n \"NAME_CONST\",\n \"NOT\",\n \"NOT IN\",\n \"NOT LIKE\",\n \"NOT REGEXP\",\n \"NOW\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLIF\",\n \"OCT\",\n \"OCTET_LENGTH\",\n // 'OR',\n \"ORD\",\n \"PERCENT_RANK\",\n \"PERIOD_ADD\",\n \"PERIOD_DIFF\",\n \"PI\",\n \"POINT\",\n \"POLYGON\",\n \"POSITION\",\n \"POW\",\n \"POWER\",\n \"PS_CURRENT_THREAD_ID\",\n \"PS_THREAD_ID\",\n \"QUARTER\",\n \"QUOTE\",\n \"RADIANS\",\n \"RAND\",\n \"RANDOM_BYTES\",\n \"RANK\",\n \"REGEXP\",\n \"REGEXP_INSTR\",\n \"REGEXP_LIKE\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"RELEASE_ALL_LOCKS\",\n \"RELEASE_LOCK\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROLES_GRAPHML\",\n \"ROUND\",\n \"ROW_COUNT\",\n \"ROW_NUMBER\",\n \"RPAD\",\n \"RTRIM\",\n \"SCHEMA\",\n \"SEC_TO_TIME\",\n \"SECOND\",\n \"SESSION_USER\",\n \"SHA1\",\n \"SHA2\",\n \"SIGN\",\n \"SIN\",\n \"SLEEP\",\n \"SOUNDEX\",\n \"SOUNDS LIKE\",\n \"SOURCE_POS_WAIT\",\n \"SPACE\",\n \"SQRT\",\n \"ST_AREA\",\n \"ST_ASBINARY\",\n \"ST_ASGEOJSON\",\n \"ST_ASTEXT\",\n \"ST_BUFFER\",\n \"ST_BUFFER_STRATEGY\",\n \"ST_CENTROID\",\n \"ST_COLLECT\",\n \"ST_CONTAINS\",\n \"ST_CONVEXHULL\",\n \"ST_CROSSES\",\n \"ST_DIFFERENCE\",\n \"ST_DIMENSION\",\n \"ST_DISJOINT\",\n \"ST_DISTANCE\",\n \"ST_DISTANCE_SPHERE\",\n \"ST_ENDPOINT\",\n \"ST_ENVELOPE\",\n \"ST_EQUALS\",\n \"ST_EXTERIORRING\",\n \"ST_FRECHETDISTANCE\",\n \"ST_GEOHASH\",\n \"ST_GEOMCOLLFROMTEXT\",\n \"ST_GEOMCOLLFROMWKB\",\n \"ST_GEOMETRYN\",\n \"ST_GEOMETRYTYPE\",\n \"ST_GEOMFROMGEOJSON\",\n \"ST_GEOMFROMTEXT\",\n \"ST_GEOMFROMWKB\",\n \"ST_HAUSDORFFDISTANCE\",\n \"ST_INTERIORRINGN\",\n \"ST_INTERSECTION\",\n \"ST_INTERSECTS\",\n \"ST_ISCLOSED\",\n \"ST_ISEMPTY\",\n \"ST_ISSIMPLE\",\n \"ST_ISVALID\",\n \"ST_LATFROMGEOHASH\",\n \"ST_LATITUDE\",\n \"ST_LENGTH\",\n \"ST_LINEFROMTEXT\",\n \"ST_LINEFROMWKB\",\n \"ST_LINEINTERPOLATEPOINT\",\n \"ST_LINEINTERPOLATEPOINTS\",\n \"ST_LONGFROMGEOHASH\",\n \"ST_LONGITUDE\",\n \"ST_MAKEENVELOPE\",\n \"ST_MLINEFROMTEXT\",\n \"ST_MLINEFROMWKB\",\n \"ST_MPOINTFROMTEXT\",\n \"ST_MPOINTFROMWKB\",\n \"ST_MPOLYFROMTEXT\",\n \"ST_MPOLYFROMWKB\",\n \"ST_NUMGEOMETRIES\",\n \"ST_NUMINTERIORRING\",\n \"ST_NUMPOINTS\",\n \"ST_OVERLAPS\",\n \"ST_POINTATDISTANCE\",\n \"ST_POINTFROMGEOHASH\",\n \"ST_POINTFROMTEXT\",\n \"ST_POINTFROMWKB\",\n \"ST_POINTN\",\n \"ST_POLYFROMTEXT\",\n \"ST_POLYFROMWKB\",\n \"ST_SIMPLIFY\",\n \"ST_SRID\",\n \"ST_STARTPOINT\",\n \"ST_SWAPXY\",\n \"ST_SYMDIFFERENCE\",\n \"ST_TOUCHES\",\n \"ST_TRANSFORM\",\n \"ST_UNION\",\n \"ST_VALIDATE\",\n \"ST_WITHIN\",\n \"ST_X\",\n \"ST_Y\",\n \"STATEMENT_DIGEST\",\n \"STATEMENT_DIGEST_TEXT\",\n \"STD\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STR_TO_DATE\",\n \"STRCMP\",\n \"SUBDATE\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUBSTRING_INDEX\",\n \"SUBTIME\",\n \"SUM\",\n \"SYSDATE\",\n \"SYSTEM_USER\",\n \"TAN\",\n \"TIME\",\n \"TIME_FORMAT\",\n \"TIME_TO_SEC\",\n \"TIMEDIFF\",\n \"TIMESTAMP\",\n \"TIMESTAMPADD\",\n \"TIMESTAMPDIFF\",\n \"TO_BASE64\",\n \"TO_DAYS\",\n \"TO_SECONDS\",\n \"TRIM\",\n \"TRUNCATE\",\n \"UCASE\",\n \"UNCOMPRESS\",\n \"UNCOMPRESSED_LENGTH\",\n \"UNHEX\",\n \"UNIX_TIMESTAMP\",\n \"UPDATEXML\",\n \"UPPER\",\n // 'USER',\n \"UTC_DATE\",\n \"UTC_TIME\",\n \"UTC_TIMESTAMP\",\n \"UUID\",\n \"UUID_SHORT\",\n \"UUID_TO_BIN\",\n \"VALIDATE_PASSWORD_STRENGTH\",\n \"VALUES\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n \"VERSION\",\n \"WAIT_FOR_EXECUTED_GTID_SET\",\n \"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS\",\n \"WEEK\",\n \"WEEKDAY\",\n \"WEEKOFYEAR\",\n \"WEIGHT_STRING\",\n // 'XOR',\n \"YEAR\",\n \"YEARWEEK\"\n];\n\n// src/languages/mysql/mysql.formatter.ts\nvar reservedSelect6 = expandPhrases([\"SELECT [ALL | DISTINCT | DISTINCTROW]\"]);\nvar reservedClauses6 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]\",\n \"REPLACE [LOW_PRIORITY | DELAYED] [INTO]\",\n \"VALUES\",\n \"ON DUPLICATE KEY UPDATE\",\n // - update:\n \"SET\"\n]);\nvar standardOnelineClauses6 = expandPhrases([\"CREATE [TEMPORARY] TABLE [IF NOT EXISTS]\"]);\nvar tabularOnelineClauses6 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE [LOW_PRIORITY] [IGNORE]\",\n // - delete:\n \"DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM\",\n // - drop table:\n \"DROP [TEMPORARY] TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD [COLUMN]\",\n \"{CHANGE | MODIFY} [COLUMN]\",\n \"DROP [COLUMN]\",\n \"RENAME [TO | AS]\",\n \"RENAME COLUMN\",\n \"ALTER [COLUMN]\",\n \"{SET | DROP} DEFAULT\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // https://dev.mysql.com/doc/refman/8.0/en/sql-statements.html\n \"ALTER DATABASE\",\n \"ALTER EVENT\",\n \"ALTER FUNCTION\",\n \"ALTER INSTANCE\",\n \"ALTER LOGFILE GROUP\",\n \"ALTER PROCEDURE\",\n \"ALTER RESOURCE GROUP\",\n \"ALTER SERVER\",\n \"ALTER TABLESPACE\",\n \"ALTER USER\",\n \"ALTER VIEW\",\n \"ANALYZE TABLE\",\n \"BINLOG\",\n \"CACHE INDEX\",\n \"CALL\",\n \"CHANGE MASTER TO\",\n \"CHANGE REPLICATION FILTER\",\n \"CHANGE REPLICATION SOURCE TO\",\n \"CHECK TABLE\",\n \"CHECKSUM TABLE\",\n \"CLONE\",\n \"COMMIT\",\n \"CREATE DATABASE\",\n \"CREATE EVENT\",\n \"CREATE FUNCTION\",\n \"CREATE FUNCTION\",\n \"CREATE INDEX\",\n \"CREATE LOGFILE GROUP\",\n \"CREATE PROCEDURE\",\n \"CREATE RESOURCE GROUP\",\n \"CREATE ROLE\",\n \"CREATE SERVER\",\n \"CREATE SPATIAL REFERENCE SYSTEM\",\n \"CREATE TABLESPACE\",\n \"CREATE TRIGGER\",\n \"CREATE USER\",\n \"DEALLOCATE PREPARE\",\n \"DESCRIBE\",\n \"DROP DATABASE\",\n \"DROP EVENT\",\n \"DROP FUNCTION\",\n \"DROP FUNCTION\",\n \"DROP INDEX\",\n \"DROP LOGFILE GROUP\",\n \"DROP PROCEDURE\",\n \"DROP RESOURCE GROUP\",\n \"DROP ROLE\",\n \"DROP SERVER\",\n \"DROP SPATIAL REFERENCE SYSTEM\",\n \"DROP TABLESPACE\",\n \"DROP TRIGGER\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"EXECUTE\",\n \"EXPLAIN\",\n \"FLUSH\",\n \"GRANT\",\n \"HANDLER\",\n \"HELP\",\n \"IMPORT TABLE\",\n \"INSTALL COMPONENT\",\n \"INSTALL PLUGIN\",\n \"KILL\",\n \"LOAD DATA\",\n \"LOAD INDEX INTO CACHE\",\n \"LOAD XML\",\n \"LOCK INSTANCE FOR BACKUP\",\n \"LOCK TABLES\",\n \"MASTER_POS_WAIT\",\n \"OPTIMIZE TABLE\",\n \"PREPARE\",\n \"PURGE BINARY LOGS\",\n \"RELEASE SAVEPOINT\",\n \"RENAME TABLE\",\n \"RENAME USER\",\n \"REPAIR TABLE\",\n \"RESET\",\n \"RESET MASTER\",\n \"RESET PERSIST\",\n \"RESET REPLICA\",\n \"RESET SLAVE\",\n \"RESTART\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"ROLLBACK TO SAVEPOINT\",\n \"SAVEPOINT\",\n \"SET CHARACTER SET\",\n \"SET DEFAULT ROLE\",\n \"SET NAMES\",\n \"SET PASSWORD\",\n \"SET RESOURCE GROUP\",\n \"SET ROLE\",\n \"SET TRANSACTION\",\n \"SHOW\",\n \"SHOW BINARY LOGS\",\n \"SHOW BINLOG EVENTS\",\n \"SHOW CHARACTER SET\",\n \"SHOW COLLATION\",\n \"SHOW COLUMNS\",\n \"SHOW CREATE DATABASE\",\n \"SHOW CREATE EVENT\",\n \"SHOW CREATE FUNCTION\",\n \"SHOW CREATE PROCEDURE\",\n \"SHOW CREATE TABLE\",\n \"SHOW CREATE TRIGGER\",\n \"SHOW CREATE USER\",\n \"SHOW CREATE VIEW\",\n \"SHOW DATABASES\",\n \"SHOW ENGINE\",\n \"SHOW ENGINES\",\n \"SHOW ERRORS\",\n \"SHOW EVENTS\",\n \"SHOW FUNCTION CODE\",\n \"SHOW FUNCTION STATUS\",\n \"SHOW GRANTS\",\n \"SHOW INDEX\",\n \"SHOW MASTER STATUS\",\n \"SHOW OPEN TABLES\",\n \"SHOW PLUGINS\",\n \"SHOW PRIVILEGES\",\n \"SHOW PROCEDURE CODE\",\n \"SHOW PROCEDURE STATUS\",\n \"SHOW PROCESSLIST\",\n \"SHOW PROFILE\",\n \"SHOW PROFILES\",\n \"SHOW RELAYLOG EVENTS\",\n \"SHOW REPLICA STATUS\",\n \"SHOW REPLICAS\",\n \"SHOW SLAVE\",\n \"SHOW SLAVE HOSTS\",\n \"SHOW STATUS\",\n \"SHOW TABLE STATUS\",\n \"SHOW TABLES\",\n \"SHOW TRIGGERS\",\n \"SHOW VARIABLES\",\n \"SHOW WARNINGS\",\n \"SHUTDOWN\",\n \"SOURCE_POS_WAIT\",\n \"START GROUP_REPLICATION\",\n \"START REPLICA\",\n \"START SLAVE\",\n \"START TRANSACTION\",\n \"STOP GROUP_REPLICATION\",\n \"STOP REPLICA\",\n \"STOP SLAVE\",\n \"TABLE\",\n \"UNINSTALL COMPONENT\",\n \"UNINSTALL PLUGIN\",\n \"UNLOCK INSTANCE\",\n \"UNLOCK TABLES\",\n \"USE\",\n \"XA\",\n // flow control\n // 'IF',\n \"ITERATE\",\n \"LEAVE\",\n \"LOOP\",\n \"REPEAT\",\n \"RETURN\",\n \"WHILE\"\n]);\nvar reservedSetOperations6 = expandPhrases([\"UNION [ALL | DISTINCT]\"]);\nvar reservedJoins6 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT} [OUTER] JOIN\",\n // non-standard joins\n \"STRAIGHT_JOIN\"\n]);\nvar reservedPhrases6 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL]\",\n \"CHARACTER SET\",\n \"{ROWS | RANGE} BETWEEN\",\n \"IDENTIFIED BY\"\n]);\nvar mysql = {\n name: \"mysql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect6,\n reservedClauses: [...reservedClauses6, ...standardOnelineClauses6, ...tabularOnelineClauses6],\n reservedSetOperations: reservedSetOperations6,\n reservedJoins: reservedJoins6,\n reservedPhrases: reservedPhrases6,\n supportsXor: true,\n reservedKeywords: keywords6,\n reservedDataTypes: dataTypes6,\n reservedFunctionNames: functions6,\n // TODO: support _ char set prefixes such as _utf8, _latin1, _binary, _utf8mb4, etc.\n stringTypes: [\n '\"\"-qq-bs',\n { quote: \"''-qq-bs\", prefixes: [\"N\"] },\n { quote: \"''-raw\", prefixes: [\"B\", \"X\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n identChars: { first: \"$\", rest: \"$\", allowFirstCharNumber: true },\n variableTypes: [\n { regex: \"@@?[A-Za-z0-9_.$]+\" },\n { quote: '\"\"-qq-bs', prefixes: [\"@\"], requirePrefix: true },\n { quote: \"''-qq-bs\", prefixes: [\"@\"], requirePrefix: true },\n { quote: \"``\", prefixes: [\"@\"], requirePrefix: true }\n ],\n paramTypes: { positional: true },\n lineCommentTypes: [\"--\", \"#\"],\n operators: [\n \"%\",\n \":=\",\n \"&\",\n \"|\",\n \"^\",\n \"~\",\n \"<<\",\n \">>\",\n \"<=>\",\n \"->\",\n \"->>\",\n \"&&\",\n \"||\",\n \"!\",\n \"*.*\"\n // Not actually an operator\n ],\n postProcess: postProcess2\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses6, ...tabularOnelineClauses6],\n tabularOnelineClauses: tabularOnelineClauses6\n }\n};\n\n// src/languages/tidb/tidb.keywords.ts\nvar keywords7 = [\n // https://docs.pingcap.com/tidb/stable/keywords\n \"ADD\",\n // (R)\n \"ALL\",\n // (R)\n \"ALTER\",\n // (R)\n \"ANALYZE\",\n // (R)\n \"AND\",\n // (R)\n \"ARRAY\",\n // (R)\n \"AS\",\n // (R)\n \"ASC\",\n // (R)\n \"BETWEEN\",\n // (R)\n \"BOTH\",\n // (R)\n \"BY\",\n // (R)\n \"CALL\",\n // (R)\n \"CASCADE\",\n // (R)\n \"CASE\",\n // (R)\n \"CHANGE\",\n // (R)\n \"CHECK\",\n // (R)\n \"COLLATE\",\n // (R)\n \"COLUMN\",\n // (R)\n \"CONSTRAINT\",\n // (R)\n \"CONTINUE\",\n // (R)\n \"CONVERT\",\n // (R)\n \"CREATE\",\n // (R)\n \"CROSS\",\n // (R)\n \"CURRENT_DATE\",\n // (R)\n \"CURRENT_ROLE\",\n // (R)\n \"CURRENT_TIME\",\n // (R)\n \"CURRENT_TIMESTAMP\",\n // (R)\n \"CURRENT_USER\",\n // (R)\n \"CURSOR\",\n // (R)\n \"DATABASE\",\n // (R)\n \"DATABASES\",\n // (R)\n \"DAY_HOUR\",\n // (R)\n \"DAY_MICROSECOND\",\n // (R)\n \"DAY_MINUTE\",\n // (R)\n \"DAY_SECOND\",\n // (R)\n \"DEFAULT\",\n // (R)\n \"DELAYED\",\n // (R)\n \"DELETE\",\n // (R)\n \"DESC\",\n // (R)\n \"DESCRIBE\",\n // (R)\n \"DISTINCT\",\n // (R)\n \"DISTINCTROW\",\n // (R)\n \"DIV\",\n // (R)\n \"DOUBLE\",\n // (R)\n \"DROP\",\n // (R)\n \"DUAL\",\n // (R)\n \"ELSE\",\n // (R)\n \"ELSEIF\",\n // (R)\n \"ENCLOSED\",\n // (R)\n \"ESCAPED\",\n // (R)\n \"EXCEPT\",\n // (R)\n \"EXISTS\",\n // (R)\n \"EXIT\",\n // (R)\n \"EXPLAIN\",\n // (R)\n \"FALSE\",\n // (R)\n \"FETCH\",\n // (R)\n \"FOR\",\n // (R)\n \"FORCE\",\n // (R)\n \"FOREIGN\",\n // (R)\n \"FROM\",\n // (R)\n \"FULLTEXT\",\n // (R)\n \"GENERATED\",\n // (R)\n \"GRANT\",\n // (R)\n \"GROUP\",\n // (R)\n \"GROUPS\",\n // (R)\n \"HAVING\",\n // (R)\n \"HIGH_PRIORITY\",\n // (R)\n \"HOUR_MICROSECOND\",\n // (R)\n \"HOUR_MINUTE\",\n // (R)\n \"HOUR_SECOND\",\n // (R)\n \"IF\",\n // (R)\n \"IGNORE\",\n // (R)\n \"ILIKE\",\n // (R)\n \"IN\",\n // (R)\n \"INDEX\",\n // (R)\n \"INFILE\",\n // (R)\n \"INNER\",\n // (R)\n \"INOUT\",\n // (R)\n \"INSERT\",\n // (R)\n \"INTERSECT\",\n // (R)\n \"INTERVAL\",\n // (R)\n \"INTO\",\n // (R)\n \"IS\",\n // (R)\n \"ITERATE\",\n // (R)\n \"JOIN\",\n // (R)\n \"KEY\",\n // (R)\n \"KEYS\",\n // (R)\n \"KILL\",\n // (R)\n \"LEADING\",\n // (R)\n \"LEAVE\",\n // (R)\n \"LEFT\",\n // (R)\n \"LIKE\",\n // (R)\n \"LIMIT\",\n // (R)\n \"LINEAR\",\n // (R)\n \"LINES\",\n // (R)\n \"LOAD\",\n // (R)\n \"LOCALTIME\",\n // (R)\n \"LOCALTIMESTAMP\",\n // (R)\n \"LOCK\",\n // (R)\n \"LONG\",\n // (R)\n \"LOW_PRIORITY\",\n // (R)\n \"MATCH\",\n // (R)\n \"MAXVALUE\",\n // (R)\n \"MINUTE_MICROSECOND\",\n // (R)\n \"MINUTE_SECOND\",\n // (R)\n \"MOD\",\n // (R)\n \"NATURAL\",\n // (R)\n \"NOT\",\n // (R)\n \"NO_WRITE_TO_BINLOG\",\n // (R)\n \"NULL\",\n // (R)\n \"OF\",\n // (R)\n \"ON\",\n // (R)\n \"OPTIMIZE\",\n // (R)\n \"OPTION\",\n // (R)\n \"OPTIONALLY\",\n // (R)\n \"OR\",\n // (R)\n \"ORDER\",\n // (R)\n \"OUT\",\n // (R)\n \"OUTER\",\n // (R)\n \"OUTFILE\",\n // (R)\n \"OVER\",\n // (R)\n \"PARTITION\",\n // (R)\n \"PRIMARY\",\n // (R)\n \"PROCEDURE\",\n // (R)\n \"RANGE\",\n // (R)\n \"READ\",\n // (R)\n \"RECURSIVE\",\n // (R)\n \"REFERENCES\",\n // (R)\n \"REGEXP\",\n // (R)\n \"RELEASE\",\n // (R)\n \"RENAME\",\n // (R)\n \"REPEAT\",\n // (R)\n \"REPLACE\",\n // (R)\n \"REQUIRE\",\n // (R)\n \"RESTRICT\",\n // (R)\n \"REVOKE\",\n // (R)\n \"RIGHT\",\n // (R)\n \"RLIKE\",\n // (R)\n \"ROW\",\n // (R)\n \"ROWS\",\n // (R)\n \"SECOND_MICROSECOND\",\n // (R)\n \"SELECT\",\n // (R)\n \"SET\",\n // (R)\n \"SHOW\",\n // (R)\n \"SPATIAL\",\n // (R)\n \"SQL\",\n // (R)\n \"SQLEXCEPTION\",\n // (R)\n \"SQLSTATE\",\n // (R)\n \"SQLWARNING\",\n // (R)\n \"SQL_BIG_RESULT\",\n // (R)\n \"SQL_CALC_FOUND_ROWS\",\n // (R)\n \"SQL_SMALL_RESULT\",\n // (R)\n \"SSL\",\n // (R)\n \"STARTING\",\n // (R)\n \"STATS_EXTENDED\",\n // (R)\n \"STORED\",\n // (R)\n \"STRAIGHT_JOIN\",\n // (R)\n \"TABLE\",\n // (R)\n \"TABLESAMPLE\",\n // (R)\n \"TERMINATED\",\n // (R)\n \"THEN\",\n // (R)\n \"TO\",\n // (R)\n \"TRAILING\",\n // (R)\n \"TRIGGER\",\n // (R)\n \"TRUE\",\n // (R)\n \"TiDB_CURRENT_TSO\",\n // (R)\n \"UNION\",\n // (R)\n \"UNIQUE\",\n // (R)\n \"UNLOCK\",\n // (R)\n \"UNSIGNED\",\n // (R)\n \"UNTIL\",\n // (R)\n \"UPDATE\",\n // (R)\n \"USAGE\",\n // (R)\n \"USE\",\n // (R)\n \"USING\",\n // (R)\n \"UTC_DATE\",\n // (R)\n \"UTC_TIME\",\n // (R)\n \"UTC_TIMESTAMP\",\n // (R)\n \"VALUES\",\n // (R)\n \"VIRTUAL\",\n // (R)\n \"WHEN\",\n // (R)\n \"WHERE\",\n // (R)\n \"WHILE\",\n // (R)\n \"WINDOW\",\n // (R)\n \"WITH\",\n // (R)\n \"WRITE\",\n // (R)\n \"XOR\",\n // (R)\n \"YEAR_MONTH\",\n // (R)\n \"ZEROFILL\"\n // (R)\n];\nvar dataTypes7 = [\n // https://docs.pingcap.com/tidb/stable/data-type-overview\n \"BIGINT\",\n // (R)\n \"BINARY\",\n // (R)\n \"BIT\",\n \"BLOB\",\n // (R)\n \"BOOL\",\n // (R)\n \"BOOLEAN\",\n // (R)\n \"CHAR\",\n // (R)\n \"CHARACTER\",\n // (R)\n \"DATE\",\n // (R)\n \"DATETIME\",\n // (R)\n \"DEC\",\n // (R)\n \"DECIMAL\",\n // (R)\n \"DOUBLE PRECISION\",\n \"DOUBLE\",\n // (R)\n \"ENUM\",\n \"FIXED\",\n \"INT\",\n // (R)\n \"INT1\",\n // (R)\n \"INT2\",\n // (R)\n \"INT3\",\n // (R)\n \"INT4\",\n // (R)\n \"INT8\",\n // (R)\n \"INTEGER\",\n // (R)\n \"LONGBLOB\",\n // (R)\n \"LONGTEXT\",\n // (R)\n \"MEDIUMBLOB\",\n // (R)\n \"MEDIUMINT\",\n // (R)\n \"MIDDLEINT\",\n // (R)\n \"NATIONAL CHAR\",\n // (R)\n \"NATIONAL VARCHAR\",\n // (R)\n \"NUMERIC\",\n // (R)\n \"PRECISION\",\n // (R)\n \"SMALLINT\",\n // (R)\n \"TEXT\",\n \"TIME\",\n \"TIMESTAMP\",\n // (R)\n \"TINYBLOB\",\n // (R)\n \"TINYINT\",\n // (R)\n \"TINYTEXT\",\n // (R)\n \"VARBINARY\",\n // (R)\n \"VARCHAR\",\n // (R)\n \"VARCHARACTER\",\n // (R)\n \"VARYING\",\n // (R)\n \"YEAR\"\n // 'SET' // handled as special-case in postProcess\n];\n\n// src/languages/tidb/tidb.functions.ts\nvar functions7 = [\n // https://docs.pingcap.com/tidb/stable/sql-statement-show-builtins\n // https://docs.pingcap.com/tidb/stable/functions-and-operators-overview\n // + MySQL aggregate functions: https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html\n // + MySQL window functions: https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html\n \"ABS\",\n \"ACOS\",\n \"ADDDATE\",\n \"ADDTIME\",\n \"AES_DECRYPT\",\n \"AES_ENCRYPT\",\n // 'AND',\n \"ANY_VALUE\",\n \"ASCII\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"AVG\",\n \"BENCHMARK\",\n \"BIN\",\n \"BIN_TO_UUID\",\n \"BIT_AND\",\n \"BIT_COUNT\",\n \"BIT_LENGTH\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"BITAND\",\n \"BITNEG\",\n \"BITOR\",\n \"BITXOR\",\n \"CASE\",\n \"CAST\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR_FUNC\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHARSET\",\n \"COALESCE\",\n \"COERCIBILITY\",\n \"COLLATION\",\n \"COMPRESS\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONNECTION_ID\",\n \"CONV\",\n \"CONVERT\",\n \"CONVERT_TZ\",\n \"COS\",\n \"COT\",\n \"COUNT\",\n \"CRC32\",\n \"CUME_DIST\",\n \"CURDATE\",\n \"CURRENT_DATE\",\n \"CURRENT_RESOURCE_GROUP\",\n \"CURRENT_ROLE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURTIME\",\n \"DATABASE\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATE_FORMAT\",\n \"DATE_SUB\",\n \"DATEDIFF\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"DECODE\",\n \"DEFAULT_FUNC\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DES_DECRYPT\",\n \"DES_ENCRYPT\",\n \"DIV\",\n \"ELT\",\n \"ENCODE\",\n \"ENCRYPT\",\n \"EQ\",\n \"EXP\",\n \"EXPORT_SET\",\n \"EXTRACT\",\n \"FIELD\",\n \"FIND_IN_SET\",\n \"FIRST_VALUE\",\n \"FLOOR\",\n \"FORMAT\",\n \"FORMAT_BYTES\",\n \"FORMAT_NANO_TIME\",\n \"FOUND_ROWS\",\n \"FROM_BASE64\",\n \"FROM_DAYS\",\n \"FROM_UNIXTIME\",\n \"GE\",\n \"GET_FORMAT\",\n \"GET_LOCK\",\n \"GETPARAM\",\n \"GREATEST\",\n \"GROUP_CONCAT\",\n \"GROUPING\",\n \"GT\",\n \"HEX\",\n \"HOUR\",\n \"IF\",\n \"IFNULL\",\n \"ILIKE\",\n // 'IN',\n \"INET6_ATON\",\n \"INET6_NTOA\",\n \"INET_ATON\",\n \"INET_NTOA\",\n \"INSERT_FUNC\",\n \"INSTR\",\n \"INTDIV\",\n \"INTERVAL\",\n \"IS_FREE_LOCK\",\n \"IS_IPV4\",\n \"IS_IPV4_COMPAT\",\n \"IS_IPV4_MAPPED\",\n \"IS_IPV6\",\n \"IS_USED_LOCK\",\n \"IS_UUID\",\n \"ISFALSE\",\n \"ISNULL\",\n \"ISTRUE\",\n \"JSON_ARRAY\",\n \"JSON_ARRAYAGG\",\n \"JSON_ARRAY_APPEND\",\n \"JSON_ARRAY_INSERT\",\n \"JSON_CONTAINS\",\n \"JSON_CONTAINS_PATH\",\n \"JSON_DEPTH\",\n \"JSON_EXTRACT\",\n \"JSON_INSERT\",\n \"JSON_KEYS\",\n \"JSON_LENGTH\",\n \"JSON_MEMBEROF\",\n \"JSON_MERGE\",\n \"JSON_MERGE_PATCH\",\n \"JSON_MERGE_PRESERVE\",\n \"JSON_OBJECT\",\n \"JSON_OBJECTAGG\",\n \"JSON_OVERLAPS\",\n \"JSON_PRETTY\",\n \"JSON_QUOTE\",\n \"JSON_REMOVE\",\n \"JSON_REPLACE\",\n \"JSON_SEARCH\",\n \"JSON_SET\",\n \"JSON_STORAGE_FREE\",\n \"JSON_STORAGE_SIZE\",\n \"JSON_TYPE\",\n \"JSON_UNQUOTE\",\n \"JSON_VALID\",\n \"LAG\",\n \"LAST_DAY\",\n \"LAST_INSERT_ID\",\n \"LAST_VALUE\",\n \"LASTVAL\",\n \"LCASE\",\n \"LE\",\n \"LEAD\",\n \"LEAST\",\n \"LEFT\",\n \"LEFTSHIFT\",\n \"LENGTH\",\n \"LIKE\",\n \"LN\",\n \"LOAD_FILE\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCATE\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"LOWER\",\n \"LPAD\",\n \"LT\",\n \"LTRIM\",\n \"MAKE_SET\",\n \"MAKEDATE\",\n \"MAKETIME\",\n \"MASTER_POS_WAIT\",\n \"MAX\",\n \"MD5\",\n \"MICROSECOND\",\n \"MID\",\n \"MIN\",\n \"MINUS\",\n \"MINUTE\",\n \"MOD\",\n \"MONTH\",\n \"MONTHNAME\",\n \"MUL\",\n \"NAME_CONST\",\n \"NE\",\n \"NEXTVAL\",\n \"NOT\",\n \"NOW\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLEQ\",\n \"OCT\",\n \"OCTET_LENGTH\",\n \"OLD_PASSWORD\",\n // 'OR',\n \"ORD\",\n \"PASSWORD_FUNC\",\n \"PERCENT_RANK\",\n \"PERIOD_ADD\",\n \"PERIOD_DIFF\",\n \"PI\",\n \"PLUS\",\n \"POSITION\",\n \"POW\",\n \"POWER\",\n \"QUARTER\",\n \"QUOTE\",\n \"RADIANS\",\n \"RAND\",\n \"RANDOM_BYTES\",\n \"RANK\",\n \"REGEXP\",\n \"REGEXP_INSTR\",\n \"REGEXP_LIKE\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"RELEASE_ALL_LOCKS\",\n \"RELEASE_LOCK\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RIGHTSHIFT\",\n \"ROUND\",\n \"ROW_COUNT\",\n \"ROW_NUMBER\",\n \"RPAD\",\n \"RTRIM\",\n \"SCHEMA\",\n \"SEC_TO_TIME\",\n \"SECOND\",\n \"SESSION_USER\",\n \"SETVAL\",\n \"SETVAR\",\n \"SHA\",\n \"SHA1\",\n \"SHA2\",\n \"SIGN\",\n \"SIN\",\n \"SLEEP\",\n \"SM3\",\n \"SPACE\",\n \"SQRT\",\n \"STD\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STR_TO_DATE\",\n \"STRCMP\",\n \"SUBDATE\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUBSTRING_INDEX\",\n \"SUBTIME\",\n \"SUM\",\n \"SYSDATE\",\n \"SYSTEM_USER\",\n \"TAN\",\n \"TIDB_BOUNDED_STALENESS\",\n \"TIDB_CURRENT_TSO\",\n \"TIDB_DECODE_BINARY_PLAN\",\n \"TIDB_DECODE_KEY\",\n \"TIDB_DECODE_PLAN\",\n \"TIDB_DECODE_SQL_DIGESTS\",\n \"TIDB_ENCODE_SQL_DIGEST\",\n \"TIDB_IS_DDL_OWNER\",\n \"TIDB_PARSE_TSO\",\n \"TIDB_PARSE_TSO_LOGICAL\",\n \"TIDB_ROW_CHECKSUM\",\n \"TIDB_SHARD\",\n \"TIDB_VERSION\",\n \"TIME\",\n \"TIME_FORMAT\",\n \"TIME_TO_SEC\",\n \"TIMEDIFF\",\n \"TIMESTAMP\",\n \"TIMESTAMPADD\",\n \"TIMESTAMPDIFF\",\n \"TO_BASE64\",\n \"TO_DAYS\",\n \"TO_SECONDS\",\n \"TRANSLATE\",\n \"TRIM\",\n \"TRUNCATE\",\n \"UCASE\",\n \"UNARYMINUS\",\n \"UNCOMPRESS\",\n \"UNCOMPRESSED_LENGTH\",\n \"UNHEX\",\n \"UNIX_TIMESTAMP\",\n \"UPPER\",\n // 'USER',\n \"UTC_DATE\",\n \"UTC_TIME\",\n \"UTC_TIMESTAMP\",\n \"UUID\",\n \"UUID_SHORT\",\n \"UUID_TO_BIN\",\n \"VALIDATE_PASSWORD_STRENGTH\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n \"VERSION\",\n \"VITESS_HASH\",\n \"WEEK\",\n \"WEEKDAY\",\n \"WEEKOFYEAR\",\n \"WEIGHT_STRING\",\n // 'XOR',\n \"YEAR\",\n \"YEARWEEK\"\n];\n\n// src/languages/tidb/tidb.formatter.ts\nvar reservedSelect7 = expandPhrases([\"SELECT [ALL | DISTINCT | DISTINCTROW]\"]);\nvar reservedClauses7 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]\",\n \"REPLACE [LOW_PRIORITY | DELAYED] [INTO]\",\n \"VALUES\",\n \"ON DUPLICATE KEY UPDATE\",\n // - update:\n \"SET\"\n]);\nvar standardOnelineClauses7 = expandPhrases([\"CREATE [TEMPORARY] TABLE [IF NOT EXISTS]\"]);\nvar tabularOnelineClauses7 = expandPhrases([\n // https://docs.pingcap.com/tidb/stable/sql-statement-create-view\n \"CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-update\n \"UPDATE [LOW_PRIORITY] [IGNORE]\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-delete\n \"DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-drop-table\n \"DROP [TEMPORARY] TABLE [IF EXISTS]\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-alter-table\n \"ALTER TABLE\",\n \"ADD [COLUMN]\",\n \"{CHANGE | MODIFY} [COLUMN]\",\n \"DROP [COLUMN]\",\n \"RENAME [TO | AS]\",\n \"RENAME COLUMN\",\n \"ALTER [COLUMN]\",\n \"{SET | DROP} DEFAULT\",\n // for alter column\n // https://docs.pingcap.com/tidb/stable/sql-statement-truncate\n \"TRUNCATE [TABLE]\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-alter-database\n \"ALTER DATABASE\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-alter-instance\n \"ALTER INSTANCE\",\n \"ALTER RESOURCE GROUP\",\n \"ALTER SEQUENCE\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-alter-user\n \"ALTER USER\",\n \"ALTER VIEW\",\n \"ANALYZE TABLE\",\n \"CHECK TABLE\",\n \"CHECKSUM TABLE\",\n \"COMMIT\",\n \"CREATE DATABASE\",\n \"CREATE INDEX\",\n \"CREATE RESOURCE GROUP\",\n \"CREATE ROLE\",\n \"CREATE SEQUENCE\",\n \"CREATE USER\",\n \"DEALLOCATE PREPARE\",\n \"DESCRIBE\",\n \"DROP DATABASE\",\n \"DROP INDEX\",\n \"DROP RESOURCE GROUP\",\n \"DROP ROLE\",\n \"DROP TABLESPACE\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"EXPLAIN\",\n \"FLUSH\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-grant-privileges\n \"GRANT\",\n \"IMPORT TABLE\",\n \"INSTALL COMPONENT\",\n \"INSTALL PLUGIN\",\n \"KILL\",\n \"LOAD DATA\",\n \"LOCK INSTANCE FOR BACKUP\",\n \"LOCK TABLES\",\n \"OPTIMIZE TABLE\",\n \"PREPARE\",\n \"RELEASE SAVEPOINT\",\n \"RENAME TABLE\",\n \"RENAME USER\",\n \"REPAIR TABLE\",\n \"RESET\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"ROLLBACK TO SAVEPOINT\",\n \"SAVEPOINT\",\n \"SET CHARACTER SET\",\n \"SET DEFAULT ROLE\",\n \"SET NAMES\",\n \"SET PASSWORD\",\n \"SET RESOURCE GROUP\",\n \"SET ROLE\",\n \"SET TRANSACTION\",\n \"SHOW\",\n \"SHOW BINARY LOGS\",\n \"SHOW BINLOG EVENTS\",\n \"SHOW CHARACTER SET\",\n \"SHOW COLLATION\",\n \"SHOW COLUMNS\",\n \"SHOW CREATE DATABASE\",\n \"SHOW CREATE TABLE\",\n \"SHOW CREATE USER\",\n \"SHOW CREATE VIEW\",\n \"SHOW DATABASES\",\n \"SHOW ENGINE\",\n \"SHOW ENGINES\",\n \"SHOW ERRORS\",\n \"SHOW EVENTS\",\n \"SHOW GRANTS\",\n \"SHOW INDEX\",\n \"SHOW MASTER STATUS\",\n \"SHOW OPEN TABLES\",\n \"SHOW PLUGINS\",\n \"SHOW PRIVILEGES\",\n \"SHOW PROCESSLIST\",\n \"SHOW PROFILE\",\n \"SHOW PROFILES\",\n \"SHOW STATUS\",\n \"SHOW TABLE STATUS\",\n \"SHOW TABLES\",\n \"SHOW TRIGGERS\",\n \"SHOW VARIABLES\",\n \"SHOW WARNINGS\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-table\n \"TABLE\",\n \"UNINSTALL COMPONENT\",\n \"UNINSTALL PLUGIN\",\n \"UNLOCK INSTANCE\",\n \"UNLOCK TABLES\",\n // https://docs.pingcap.com/tidb/stable/sql-statement-use\n \"USE\"\n]);\nvar reservedSetOperations7 = expandPhrases([\"UNION [ALL | DISTINCT]\"]);\nvar reservedJoins7 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT} [OUTER] JOIN\",\n // non-standard joins\n \"STRAIGHT_JOIN\"\n]);\nvar reservedPhrases7 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL]\",\n \"CHARACTER SET\",\n \"{ROWS | RANGE} BETWEEN\",\n \"IDENTIFIED BY\"\n]);\nvar tidb = {\n name: \"tidb\",\n tokenizerOptions: {\n reservedSelect: reservedSelect7,\n reservedClauses: [...reservedClauses7, ...standardOnelineClauses7, ...tabularOnelineClauses7],\n reservedSetOperations: reservedSetOperations7,\n reservedJoins: reservedJoins7,\n reservedPhrases: reservedPhrases7,\n supportsXor: true,\n reservedKeywords: keywords7,\n reservedDataTypes: dataTypes7,\n reservedFunctionNames: functions7,\n // TODO: support _ char set prefixes such as _utf8, _latin1, _binary, _utf8mb4, etc.\n stringTypes: [\n '\"\"-qq-bs',\n { quote: \"''-qq-bs\", prefixes: [\"N\"] },\n { quote: \"''-raw\", prefixes: [\"B\", \"X\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n identChars: { first: \"$\", rest: \"$\", allowFirstCharNumber: true },\n variableTypes: [\n { regex: \"@@?[A-Za-z0-9_.$]+\" },\n { quote: '\"\"-qq-bs', prefixes: [\"@\"], requirePrefix: true },\n { quote: \"''-qq-bs\", prefixes: [\"@\"], requirePrefix: true },\n { quote: \"``\", prefixes: [\"@\"], requirePrefix: true }\n ],\n paramTypes: { positional: true },\n lineCommentTypes: [\"--\", \"#\"],\n operators: [\n \"%\",\n \":=\",\n \"&\",\n \"|\",\n \"^\",\n \"~\",\n \"<<\",\n \">>\",\n \"<=>\",\n \"->\",\n \"->>\",\n \"&&\",\n \"||\",\n \"!\",\n \"*.*\"\n // Not actually an operator\n ],\n postProcess: postProcess2\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses7, ...tabularOnelineClauses7],\n tabularOnelineClauses: tabularOnelineClauses7\n }\n};\n\n// src/languages/n1ql/n1ql.functions.ts\nvar functions8 = [\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/functions.html\n \"ABORT\",\n \"ABS\",\n \"ACOS\",\n \"ADVISOR\",\n \"ARRAY_AGG\",\n \"ARRAY_AGG\",\n \"ARRAY_APPEND\",\n \"ARRAY_AVG\",\n \"ARRAY_BINARY_SEARCH\",\n \"ARRAY_CONCAT\",\n \"ARRAY_CONTAINS\",\n \"ARRAY_COUNT\",\n \"ARRAY_DISTINCT\",\n \"ARRAY_EXCEPT\",\n \"ARRAY_FLATTEN\",\n \"ARRAY_IFNULL\",\n \"ARRAY_INSERT\",\n \"ARRAY_INTERSECT\",\n \"ARRAY_LENGTH\",\n \"ARRAY_MAX\",\n \"ARRAY_MIN\",\n \"ARRAY_MOVE\",\n \"ARRAY_POSITION\",\n \"ARRAY_PREPEND\",\n \"ARRAY_PUT\",\n \"ARRAY_RANGE\",\n \"ARRAY_REMOVE\",\n \"ARRAY_REPEAT\",\n \"ARRAY_REPLACE\",\n \"ARRAY_REVERSE\",\n \"ARRAY_SORT\",\n \"ARRAY_STAR\",\n \"ARRAY_SUM\",\n \"ARRAY_SYMDIFF\",\n \"ARRAY_SYMDIFF1\",\n \"ARRAY_SYMDIFFN\",\n \"ARRAY_UNION\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"AVG\",\n \"BASE64\",\n \"BASE64_DECODE\",\n \"BASE64_ENCODE\",\n \"BITAND \",\n \"BITCLEAR \",\n \"BITNOT \",\n \"BITOR \",\n \"BITSET \",\n \"BITSHIFT \",\n \"BITTEST \",\n \"BITXOR \",\n \"CEIL\",\n \"CLOCK_LOCAL\",\n \"CLOCK_MILLIS\",\n \"CLOCK_STR\",\n \"CLOCK_TZ\",\n \"CLOCK_UTC\",\n \"COALESCE\",\n \"CONCAT\",\n \"CONCAT2\",\n \"CONTAINS\",\n \"CONTAINS_TOKEN\",\n \"CONTAINS_TOKEN_LIKE\",\n \"CONTAINS_TOKEN_REGEXP\",\n \"COS\",\n \"COUNT\",\n \"COUNT\",\n \"COUNTN\",\n \"CUME_DIST\",\n \"CURL\",\n \"DATE_ADD_MILLIS\",\n \"DATE_ADD_STR\",\n \"DATE_DIFF_MILLIS\",\n \"DATE_DIFF_STR\",\n \"DATE_FORMAT_STR\",\n \"DATE_PART_MILLIS\",\n \"DATE_PART_STR\",\n \"DATE_RANGE_MILLIS\",\n \"DATE_RANGE_STR\",\n \"DATE_TRUNC_MILLIS\",\n \"DATE_TRUNC_STR\",\n \"DECODE\",\n \"DECODE_JSON\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DURATION_TO_STR\",\n // 'E',\n \"ENCODED_SIZE\",\n \"ENCODE_JSON\",\n \"EXP\",\n \"FIRST_VALUE\",\n \"FLOOR\",\n \"GREATEST\",\n \"HAS_TOKEN\",\n \"IFINF\",\n \"IFMISSING\",\n \"IFMISSINGORNULL\",\n \"IFNAN\",\n \"IFNANORINF\",\n \"IFNULL\",\n \"INITCAP\",\n \"ISARRAY\",\n \"ISATOM\",\n \"ISBITSET\",\n \"ISBOOLEAN\",\n \"ISNUMBER\",\n \"ISOBJECT\",\n \"ISSTRING\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"LEAST\",\n \"LENGTH\",\n \"LN\",\n \"LOG\",\n \"LOWER\",\n \"LTRIM\",\n \"MAX\",\n \"MEAN\",\n \"MEDIAN\",\n \"META\",\n \"MILLIS\",\n \"MILLIS_TO_LOCAL\",\n \"MILLIS_TO_STR\",\n \"MILLIS_TO_TZ\",\n \"MILLIS_TO_UTC\",\n \"MILLIS_TO_ZONE_NAME\",\n \"MIN\",\n \"MISSINGIF\",\n \"NANIF\",\n \"NEGINFIF\",\n \"NOW_LOCAL\",\n \"NOW_MILLIS\",\n \"NOW_STR\",\n \"NOW_TZ\",\n \"NOW_UTC\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLIF\",\n \"NVL\",\n \"NVL2\",\n \"OBJECT_ADD\",\n \"OBJECT_CONCAT\",\n \"OBJECT_INNER_PAIRS\",\n \"OBJECT_INNER_VALUES\",\n \"OBJECT_LENGTH\",\n \"OBJECT_NAMES\",\n \"OBJECT_PAIRS\",\n \"OBJECT_PUT\",\n \"OBJECT_REMOVE\",\n \"OBJECT_RENAME\",\n \"OBJECT_REPLACE\",\n \"OBJECT_UNWRAP\",\n \"OBJECT_VALUES\",\n \"PAIRS\",\n \"PERCENT_RANK\",\n \"PI\",\n \"POLY_LENGTH\",\n \"POSINFIF\",\n \"POSITION\",\n \"POWER\",\n \"RADIANS\",\n \"RANDOM\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"REGEXP_CONTAINS\",\n \"REGEXP_LIKE\",\n \"REGEXP_MATCHES\",\n \"REGEXP_POSITION\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SPLIT\",\n \"REGEX_CONTAINS\",\n \"REGEX_LIKE\",\n \"REGEX_MATCHES\",\n \"REGEX_POSITION\",\n \"REGEX_REPLACE\",\n \"REGEX_SPLIT\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"ROUND\",\n \"ROW_NUMBER\",\n \"RTRIM\",\n \"SEARCH\",\n \"SEARCH_META\",\n \"SEARCH_SCORE\",\n \"SIGN\",\n \"SIN\",\n \"SPLIT\",\n \"SQRT\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STR_TO_DURATION\",\n \"STR_TO_MILLIS\",\n \"STR_TO_TZ\",\n \"STR_TO_UTC\",\n \"STR_TO_ZONE_NAME\",\n \"SUBSTR\",\n \"SUFFIXES\",\n \"SUM\",\n \"TAN\",\n \"TITLE\",\n \"TOARRAY\",\n \"TOATOM\",\n \"TOBOOLEAN\",\n \"TOKENS\",\n \"TOKENS\",\n \"TONUMBER\",\n \"TOOBJECT\",\n \"TOSTRING\",\n \"TRIM\",\n \"TRUNC\",\n // 'TYPE', // disabled\n \"UPPER\",\n \"UUID\",\n \"VARIANCE\",\n \"VARIANCE_POP\",\n \"VARIANCE_SAMP\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"WEEKDAY_MILLIS\",\n \"WEEKDAY_STR\",\n // type casting\n // not implemented in N1QL, but added here now for the sake of tests\n // https://docs.couchbase.com/server/current/analytics/3_query.html#Vs_SQL-92\n \"CAST\"\n];\n\n// src/languages/n1ql/n1ql.keywords.ts\nvar keywords8 = [\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html\n \"ADVISE\",\n \"ALL\",\n \"ALTER\",\n \"ANALYZE\",\n \"AND\",\n \"ANY\",\n \"ARRAY\",\n \"AS\",\n \"ASC\",\n \"AT\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BINARY\",\n \"BOOLEAN\",\n \"BREAK\",\n \"BUCKET\",\n \"BUILD\",\n \"BY\",\n \"CALL\",\n \"CASE\",\n \"CAST\",\n \"CLUSTER\",\n \"COLLATE\",\n \"COLLECTION\",\n \"COMMIT\",\n \"COMMITTED\",\n \"CONNECT\",\n \"CONTINUE\",\n \"CORRELATED\",\n \"COVER\",\n \"CREATE\",\n \"CURRENT\",\n \"DATABASE\",\n \"DATASET\",\n \"DATASTORE\",\n \"DECLARE\",\n \"DECREMENT\",\n \"DELETE\",\n \"DERIVED\",\n \"DESC\",\n \"DESCRIBE\",\n \"DISTINCT\",\n \"DO\",\n \"DROP\",\n \"EACH\",\n \"ELEMENT\",\n \"ELSE\",\n \"END\",\n \"EVERY\",\n \"EXCEPT\",\n \"EXCLUDE\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXPLAIN\",\n \"FALSE\",\n \"FETCH\",\n \"FILTER\",\n \"FIRST\",\n \"FLATTEN\",\n \"FLUSH\",\n \"FOLLOWING\",\n \"FOR\",\n \"FORCE\",\n \"FROM\",\n \"FTS\",\n \"FUNCTION\",\n \"GOLANG\",\n \"GRANT\",\n \"GROUP\",\n \"GROUPS\",\n \"GSI\",\n \"HASH\",\n \"HAVING\",\n \"IF\",\n \"IGNORE\",\n \"ILIKE\",\n \"IN\",\n \"INCLUDE\",\n \"INCREMENT\",\n \"INDEX\",\n \"INFER\",\n \"INLINE\",\n \"INNER\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ISOLATION\",\n \"JAVASCRIPT\",\n \"JOIN\",\n \"KEY\",\n \"KEYS\",\n \"KEYSPACE\",\n \"KNOWN\",\n \"LANGUAGE\",\n \"LAST\",\n \"LEFT\",\n \"LET\",\n \"LETTING\",\n \"LEVEL\",\n \"LIKE\",\n \"LIMIT\",\n \"LSM\",\n \"MAP\",\n \"MAPPING\",\n \"MATCHED\",\n \"MATERIALIZED\",\n \"MERGE\",\n \"MINUS\",\n \"MISSING\",\n \"NAMESPACE\",\n \"NEST\",\n \"NL\",\n \"NO\",\n \"NOT\",\n \"NTH_VALUE\",\n \"NULL\",\n \"NULLS\",\n \"NUMBER\",\n \"OBJECT\",\n \"OFFSET\",\n \"ON\",\n \"OPTION\",\n \"OPTIONS\",\n \"OR\",\n \"ORDER\",\n \"OTHERS\",\n \"OUTER\",\n \"OVER\",\n \"PARSE\",\n \"PARTITION\",\n \"PASSWORD\",\n \"PATH\",\n \"POOL\",\n \"PRECEDING\",\n \"PREPARE\",\n \"PRIMARY\",\n \"PRIVATE\",\n \"PRIVILEGE\",\n \"PROBE\",\n \"PROCEDURE\",\n \"PUBLIC\",\n \"RANGE\",\n \"RAW\",\n \"REALM\",\n \"REDUCE\",\n \"RENAME\",\n \"RESPECT\",\n \"RETURN\",\n \"RETURNING\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLE\",\n \"ROLLBACK\",\n \"ROW\",\n \"ROWS\",\n \"SATISFIES\",\n \"SAVEPOINT\",\n \"SCHEMA\",\n \"SCOPE\",\n \"SELECT\",\n \"SELF\",\n \"SEMI\",\n \"SET\",\n \"SHOW\",\n \"SOME\",\n \"START\",\n \"STATISTICS\",\n \"STRING\",\n \"SYSTEM\",\n \"THEN\",\n \"TIES\",\n \"TO\",\n \"TRAN\",\n \"TRANSACTION\",\n \"TRIGGER\",\n \"TRUE\",\n \"TRUNCATE\",\n \"UNBOUNDED\",\n \"UNDER\",\n \"UNION\",\n \"UNIQUE\",\n \"UNKNOWN\",\n \"UNNEST\",\n \"UNSET\",\n \"UPDATE\",\n \"UPSERT\",\n \"USE\",\n \"USER\",\n \"USING\",\n \"VALIDATE\",\n \"VALUE\",\n \"VALUED\",\n \"VALUES\",\n \"VIA\",\n \"VIEW\",\n \"WHEN\",\n \"WHERE\",\n \"WHILE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHIN\",\n \"WORK\",\n \"XOR\"\n];\nvar dataTypes8 = [\n // N1QL does not support any way of declaring types for columns.\n // It does not support the CREATE TABLE statement nor the CAST() expression.\n //\n // It does have several keywords like ARRAY and OBJECT, which seem to refer to types,\n // but they are used as operators. It also reserves several words like STRING and NUMBER,\n // which it actually doesn't use.\n //\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/datatypes.html\n];\n\n// src/languages/n1ql/n1ql.formatter.ts\nvar reservedSelect8 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses8 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE INTO\",\n \"WHEN [NOT] MATCHED THEN\",\n \"UPDATE SET\",\n \"INSERT\",\n // other\n \"NEST\",\n \"UNNEST\",\n \"RETURNING\"\n]);\nvar onelineClauses = expandPhrases([\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE FROM\",\n // - set schema:\n \"SET SCHEMA\",\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html\n \"ADVISE\",\n \"ALTER INDEX\",\n \"BEGIN TRANSACTION\",\n \"BUILD INDEX\",\n \"COMMIT TRANSACTION\",\n \"CREATE COLLECTION\",\n \"CREATE FUNCTION\",\n \"CREATE INDEX\",\n \"CREATE PRIMARY INDEX\",\n \"CREATE SCOPE\",\n \"DROP COLLECTION\",\n \"DROP FUNCTION\",\n \"DROP INDEX\",\n \"DROP PRIMARY INDEX\",\n \"DROP SCOPE\",\n \"EXECUTE\",\n \"EXECUTE FUNCTION\",\n \"EXPLAIN\",\n \"GRANT\",\n \"INFER\",\n \"PREPARE\",\n \"REVOKE\",\n \"ROLLBACK TRANSACTION\",\n \"SAVEPOINT\",\n \"SET TRANSACTION\",\n \"UPDATE STATISTICS\",\n \"UPSERT\",\n // other\n \"LET\",\n \"SET CURRENT SCHEMA\",\n \"SHOW\",\n \"USE [PRIMARY] KEYS\"\n]);\nvar reservedSetOperations8 = expandPhrases([\"UNION [ALL]\", \"EXCEPT [ALL]\", \"INTERSECT [ALL]\"]);\nvar reservedJoins8 = expandPhrases([\"JOIN\", \"{LEFT | RIGHT} [OUTER] JOIN\", \"INNER JOIN\"]);\nvar reservedPhrases8 = expandPhrases([\"{ROWS | RANGE | GROUPS} BETWEEN\"]);\nvar n1ql = {\n name: \"n1ql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect8,\n reservedClauses: [...reservedClauses8, ...onelineClauses],\n reservedSetOperations: reservedSetOperations8,\n reservedJoins: reservedJoins8,\n reservedPhrases: reservedPhrases8,\n supportsXor: true,\n reservedKeywords: keywords8,\n reservedDataTypes: dataTypes8,\n reservedFunctionNames: functions8,\n // NOTE: single quotes are actually not supported in N1QL,\n // but we support them anyway as all other SQL dialects do,\n // which simplifies writing tests that are shared between all dialects.\n stringTypes: ['\"\"-bs', \"''-bs\"],\n identTypes: [\"``\"],\n extraParens: [\"[]\", \"{}\"],\n paramTypes: { positional: true, numbered: [\"$\"], named: [\"$\"] },\n lineCommentTypes: [\"#\", \"--\"],\n operators: [\"%\", \"==\", \":\", \"||\"]\n },\n formatOptions: {\n onelineClauses\n }\n};\n\n// src/languages/plsql/plsql.keywords.ts\nvar keywords9 = [\n // https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/reservewords.htm\n // 'A',\n \"ADD\",\n \"AGENT\",\n \"AGGREGATE\",\n \"ALL\",\n \"ALTER\",\n \"AND\",\n \"ANY\",\n \"ARROW\",\n \"AS\",\n \"ASC\",\n \"AT\",\n \"ATTRIBUTE\",\n \"AUTHID\",\n \"AVG\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BLOCK\",\n \"BODY\",\n \"BOTH\",\n \"BOUND\",\n \"BULK\",\n \"BY\",\n \"BYTE\",\n // 'C',\n \"CALL\",\n \"CALLING\",\n \"CASCADE\",\n \"CASE\",\n \"CHARSET\",\n \"CHARSETFORM\",\n \"CHARSETID\",\n \"CHECK\",\n \"CLOSE\",\n \"CLUSTER\",\n \"CLUSTERS\",\n \"COLAUTH\",\n \"COLLECT\",\n \"COLUMNS\",\n \"COMMENT\",\n \"COMMIT\",\n \"COMMITTED\",\n \"COMPILED\",\n \"COMPRESS\",\n \"CONNECT\",\n \"CONSTANT\",\n \"CONSTRUCTOR\",\n \"CONTEXT\",\n \"CONVERT\",\n \"COUNT\",\n \"CRASH\",\n \"CREATE\",\n \"CURRENT\",\n \"CURSOR\",\n \"CUSTOMDATUM\",\n \"DANGLING\",\n \"DATA\",\n \"DAY\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DEFINE\",\n \"DELETE\",\n \"DESC\",\n \"DETERMINISTIC\",\n \"DISTINCT\",\n \"DROP\",\n \"DURATION\",\n \"ELEMENT\",\n \"ELSE\",\n \"ELSIF\",\n \"EMPTY\",\n \"END\",\n \"ESCAPE\",\n \"EXCEPT\",\n \"EXCEPTION\",\n \"EXCEPTIONS\",\n \"EXCLUSIVE\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXIT\",\n \"EXTERNAL\",\n \"FETCH\",\n \"FINAL\",\n \"FIXED\",\n \"FOR\",\n \"FORALL\",\n \"FORCE\",\n \"FORM\",\n \"FROM\",\n \"FUNCTION\",\n \"GENERAL\",\n \"GOTO\",\n \"GRANT\",\n \"GROUP\",\n \"HASH\",\n \"HAVING\",\n \"HEAP\",\n \"HIDDEN\",\n \"HOUR\",\n \"IDENTIFIED\",\n \"IF\",\n \"IMMEDIATE\",\n \"IN\",\n \"INCLUDING\",\n \"INDEX\",\n \"INDEXES\",\n \"INDICATOR\",\n \"INDICES\",\n \"INFINITE\",\n \"INSERT\",\n \"INSTANTIABLE\",\n \"INTERFACE\",\n \"INTERSECT\",\n \"INTERVAL\",\n \"INTO\",\n \"INVALIDATE\",\n \"IS\",\n \"ISOLATION\",\n \"JAVA\",\n \"LANGUAGE\",\n \"LARGE\",\n \"LEADING\",\n \"LENGTH\",\n \"LEVEL\",\n \"LIBRARY\",\n \"LIKE\",\n \"LIKE2\",\n \"LIKE4\",\n \"LIKEC\",\n \"LIMIT\",\n \"LIMITED\",\n \"LOCAL\",\n \"LOCK\",\n \"LOOP\",\n \"MAP\",\n \"MAX\",\n \"MAXLEN\",\n \"MEMBER\",\n \"MERGE\",\n \"MIN\",\n \"MINUS\",\n \"MINUTE\",\n \"MOD\",\n \"MODE\",\n \"MODIFY\",\n \"MONTH\",\n \"MULTISET\",\n \"NAME\",\n \"NAN\",\n \"NATIONAL\",\n \"NATIVE\",\n \"NEW\",\n \"NOCOMPRESS\",\n \"NOCOPY\",\n \"NOT\",\n \"NOWAIT\",\n \"NULL\",\n \"OBJECT\",\n \"OCICOLL\",\n \"OCIDATE\",\n \"OCIDATETIME\",\n \"OCIDURATION\",\n \"OCIINTERVAL\",\n \"OCILOBLOCATOR\",\n \"OCINUMBER\",\n \"OCIRAW\",\n \"OCIREF\",\n \"OCIREFCURSOR\",\n \"OCIROWID\",\n \"OCISTRING\",\n \"OCITYPE\",\n \"OF\",\n \"ON\",\n \"ONLY\",\n \"OPAQUE\",\n \"OPEN\",\n \"OPERATOR\",\n \"OPTION\",\n \"OR\",\n \"ORACLE\",\n \"ORADATA\",\n \"ORDER\",\n \"OVERLAPS\",\n \"ORGANIZATION\",\n \"ORLANY\",\n \"ORLVARY\",\n \"OTHERS\",\n \"OUT\",\n \"OVERRIDING\",\n \"PACKAGE\",\n \"PARALLEL_ENABLE\",\n \"PARAMETER\",\n \"PARAMETERS\",\n \"PARTITION\",\n \"PASCAL\",\n \"PIPE\",\n \"PIPELINED\",\n \"PRAGMA\",\n \"PRIOR\",\n \"PRIVATE\",\n \"PROCEDURE\",\n \"PUBLIC\",\n \"RAISE\",\n \"RANGE\",\n \"READ\",\n \"RECORD\",\n \"REF\",\n \"REFERENCE\",\n \"REM\",\n \"REMAINDER\",\n \"RENAME\",\n \"RESOURCE\",\n \"RESULT\",\n \"RETURN\",\n \"RETURNING\",\n \"REVERSE\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"ROW\",\n \"SAMPLE\",\n \"SAVE\",\n \"SAVEPOINT\",\n \"SB1\",\n \"SB2\",\n \"SB4\",\n \"SECOND\",\n \"SEGMENT\",\n \"SELECT\",\n \"SELF\",\n \"SEPARATE\",\n \"SEQUENCE\",\n \"SERIALIZABLE\",\n \"SET\",\n \"SHARE\",\n \"SHORT\",\n \"SIZE\",\n \"SIZE_T\",\n \"SOME\",\n \"SPARSE\",\n \"SQL\",\n \"SQLCODE\",\n \"SQLDATA\",\n \"SQLNAME\",\n \"SQLSTATE\",\n \"STANDARD\",\n \"START\",\n \"STATIC\",\n \"STDDEV\",\n \"STORED\",\n \"STRING\",\n \"STRUCT\",\n \"STYLE\",\n \"SUBMULTISET\",\n \"SUBPARTITION\",\n \"SUBSTITUTABLE\",\n \"SUBTYPE\",\n \"SUM\",\n \"SYNONYM\",\n \"TABAUTH\",\n \"TABLE\",\n \"TDO\",\n \"THE\",\n \"THEN\",\n \"TIME\",\n \"TIMEZONE_ABBR\",\n \"TIMEZONE_HOUR\",\n \"TIMEZONE_MINUTE\",\n \"TIMEZONE_REGION\",\n \"TO\",\n \"TRAILING\",\n \"TRANSAC\",\n \"TRANSACTIONAL\",\n \"TRUSTED\",\n \"TYPE\",\n \"UB1\",\n \"UB2\",\n \"UB4\",\n \"UNDER\",\n \"UNION\",\n \"UNIQUE\",\n \"UNSIGNED\",\n \"UNTRUSTED\",\n \"UPDATE\",\n \"USE\",\n \"USING\",\n \"VALIST\",\n \"VALUE\",\n \"VALUES\",\n \"VARIABLE\",\n \"VARIANCE\",\n \"VARRAY\",\n \"VIEW\",\n \"VIEWS\",\n \"VOID\",\n \"WHEN\",\n \"WHERE\",\n \"WHILE\",\n \"WITH\",\n \"WORK\",\n \"WRAPPED\",\n \"WRITE\",\n \"YEAR\",\n \"ZONE\"\n];\nvar dataTypes9 = [\n // https://www.ibm.com/docs/en/db2/10.5?topic=plsql-data-types\n \"ARRAY\",\n \"BFILE_BASE\",\n \"BINARY\",\n \"BLOB_BASE\",\n \"CHAR VARYING\",\n \"CHAR_BASE\",\n \"CHAR\",\n \"CHARACTER VARYING\",\n \"CHARACTER\",\n \"CLOB_BASE\",\n \"DATE_BASE\",\n \"DATE\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"FLOAT\",\n \"INT\",\n \"INTERVAL DAY\",\n \"INTERVAL YEAR\",\n \"LONG\",\n \"NATIONAL CHAR VARYING\",\n \"NATIONAL CHAR\",\n \"NATIONAL CHARACTER VARYING\",\n \"NATIONAL CHARACTER\",\n \"NCHAR VARYING\",\n \"NCHAR\",\n \"NCHAR\",\n \"NUMBER_BASE\",\n \"NUMBER\",\n \"NUMBERIC\",\n \"NVARCHAR\",\n \"PRECISION\",\n \"RAW\",\n \"TIMESTAMP\",\n \"UROWID\",\n \"VARCHAR\",\n \"VARCHAR2\"\n];\n\n// src/languages/plsql/plsql.functions.ts\nvar functions9 = [\n // https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions001.htm\n // numeric\n \"ABS\",\n \"ACOS\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"BITAND\",\n \"CEIL\",\n \"COS\",\n \"COSH\",\n \"EXP\",\n \"FLOOR\",\n \"LN\",\n \"LOG\",\n \"MOD\",\n \"NANVL\",\n \"POWER\",\n \"REMAINDER\",\n \"ROUND\",\n \"SIGN\",\n \"SIN\",\n \"SINH\",\n \"SQRT\",\n \"TAN\",\n \"TANH\",\n \"TRUNC\",\n \"WIDTH_BUCKET\",\n // character\n \"CHR\",\n \"CONCAT\",\n \"INITCAP\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"NLS_INITCAP\",\n \"NLS_LOWER\",\n \"NLSSORT\",\n \"NLS_UPPER\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REPLACE\",\n \"RPAD\",\n \"RTRIM\",\n \"SOUNDEX\",\n \"SUBSTR\",\n \"TRANSLATE\",\n \"TREAT\",\n \"TRIM\",\n \"UPPER\",\n \"NLS_CHARSET_DECL_LEN\",\n \"NLS_CHARSET_ID\",\n \"NLS_CHARSET_NAME\",\n \"ASCII\",\n \"INSTR\",\n \"LENGTH\",\n \"REGEXP_INSTR\",\n // datetime\n \"ADD_MONTHS\",\n \"CURRENT_DATE\",\n \"CURRENT_TIMESTAMP\",\n \"DBTIMEZONE\",\n \"EXTRACT\",\n \"FROM_TZ\",\n \"LAST_DAY\",\n \"LOCALTIMESTAMP\",\n \"MONTHS_BETWEEN\",\n \"NEW_TIME\",\n \"NEXT_DAY\",\n \"NUMTODSINTERVAL\",\n \"NUMTOYMINTERVAL\",\n \"ROUND\",\n \"SESSIONTIMEZONE\",\n \"SYS_EXTRACT_UTC\",\n \"SYSDATE\",\n \"SYSTIMESTAMP\",\n \"TO_CHAR\",\n \"TO_TIMESTAMP\",\n \"TO_TIMESTAMP_TZ\",\n \"TO_DSINTERVAL\",\n \"TO_YMINTERVAL\",\n \"TRUNC\",\n \"TZ_OFFSET\",\n // comparison\n \"GREATEST\",\n \"LEAST\",\n // conversion\n \"ASCIISTR\",\n \"BIN_TO_NUM\",\n \"CAST\",\n \"CHARTOROWID\",\n \"COMPOSE\",\n \"CONVERT\",\n \"DECOMPOSE\",\n \"HEXTORAW\",\n \"NUMTODSINTERVAL\",\n \"NUMTOYMINTERVAL\",\n \"RAWTOHEX\",\n \"RAWTONHEX\",\n \"ROWIDTOCHAR\",\n \"ROWIDTONCHAR\",\n \"SCN_TO_TIMESTAMP\",\n \"TIMESTAMP_TO_SCN\",\n \"TO_BINARY_DOUBLE\",\n \"TO_BINARY_FLOAT\",\n \"TO_CHAR\",\n \"TO_CLOB\",\n \"TO_DATE\",\n \"TO_DSINTERVAL\",\n \"TO_LOB\",\n \"TO_MULTI_BYTE\",\n \"TO_NCHAR\",\n \"TO_NCLOB\",\n \"TO_NUMBER\",\n \"TO_DSINTERVAL\",\n \"TO_SINGLE_BYTE\",\n \"TO_TIMESTAMP\",\n \"TO_TIMESTAMP_TZ\",\n \"TO_YMINTERVAL\",\n \"TO_YMINTERVAL\",\n \"TRANSLATE\",\n \"UNISTR\",\n // largeObject\n \"BFILENAME\",\n \"EMPTY_BLOB,\",\n \"EMPTY_CLOB\",\n // collection\n \"CARDINALITY\",\n \"COLLECT\",\n \"POWERMULTISET\",\n \"POWERMULTISET_BY_CARDINALITY\",\n \"SET\",\n // hierarchical\n \"SYS_CONNECT_BY_PATH\",\n // dataMining\n \"CLUSTER_ID\",\n \"CLUSTER_PROBABILITY\",\n \"CLUSTER_SET\",\n \"FEATURE_ID\",\n \"FEATURE_SET\",\n \"FEATURE_VALUE\",\n \"PREDICTION\",\n \"PREDICTION_COST\",\n \"PREDICTION_DETAILS\",\n \"PREDICTION_PROBABILITY\",\n \"PREDICTION_SET\",\n // xml\n \"APPENDCHILDXML\",\n \"DELETEXML\",\n \"DEPTH\",\n \"EXTRACT\",\n \"EXISTSNODE\",\n \"EXTRACTVALUE\",\n \"INSERTCHILDXML\",\n \"INSERTXMLBEFORE\",\n \"PATH\",\n \"SYS_DBURIGEN\",\n \"SYS_XMLAGG\",\n \"SYS_XMLGEN\",\n \"UPDATEXML\",\n \"XMLAGG\",\n \"XMLCDATA\",\n \"XMLCOLATTVAL\",\n \"XMLCOMMENT\",\n \"XMLCONCAT\",\n \"XMLFOREST\",\n \"XMLPARSE\",\n \"XMLPI\",\n \"XMLQUERY\",\n \"XMLROOT\",\n \"XMLSEQUENCE\",\n \"XMLSERIALIZE\",\n \"XMLTABLE\",\n \"XMLTRANSFORM\",\n // encoding\n \"DECODE\",\n \"DUMP\",\n \"ORA_HASH\",\n \"VSIZE\",\n // nullRelated\n \"COALESCE\",\n \"LNNVL\",\n \"NULLIF\",\n \"NVL\",\n \"NVL2\",\n // env\n \"SYS_CONTEXT\",\n \"SYS_GUID\",\n \"SYS_TYPEID\",\n \"UID\",\n \"USER\",\n \"USERENV\",\n // aggregate\n \"AVG\",\n \"COLLECT\",\n \"CORR\",\n \"CORR_S\",\n \"CORR_K\",\n \"COUNT\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"FIRST\",\n \"GROUP_ID\",\n \"GROUPING\",\n \"GROUPING_ID\",\n \"LAST\",\n \"MAX\",\n \"MEDIAN\",\n \"MIN\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERCENT_RANK\",\n \"RANK\",\n \"REGR_SLOPE\",\n \"REGR_INTERCEPT\",\n \"REGR_COUNT\",\n \"REGR_R2\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_SXX\",\n \"REGR_SYY\",\n \"REGR_SXY\",\n \"STATS_BINOMIAL_TEST\",\n \"STATS_CROSSTAB\",\n \"STATS_F_TEST\",\n \"STATS_KS_TEST\",\n \"STATS_MODE\",\n \"STATS_MW_TEST\",\n \"STATS_ONE_WAY_ANOVA\",\n \"STATS_T_TEST_ONE\",\n \"STATS_T_TEST_PAIRED\",\n \"STATS_T_TEST_INDEP\",\n \"STATS_T_TEST_INDEPU\",\n \"STATS_WSR_TEST\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n // Windowing functions (minus the ones already listed in aggregates)\n // window\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"NTILE\",\n \"RATIO_TO_REPORT\",\n \"ROW_NUMBER\",\n // objectReference\n \"DEREF\",\n \"MAKE_REF\",\n \"REF\",\n \"REFTOHEX\",\n \"VALUE\",\n // model\n \"CV\",\n \"ITERATION_NUMBER\",\n \"PRESENTNNV\",\n \"PRESENTV\",\n \"PREVIOUS\"\n];\n\n// src/languages/plsql/plsql.formatter.ts\nvar reservedSelect9 = expandPhrases([\"SELECT [ALL | DISTINCT | UNIQUE]\"]);\nvar reservedClauses9 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER [SIBLINGS] BY\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n \"FOR UPDATE [OF]\",\n // Data manipulation\n // - insert:\n \"INSERT [INTO | ALL INTO]\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE [INTO]\",\n \"WHEN [NOT] MATCHED [THEN]\",\n \"UPDATE SET\",\n // other\n \"RETURNING\"\n]);\nvar standardOnelineClauses8 = expandPhrases([\n \"CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE\"\n]);\nvar tabularOnelineClauses8 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW\",\n \"CREATE MATERIALIZED VIEW\",\n // - update:\n \"UPDATE [ONLY]\",\n // - delete:\n \"DELETE FROM [ONLY]\",\n // - drop table:\n \"DROP TABLE\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD\",\n \"DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}\",\n \"MODIFY\",\n \"RENAME TO\",\n \"RENAME COLUMN\",\n // - truncate:\n \"TRUNCATE TABLE\",\n // other\n \"SET SCHEMA\",\n \"BEGIN\",\n \"CONNECT BY\",\n \"DECLARE\",\n \"EXCEPT\",\n \"EXCEPTION\",\n \"LOOP\",\n \"START WITH\"\n]);\nvar reservedSetOperations9 = expandPhrases([\"UNION [ALL]\", \"EXCEPT\", \"INTERSECT\"]);\nvar reservedJoins9 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\",\n // non-standard joins\n \"{CROSS | OUTER} APPLY\"\n]);\nvar reservedPhrases9 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL]\",\n \"ON COMMIT\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar plsql = {\n name: \"plsql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect9,\n reservedClauses: [...reservedClauses9, ...standardOnelineClauses8, ...tabularOnelineClauses8],\n reservedSetOperations: reservedSetOperations9,\n reservedJoins: reservedJoins9,\n reservedPhrases: reservedPhrases9,\n supportsXor: true,\n reservedKeywords: keywords9,\n reservedDataTypes: dataTypes9,\n reservedFunctionNames: functions9,\n stringTypes: [\n { quote: \"''-qq\", prefixes: [\"N\"] },\n { quote: \"q''\", prefixes: [\"N\"] }\n ],\n // PL/SQL doesn't actually support escaping of quotes in identifiers,\n // but for the sake of simpler testing we'll support this anyway\n // as all other SQL dialects with \"identifiers\" do.\n identTypes: [`\"\"-qq`],\n identChars: { rest: \"$#\" },\n variableTypes: [{ regex: \"&{1,2}[A-Za-z][A-Za-z0-9_$#]*\" }],\n paramTypes: { numbered: [\":\"], named: [\":\"] },\n paramChars: {},\n // Empty object used on purpose to not allow $ and # chars as specified in identChars\n operators: [\n \"**\",\n \":=\",\n \"%\",\n \"~=\",\n \"^=\",\n // '..', // Conflicts with float followed by dot (so \"2..3\" gets parsed as [\"2.\", \".\", \"3\"])\n \">>\",\n \"<<\",\n \"=>\",\n \"@\",\n \"||\"\n ],\n postProcess: postProcess3\n },\n formatOptions: {\n alwaysDenseOperators: [\"@\"],\n onelineClauses: [...standardOnelineClauses8, ...tabularOnelineClauses8],\n tabularOnelineClauses: tabularOnelineClauses8\n }\n};\nfunction postProcess3(tokens) {\n let previousReservedToken = EOF_TOKEN;\n return tokens.map((token) => {\n if (isToken.SET(token) && isToken.BY(previousReservedToken)) {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */ });\n }\n if (isReserved(token.type)) {\n previousReservedToken = token;\n }\n return token;\n });\n}\n\n// src/languages/postgresql/postgresql.functions.ts\nvar functions10 = [\n // https://www.postgresql.org/docs/14/functions.html\n //\n // https://www.postgresql.org/docs/14/functions-math.html\n \"ABS\",\n \"ACOS\",\n \"ACOSD\",\n \"ACOSH\",\n \"ASIN\",\n \"ASIND\",\n \"ASINH\",\n \"ATAN\",\n \"ATAN2\",\n \"ATAN2D\",\n \"ATAND\",\n \"ATANH\",\n \"CBRT\",\n \"CEIL\",\n \"CEILING\",\n \"COS\",\n \"COSD\",\n \"COSH\",\n \"COT\",\n \"COTD\",\n \"DEGREES\",\n \"DIV\",\n \"EXP\",\n \"FACTORIAL\",\n \"FLOOR\",\n \"GCD\",\n \"LCM\",\n \"LN\",\n \"LOG\",\n \"LOG10\",\n \"MIN_SCALE\",\n \"MOD\",\n \"PI\",\n \"POWER\",\n \"RADIANS\",\n \"RANDOM\",\n \"ROUND\",\n \"SCALE\",\n \"SETSEED\",\n \"SIGN\",\n \"SIN\",\n \"SIND\",\n \"SINH\",\n \"SQRT\",\n \"TAN\",\n \"TAND\",\n \"TANH\",\n \"TRIM_SCALE\",\n \"TRUNC\",\n \"WIDTH_BUCKET\",\n // https://www.postgresql.org/docs/14/functions-string.html\n \"ABS\",\n \"ASCII\",\n \"BIT_LENGTH\",\n \"BTRIM\",\n \"CHARACTER_LENGTH\",\n \"CHAR_LENGTH\",\n \"CHR\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"FORMAT\",\n \"INITCAP\",\n \"LEFT\",\n \"LENGTH\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MD5\",\n \"NORMALIZE\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"PARSE_IDENT\",\n \"PG_CLIENT_ENCODING\",\n \"POSITION\",\n \"QUOTE_IDENT\",\n \"QUOTE_LITERAL\",\n \"QUOTE_NULLABLE\",\n \"REGEXP_MATCH\",\n \"REGEXP_MATCHES\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SPLIT_TO_ARRAY\",\n \"REGEXP_SPLIT_TO_TABLE\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RPAD\",\n \"RTRIM\",\n \"SPLIT_PART\",\n \"SPRINTF\",\n \"STARTS_WITH\",\n \"STRING_AGG\",\n \"STRING_TO_ARRAY\",\n \"STRING_TO_TABLE\",\n \"STRPOS\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TO_ASCII\",\n \"TO_HEX\",\n \"TRANSLATE\",\n \"TRIM\",\n \"UNISTR\",\n \"UPPER\",\n // https://www.postgresql.org/docs/14/functions-binarystring.html\n \"BIT_COUNT\",\n \"BIT_LENGTH\",\n \"BTRIM\",\n \"CONVERT\",\n \"CONVERT_FROM\",\n \"CONVERT_TO\",\n \"DECODE\",\n \"ENCODE\",\n \"GET_BIT\",\n \"GET_BYTE\",\n \"LENGTH\",\n \"LTRIM\",\n \"MD5\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"POSITION\",\n \"RTRIM\",\n \"SET_BIT\",\n \"SET_BYTE\",\n \"SHA224\",\n \"SHA256\",\n \"SHA384\",\n \"SHA512\",\n \"STRING_AGG\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TRIM\",\n // https://www.postgresql.org/docs/14/functions-bitstring.html\n \"BIT_COUNT\",\n \"BIT_LENGTH\",\n \"GET_BIT\",\n \"LENGTH\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"POSITION\",\n \"SET_BIT\",\n \"SUBSTRING\",\n // https://www.postgresql.org/docs/14/functions-matching.html\n \"REGEXP_MATCH\",\n \"REGEXP_MATCHES\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SPLIT_TO_ARRAY\",\n \"REGEXP_SPLIT_TO_TABLE\",\n // https://www.postgresql.org/docs/14/functions-formatting.html\n \"TO_CHAR\",\n \"TO_DATE\",\n \"TO_NUMBER\",\n \"TO_TIMESTAMP\",\n // https://www.postgresql.org/docs/14/functions-datetime.html\n // 'AGE',\n \"CLOCK_TIMESTAMP\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"DATE_BIN\",\n \"DATE_PART\",\n \"DATE_TRUNC\",\n \"EXTRACT\",\n \"ISFINITE\",\n \"JUSTIFY_DAYS\",\n \"JUSTIFY_HOURS\",\n \"JUSTIFY_INTERVAL\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"MAKE_DATE\",\n \"MAKE_INTERVAL\",\n \"MAKE_TIME\",\n \"MAKE_TIMESTAMP\",\n \"MAKE_TIMESTAMPTZ\",\n \"NOW\",\n \"PG_SLEEP\",\n \"PG_SLEEP_FOR\",\n \"PG_SLEEP_UNTIL\",\n \"STATEMENT_TIMESTAMP\",\n \"TIMEOFDAY\",\n \"TO_TIMESTAMP\",\n \"TRANSACTION_TIMESTAMP\",\n // https://www.postgresql.org/docs/14/functions-enum.html\n \"ENUM_FIRST\",\n \"ENUM_LAST\",\n \"ENUM_RANGE\",\n // https://www.postgresql.org/docs/14/functions-geometry.html\n \"AREA\",\n \"BOUND_BOX\",\n \"BOX\",\n \"CENTER\",\n \"CIRCLE\",\n \"DIAGONAL\",\n \"DIAMETER\",\n \"HEIGHT\",\n \"ISCLOSED\",\n \"ISOPEN\",\n \"LENGTH\",\n \"LINE\",\n \"LSEG\",\n \"NPOINTS\",\n \"PATH\",\n \"PCLOSE\",\n \"POINT\",\n \"POLYGON\",\n \"POPEN\",\n \"RADIUS\",\n \"SLOPE\",\n \"WIDTH\",\n // https://www.postgresql.org/docs/14/functions-net.html\n \"ABBREV\",\n \"BROADCAST\",\n \"FAMILY\",\n \"HOST\",\n \"HOSTMASK\",\n \"INET_MERGE\",\n \"INET_SAME_FAMILY\",\n \"MACADDR8_SET7BIT\",\n \"MASKLEN\",\n \"NETMASK\",\n \"NETWORK\",\n \"SET_MASKLEN\",\n // 'TEXT', // excluded because it's also a data type name\n \"TRUNC\",\n // https://www.postgresql.org/docs/14/functions-textsearch.html\n \"ARRAY_TO_TSVECTOR\",\n \"GET_CURRENT_TS_CONFIG\",\n \"JSONB_TO_TSVECTOR\",\n \"JSON_TO_TSVECTOR\",\n \"LENGTH\",\n \"NUMNODE\",\n \"PHRASETO_TSQUERY\",\n \"PLAINTO_TSQUERY\",\n \"QUERYTREE\",\n \"SETWEIGHT\",\n \"STRIP\",\n \"TO_TSQUERY\",\n \"TO_TSVECTOR\",\n \"TSQUERY_PHRASE\",\n \"TSVECTOR_TO_ARRAY\",\n \"TS_DEBUG\",\n \"TS_DELETE\",\n \"TS_FILTER\",\n \"TS_HEADLINE\",\n \"TS_LEXIZE\",\n \"TS_PARSE\",\n \"TS_RANK\",\n \"TS_RANK_CD\",\n \"TS_REWRITE\",\n \"TS_STAT\",\n \"TS_TOKEN_TYPE\",\n \"WEBSEARCH_TO_TSQUERY\",\n // https://www.postgresql.org/docs/14/functions-uuid.html\n \"UUID\",\n // https://www.postgresql.org/docs/14/functions-xml.html\n \"CURSOR_TO_XML\",\n \"CURSOR_TO_XMLSCHEMA\",\n \"DATABASE_TO_XML\",\n \"DATABASE_TO_XMLSCHEMA\",\n \"DATABASE_TO_XML_AND_XMLSCHEMA\",\n \"NEXTVAL\",\n \"QUERY_TO_XML\",\n \"QUERY_TO_XMLSCHEMA\",\n \"QUERY_TO_XML_AND_XMLSCHEMA\",\n \"SCHEMA_TO_XML\",\n \"SCHEMA_TO_XMLSCHEMA\",\n \"SCHEMA_TO_XML_AND_XMLSCHEMA\",\n \"STRING\",\n \"TABLE_TO_XML\",\n \"TABLE_TO_XMLSCHEMA\",\n \"TABLE_TO_XML_AND_XMLSCHEMA\",\n \"XMLAGG\",\n \"XMLCOMMENT\",\n \"XMLCONCAT\",\n \"XMLELEMENT\",\n \"XMLEXISTS\",\n \"XMLFOREST\",\n \"XMLPARSE\",\n \"XMLPI\",\n \"XMLROOT\",\n \"XMLSERIALIZE\",\n \"XMLTABLE\",\n \"XML_IS_WELL_FORMED\",\n \"XML_IS_WELL_FORMED_CONTENT\",\n \"XML_IS_WELL_FORMED_DOCUMENT\",\n \"XPATH\",\n \"XPATH_EXISTS\",\n // https://www.postgresql.org/docs/14/functions-json.html\n \"ARRAY_TO_JSON\",\n \"JSONB_AGG\",\n \"JSONB_ARRAY_ELEMENTS\",\n \"JSONB_ARRAY_ELEMENTS_TEXT\",\n \"JSONB_ARRAY_LENGTH\",\n \"JSONB_BUILD_ARRAY\",\n \"JSONB_BUILD_OBJECT\",\n \"JSONB_EACH\",\n \"JSONB_EACH_TEXT\",\n \"JSONB_EXTRACT_PATH\",\n \"JSONB_EXTRACT_PATH_TEXT\",\n \"JSONB_INSERT\",\n \"JSONB_OBJECT\",\n \"JSONB_OBJECT_AGG\",\n \"JSONB_OBJECT_KEYS\",\n \"JSONB_PATH_EXISTS\",\n \"JSONB_PATH_EXISTS_TZ\",\n \"JSONB_PATH_MATCH\",\n \"JSONB_PATH_MATCH_TZ\",\n \"JSONB_PATH_QUERY\",\n \"JSONB_PATH_QUERY_ARRAY\",\n \"JSONB_PATH_QUERY_ARRAY_TZ\",\n \"JSONB_PATH_QUERY_FIRST\",\n \"JSONB_PATH_QUERY_FIRST_TZ\",\n \"JSONB_PATH_QUERY_TZ\",\n \"JSONB_POPULATE_RECORD\",\n \"JSONB_POPULATE_RECORDSET\",\n \"JSONB_PRETTY\",\n \"JSONB_SET\",\n \"JSONB_SET_LAX\",\n \"JSONB_STRIP_NULLS\",\n \"JSONB_TO_RECORD\",\n \"JSONB_TO_RECORDSET\",\n \"JSONB_TYPEOF\",\n \"JSON_AGG\",\n \"JSON_ARRAY_ELEMENTS\",\n \"JSON_ARRAY_ELEMENTS_TEXT\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_BUILD_ARRAY\",\n \"JSON_BUILD_OBJECT\",\n \"JSON_EACH\",\n \"JSON_EACH_TEXT\",\n \"JSON_EXTRACT_PATH\",\n \"JSON_EXTRACT_PATH_TEXT\",\n \"JSON_OBJECT\",\n \"JSON_OBJECT_AGG\",\n \"JSON_OBJECT_KEYS\",\n \"JSON_POPULATE_RECORD\",\n \"JSON_POPULATE_RECORDSET\",\n \"JSON_STRIP_NULLS\",\n \"JSON_TO_RECORD\",\n \"JSON_TO_RECORDSET\",\n \"JSON_TYPEOF\",\n \"ROW_TO_JSON\",\n \"TO_JSON\",\n \"TO_JSONB\",\n \"TO_TIMESTAMP\",\n // https://www.postgresql.org/docs/14/functions-sequence.html\n \"CURRVAL\",\n \"LASTVAL\",\n \"NEXTVAL\",\n \"SETVAL\",\n // https://www.postgresql.org/docs/14/functions-conditional.html\n // 'CASE',\n \"COALESCE\",\n \"GREATEST\",\n \"LEAST\",\n \"NULLIF\",\n // https://www.postgresql.org/docs/14/functions-array.html\n \"ARRAY_AGG\",\n \"ARRAY_APPEND\",\n \"ARRAY_CAT\",\n \"ARRAY_DIMS\",\n \"ARRAY_FILL\",\n \"ARRAY_LENGTH\",\n \"ARRAY_LOWER\",\n \"ARRAY_NDIMS\",\n \"ARRAY_POSITION\",\n \"ARRAY_POSITIONS\",\n \"ARRAY_PREPEND\",\n \"ARRAY_REMOVE\",\n \"ARRAY_REPLACE\",\n \"ARRAY_TO_STRING\",\n \"ARRAY_UPPER\",\n \"CARDINALITY\",\n \"STRING_TO_ARRAY\",\n \"TRIM_ARRAY\",\n \"UNNEST\",\n // https://www.postgresql.org/docs/14/functions-range.html\n \"ISEMPTY\",\n \"LOWER\",\n \"LOWER_INC\",\n \"LOWER_INF\",\n \"MULTIRANGE\",\n \"RANGE_MERGE\",\n \"UPPER\",\n \"UPPER_INC\",\n \"UPPER_INF\",\n // https://www.postgresql.org/docs/14/functions-aggregate.html\n // 'ANY',\n \"ARRAY_AGG\",\n \"AVG\",\n \"BIT_AND\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"BOOL_AND\",\n \"BOOL_OR\",\n \"COALESCE\",\n \"CORR\",\n \"COUNT\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"EVERY\",\n \"GROUPING\",\n \"JSONB_AGG\",\n \"JSONB_OBJECT_AGG\",\n \"JSON_AGG\",\n \"JSON_OBJECT_AGG\",\n \"MAX\",\n \"MIN\",\n \"MODE\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERCENT_RANK\",\n \"RANGE_AGG\",\n \"RANGE_INTERSECT_AGG\",\n \"RANK\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_COUNT\",\n \"REGR_INTERCEPT\",\n \"REGR_R2\",\n \"REGR_SLOPE\",\n \"REGR_SXX\",\n \"REGR_SXY\",\n \"REGR_SYY\",\n // 'SOME',\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STRING_AGG\",\n \"SUM\",\n \"TO_JSON\",\n \"TO_JSONB\",\n \"VARIANCE\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"XMLAGG\",\n // https://www.postgresql.org/docs/14/functions-window.html\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"PERCENT_RANK\",\n \"RANK\",\n \"ROW_NUMBER\",\n // https://www.postgresql.org/docs/14/functions-srf.html\n \"GENERATE_SERIES\",\n \"GENERATE_SUBSCRIPTS\",\n // https://www.postgresql.org/docs/14/functions-info.html\n \"ACLDEFAULT\",\n \"ACLEXPLODE\",\n \"COL_DESCRIPTION\",\n \"CURRENT_CATALOG\",\n \"CURRENT_DATABASE\",\n \"CURRENT_QUERY\",\n \"CURRENT_ROLE\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_SCHEMAS\",\n \"CURRENT_USER\",\n \"FORMAT_TYPE\",\n \"HAS_ANY_COLUMN_PRIVILEGE\",\n \"HAS_COLUMN_PRIVILEGE\",\n \"HAS_DATABASE_PRIVILEGE\",\n \"HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE\",\n \"HAS_FUNCTION_PRIVILEGE\",\n \"HAS_LANGUAGE_PRIVILEGE\",\n \"HAS_SCHEMA_PRIVILEGE\",\n \"HAS_SEQUENCE_PRIVILEGE\",\n \"HAS_SERVER_PRIVILEGE\",\n \"HAS_TABLESPACE_PRIVILEGE\",\n \"HAS_TABLE_PRIVILEGE\",\n \"HAS_TYPE_PRIVILEGE\",\n \"INET_CLIENT_ADDR\",\n \"INET_CLIENT_PORT\",\n \"INET_SERVER_ADDR\",\n \"INET_SERVER_PORT\",\n \"MAKEACLITEM\",\n \"OBJ_DESCRIPTION\",\n \"PG_BACKEND_PID\",\n \"PG_BLOCKING_PIDS\",\n \"PG_COLLATION_IS_VISIBLE\",\n \"PG_CONF_LOAD_TIME\",\n \"PG_CONTROL_CHECKPOINT\",\n \"PG_CONTROL_INIT\",\n \"PG_CONTROL_SYSTEM\",\n \"PG_CONVERSION_IS_VISIBLE\",\n \"PG_CURRENT_LOGFILE\",\n \"PG_CURRENT_SNAPSHOT\",\n \"PG_CURRENT_XACT_ID\",\n \"PG_CURRENT_XACT_ID_IF_ASSIGNED\",\n \"PG_DESCRIBE_OBJECT\",\n \"PG_FUNCTION_IS_VISIBLE\",\n \"PG_GET_CATALOG_FOREIGN_KEYS\",\n \"PG_GET_CONSTRAINTDEF\",\n \"PG_GET_EXPR\",\n \"PG_GET_FUNCTIONDEF\",\n \"PG_GET_FUNCTION_ARGUMENTS\",\n \"PG_GET_FUNCTION_IDENTITY_ARGUMENTS\",\n \"PG_GET_FUNCTION_RESULT\",\n \"PG_GET_INDEXDEF\",\n \"PG_GET_KEYWORDS\",\n \"PG_GET_OBJECT_ADDRESS\",\n \"PG_GET_OWNED_SEQUENCE\",\n \"PG_GET_RULEDEF\",\n \"PG_GET_SERIAL_SEQUENCE\",\n \"PG_GET_STATISTICSOBJDEF\",\n \"PG_GET_TRIGGERDEF\",\n \"PG_GET_USERBYID\",\n \"PG_GET_VIEWDEF\",\n \"PG_HAS_ROLE\",\n \"PG_IDENTIFY_OBJECT\",\n \"PG_IDENTIFY_OBJECT_AS_ADDRESS\",\n \"PG_INDEXAM_HAS_PROPERTY\",\n \"PG_INDEX_COLUMN_HAS_PROPERTY\",\n \"PG_INDEX_HAS_PROPERTY\",\n \"PG_IS_OTHER_TEMP_SCHEMA\",\n \"PG_JIT_AVAILABLE\",\n \"PG_LAST_COMMITTED_XACT\",\n \"PG_LISTENING_CHANNELS\",\n \"PG_MY_TEMP_SCHEMA\",\n \"PG_NOTIFICATION_QUEUE_USAGE\",\n \"PG_OPCLASS_IS_VISIBLE\",\n \"PG_OPERATOR_IS_VISIBLE\",\n \"PG_OPFAMILY_IS_VISIBLE\",\n \"PG_OPTIONS_TO_TABLE\",\n \"PG_POSTMASTER_START_TIME\",\n \"PG_SAFE_SNAPSHOT_BLOCKING_PIDS\",\n \"PG_SNAPSHOT_XIP\",\n \"PG_SNAPSHOT_XMAX\",\n \"PG_SNAPSHOT_XMIN\",\n \"PG_STATISTICS_OBJ_IS_VISIBLE\",\n \"PG_TABLESPACE_DATABASES\",\n \"PG_TABLESPACE_LOCATION\",\n \"PG_TABLE_IS_VISIBLE\",\n \"PG_TRIGGER_DEPTH\",\n \"PG_TS_CONFIG_IS_VISIBLE\",\n \"PG_TS_DICT_IS_VISIBLE\",\n \"PG_TS_PARSER_IS_VISIBLE\",\n \"PG_TS_TEMPLATE_IS_VISIBLE\",\n \"PG_TYPEOF\",\n \"PG_TYPE_IS_VISIBLE\",\n \"PG_VISIBLE_IN_SNAPSHOT\",\n \"PG_XACT_COMMIT_TIMESTAMP\",\n \"PG_XACT_COMMIT_TIMESTAMP_ORIGIN\",\n \"PG_XACT_STATUS\",\n \"PQSERVERVERSION\",\n \"ROW_SECURITY_ACTIVE\",\n \"SESSION_USER\",\n \"SHOBJ_DESCRIPTION\",\n \"TO_REGCLASS\",\n \"TO_REGCOLLATION\",\n \"TO_REGNAMESPACE\",\n \"TO_REGOPER\",\n \"TO_REGOPERATOR\",\n \"TO_REGPROC\",\n \"TO_REGPROCEDURE\",\n \"TO_REGROLE\",\n \"TO_REGTYPE\",\n \"TXID_CURRENT\",\n \"TXID_CURRENT_IF_ASSIGNED\",\n \"TXID_CURRENT_SNAPSHOT\",\n \"TXID_SNAPSHOT_XIP\",\n \"TXID_SNAPSHOT_XMAX\",\n \"TXID_SNAPSHOT_XMIN\",\n \"TXID_STATUS\",\n \"TXID_VISIBLE_IN_SNAPSHOT\",\n \"USER\",\n \"VERSION\",\n // https://www.postgresql.org/docs/14/functions-admin.html\n \"BRIN_DESUMMARIZE_RANGE\",\n \"BRIN_SUMMARIZE_NEW_VALUES\",\n \"BRIN_SUMMARIZE_RANGE\",\n \"CONVERT_FROM\",\n \"CURRENT_SETTING\",\n \"GIN_CLEAN_PENDING_LIST\",\n \"PG_ADVISORY_LOCK\",\n \"PG_ADVISORY_LOCK_SHARED\",\n \"PG_ADVISORY_UNLOCK\",\n \"PG_ADVISORY_UNLOCK_ALL\",\n \"PG_ADVISORY_UNLOCK_SHARED\",\n \"PG_ADVISORY_XACT_LOCK\",\n \"PG_ADVISORY_XACT_LOCK_SHARED\",\n \"PG_BACKUP_START_TIME\",\n \"PG_CANCEL_BACKEND\",\n \"PG_COLLATION_ACTUAL_VERSION\",\n \"PG_COLUMN_COMPRESSION\",\n \"PG_COLUMN_SIZE\",\n \"PG_COPY_LOGICAL_REPLICATION_SLOT\",\n \"PG_COPY_PHYSICAL_REPLICATION_SLOT\",\n \"PG_CREATE_LOGICAL_REPLICATION_SLOT\",\n \"PG_CREATE_PHYSICAL_REPLICATION_SLOT\",\n \"PG_CREATE_RESTORE_POINT\",\n \"PG_CURRENT_WAL_FLUSH_LSN\",\n \"PG_CURRENT_WAL_INSERT_LSN\",\n \"PG_CURRENT_WAL_LSN\",\n \"PG_DATABASE_SIZE\",\n \"PG_DROP_REPLICATION_SLOT\",\n \"PG_EXPORT_SNAPSHOT\",\n \"PG_FILENODE_RELATION\",\n \"PG_GET_WAL_REPLAY_PAUSE_STATE\",\n \"PG_IMPORT_SYSTEM_COLLATIONS\",\n \"PG_INDEXES_SIZE\",\n \"PG_IS_IN_BACKUP\",\n \"PG_IS_IN_RECOVERY\",\n \"PG_IS_WAL_REPLAY_PAUSED\",\n \"PG_LAST_WAL_RECEIVE_LSN\",\n \"PG_LAST_WAL_REPLAY_LSN\",\n \"PG_LAST_XACT_REPLAY_TIMESTAMP\",\n \"PG_LOGICAL_EMIT_MESSAGE\",\n \"PG_LOGICAL_SLOT_GET_BINARY_CHANGES\",\n \"PG_LOGICAL_SLOT_GET_CHANGES\",\n \"PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES\",\n \"PG_LOGICAL_SLOT_PEEK_CHANGES\",\n \"PG_LOG_BACKEND_MEMORY_CONTEXTS\",\n \"PG_LS_ARCHIVE_STATUSDIR\",\n \"PG_LS_DIR\",\n \"PG_LS_LOGDIR\",\n \"PG_LS_TMPDIR\",\n \"PG_LS_WALDIR\",\n \"PG_PARTITION_ANCESTORS\",\n \"PG_PARTITION_ROOT\",\n \"PG_PARTITION_TREE\",\n \"PG_PROMOTE\",\n \"PG_READ_BINARY_FILE\",\n \"PG_READ_FILE\",\n \"PG_RELATION_FILENODE\",\n \"PG_RELATION_FILEPATH\",\n \"PG_RELATION_SIZE\",\n \"PG_RELOAD_CONF\",\n \"PG_REPLICATION_ORIGIN_ADVANCE\",\n \"PG_REPLICATION_ORIGIN_CREATE\",\n \"PG_REPLICATION_ORIGIN_DROP\",\n \"PG_REPLICATION_ORIGIN_OID\",\n \"PG_REPLICATION_ORIGIN_PROGRESS\",\n \"PG_REPLICATION_ORIGIN_SESSION_IS_SETUP\",\n \"PG_REPLICATION_ORIGIN_SESSION_PROGRESS\",\n \"PG_REPLICATION_ORIGIN_SESSION_RESET\",\n \"PG_REPLICATION_ORIGIN_SESSION_SETUP\",\n \"PG_REPLICATION_ORIGIN_XACT_RESET\",\n \"PG_REPLICATION_ORIGIN_XACT_SETUP\",\n \"PG_REPLICATION_SLOT_ADVANCE\",\n \"PG_ROTATE_LOGFILE\",\n \"PG_SIZE_BYTES\",\n \"PG_SIZE_PRETTY\",\n \"PG_START_BACKUP\",\n \"PG_STAT_FILE\",\n \"PG_STOP_BACKUP\",\n \"PG_SWITCH_WAL\",\n \"PG_TABLESPACE_SIZE\",\n \"PG_TABLE_SIZE\",\n \"PG_TERMINATE_BACKEND\",\n \"PG_TOTAL_RELATION_SIZE\",\n \"PG_TRY_ADVISORY_LOCK\",\n \"PG_TRY_ADVISORY_LOCK_SHARED\",\n \"PG_TRY_ADVISORY_XACT_LOCK\",\n \"PG_TRY_ADVISORY_XACT_LOCK_SHARED\",\n \"PG_WALFILE_NAME\",\n \"PG_WALFILE_NAME_OFFSET\",\n \"PG_WAL_LSN_DIFF\",\n \"PG_WAL_REPLAY_PAUSE\",\n \"PG_WAL_REPLAY_RESUME\",\n \"SET_CONFIG\",\n // https://www.postgresql.org/docs/14/functions-trigger.html\n \"SUPPRESS_REDUNDANT_UPDATES_TRIGGER\",\n \"TSVECTOR_UPDATE_TRIGGER\",\n \"TSVECTOR_UPDATE_TRIGGER_COLUMN\",\n // https://www.postgresql.org/docs/14/functions-event-triggers.html\n \"PG_EVENT_TRIGGER_DDL_COMMANDS\",\n \"PG_EVENT_TRIGGER_DROPPED_OBJECTS\",\n \"PG_EVENT_TRIGGER_TABLE_REWRITE_OID\",\n \"PG_EVENT_TRIGGER_TABLE_REWRITE_REASON\",\n \"PG_GET_OBJECT_ADDRESS\",\n // https://www.postgresql.org/docs/14/functions-statistics.html\n \"PG_MCV_LIST_ITEMS\",\n // cast\n \"CAST\"\n];\n\n// src/languages/postgresql/postgresql.keywords.ts\nvar keywords10 = [\n // https://www.postgresql.org/docs/14/sql-keywords-appendix.html\n \"ALL\",\n // reserved\n \"ANALYSE\",\n // reserved\n \"ANALYZE\",\n // reserved\n \"AND\",\n // reserved\n \"ANY\",\n // reserved\n \"AS\",\n // reserved, requires AS\n \"ASC\",\n // reserved\n \"ASYMMETRIC\",\n // reserved\n \"AUTHORIZATION\",\n // reserved (can be function or type)\n \"BETWEEN\",\n // (cannot be function or type)\n \"BINARY\",\n // reserved (can be function or type)\n \"BOTH\",\n // reserved\n \"CASE\",\n // reserved\n \"CAST\",\n // reserved\n \"CHECK\",\n // reserved\n \"COLLATE\",\n // reserved\n \"COLLATION\",\n // reserved (can be function or type)\n \"COLUMN\",\n // reserved\n \"CONCURRENTLY\",\n // reserved (can be function or type)\n \"CONSTRAINT\",\n // reserved\n \"CREATE\",\n // reserved, requires AS\n \"CROSS\",\n // reserved (can be function or type)\n \"CURRENT_CATALOG\",\n // reserved\n \"CURRENT_DATE\",\n // reserved\n \"CURRENT_ROLE\",\n // reserved\n \"CURRENT_SCHEMA\",\n // reserved (can be function or type)\n \"CURRENT_TIME\",\n // reserved\n \"CURRENT_TIMESTAMP\",\n // reserved\n \"CURRENT_USER\",\n // reserved\n \"DAY\",\n // requires AS\n \"DEFAULT\",\n // reserved\n \"DEFERRABLE\",\n // reserved\n \"DESC\",\n // reserved\n \"DISTINCT\",\n // reserved\n \"DO\",\n // reserved\n \"ELSE\",\n // reserved\n \"END\",\n // reserved\n \"EXCEPT\",\n // reserved, requires AS\n \"EXISTS\",\n // (cannot be function or type)\n \"FALSE\",\n // reserved\n \"FETCH\",\n // reserved, requires AS\n \"FILTER\",\n // requires AS\n \"FOR\",\n // reserved, requires AS\n \"FOREIGN\",\n // reserved\n \"FREEZE\",\n // reserved (can be function or type)\n \"FROM\",\n // reserved, requires AS\n \"FULL\",\n // reserved (can be function or type)\n \"GRANT\",\n // reserved, requires AS\n \"GROUP\",\n // reserved, requires AS\n \"HAVING\",\n // reserved, requires AS\n \"HOUR\",\n // requires AS\n \"ILIKE\",\n // reserved (can be function or type)\n \"IN\",\n // reserved\n \"INITIALLY\",\n // reserved\n \"INNER\",\n // reserved (can be function or type)\n \"INOUT\",\n // (cannot be function or type)\n \"INTERSECT\",\n // reserved, requires AS\n \"INTO\",\n // reserved, requires AS\n \"IS\",\n // reserved (can be function or type)\n \"ISNULL\",\n // reserved (can be function or type), requires AS\n \"JOIN\",\n // reserved (can be function or type)\n \"LATERAL\",\n // reserved\n \"LEADING\",\n // reserved\n \"LEFT\",\n // reserved (can be function or type)\n \"LIKE\",\n // reserved (can be function or type)\n \"LIMIT\",\n // reserved, requires AS\n \"LOCALTIME\",\n // reserved\n \"LOCALTIMESTAMP\",\n // reserved\n \"MINUTE\",\n // requires AS\n \"MONTH\",\n // requires AS\n \"NATURAL\",\n // reserved (can be function or type)\n \"NOT\",\n // reserved\n \"NOTNULL\",\n // reserved (can be function or type), requires AS\n \"NULL\",\n // reserved\n \"NULLIF\",\n // (cannot be function or type)\n \"OFFSET\",\n // reserved, requires AS\n \"ON\",\n // reserved, requires AS\n \"ONLY\",\n // reserved\n \"OR\",\n // reserved\n \"ORDER\",\n // reserved, requires AS\n \"OUT\",\n // (cannot be function or type)\n \"OUTER\",\n // reserved (can be function or type)\n \"OVER\",\n // requires AS\n \"OVERLAPS\",\n // reserved (can be function or type), requires AS\n \"PLACING\",\n // reserved\n \"PRIMARY\",\n // reserved\n \"REFERENCES\",\n // reserved\n \"RETURNING\",\n // reserved, requires AS\n \"RIGHT\",\n // reserved (can be function or type)\n \"ROW\",\n // (cannot be function or type)\n \"SECOND\",\n // requires AS\n \"SELECT\",\n // reserved\n \"SESSION_USER\",\n // reserved\n \"SIMILAR\",\n // reserved (can be function or type)\n \"SOME\",\n // reserved\n \"SYMMETRIC\",\n // reserved\n \"TABLE\",\n // reserved\n \"TABLESAMPLE\",\n // reserved (can be function or type)\n \"THEN\",\n // reserved\n \"TO\",\n // reserved, requires AS\n \"TRAILING\",\n // reserved\n \"TRUE\",\n // reserved\n \"UNION\",\n // reserved, requires AS\n \"UNIQUE\",\n // reserved\n \"USER\",\n // reserved\n \"USING\",\n // reserved\n \"VALUES\",\n // (cannot be function or type)\n \"VARIADIC\",\n // reserved\n \"VERBOSE\",\n // reserved (can be function or type)\n \"WHEN\",\n // reserved\n \"WHERE\",\n // reserved, requires AS\n \"WINDOW\",\n // reserved, requires AS\n \"WITH\",\n // reserved, requires AS\n \"WITHIN\",\n // requires AS\n \"WITHOUT\",\n // requires AS\n \"YEAR\"\n // requires AS\n];\nvar dataTypes10 = [\n // https://www.postgresql.org/docs/current/datatype.html\n \"ARRAY\",\n // reserved, requires AS\n \"BIGINT\",\n // (cannot be function or type)\n \"BIT\",\n // (cannot be function or type)\n \"BIT VARYING\",\n \"BOOL\",\n // (cannot be function or type)\n \"BOOLEAN\",\n // (cannot be function or type)\n \"CHAR\",\n // (cannot be function or type), requires AS\n \"CHARACTER\",\n // (cannot be function or type), requires AS\n \"CHARACTER VARYING\",\n \"DECIMAL\",\n // (cannot be function or type)\n \"DEC\",\n // (cannot be function or type)\n \"DOUBLE\",\n \"ENUM\",\n \"FLOAT\",\n // (cannot be function or type)\n \"INT\",\n // (cannot be function or type)\n \"INTEGER\",\n // (cannot be function or type)\n \"INTERVAL\",\n // (cannot be function or type)\n \"NCHAR\",\n // (cannot be function or type)\n \"NUMERIC\",\n // (cannot be function or type)\n \"PRECISION\",\n // (cannot be function or type), requires AS\n \"REAL\",\n // (cannot be function or type)\n \"SMALLINT\",\n // (cannot be function or type)\n \"TEXT\",\n \"TIME\",\n // (cannot be function or type)\n \"TIMESTAMP\",\n // (cannot be function or type)\n \"TIMESTAMPTZ\",\n // (cannot be function or type)\n \"VARCHAR\",\n // (cannot be function or type)\n \"XML\",\n \"ZONE\"\n];\n\n// src/languages/postgresql/postgresql.formatter.ts\nvar reservedSelect10 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses10 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY [ALL | DISTINCT]\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n \"FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]\",\n // Data manipulation\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n \"DEFAULT VALUES\",\n // - update:\n \"SET\",\n // other\n \"RETURNING\"\n]);\nvar standardOnelineClauses9 = expandPhrases([\n \"CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses9 = expandPhrases([\n // - create\n \"CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW\",\n \"CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE [ONLY]\",\n \"WHERE CURRENT OF\",\n // - insert:\n \"ON CONFLICT\",\n // - delete:\n \"DELETE FROM [ONLY]\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE [IF EXISTS] [ONLY]\",\n \"ALTER TABLE ALL IN TABLESPACE\",\n \"RENAME [COLUMN]\",\n \"RENAME TO\",\n \"ADD [COLUMN] [IF NOT EXISTS]\",\n \"DROP [COLUMN] [IF EXISTS]\",\n \"ALTER [COLUMN]\",\n \"SET DATA TYPE\",\n // for alter column\n \"{SET | DROP} DEFAULT\",\n // for alter column\n \"{SET | DROP} NOT NULL\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE] [ONLY]\",\n // other\n \"SET SCHEMA\",\n \"AFTER\",\n // https://www.postgresql.org/docs/14/sql-commands.html\n \"ABORT\",\n \"ALTER AGGREGATE\",\n \"ALTER COLLATION\",\n \"ALTER CONVERSION\",\n \"ALTER DATABASE\",\n \"ALTER DEFAULT PRIVILEGES\",\n \"ALTER DOMAIN\",\n \"ALTER EVENT TRIGGER\",\n \"ALTER EXTENSION\",\n \"ALTER FOREIGN DATA WRAPPER\",\n \"ALTER FOREIGN TABLE\",\n \"ALTER FUNCTION\",\n \"ALTER GROUP\",\n \"ALTER INDEX\",\n \"ALTER LANGUAGE\",\n \"ALTER LARGE OBJECT\",\n \"ALTER MATERIALIZED VIEW\",\n \"ALTER OPERATOR\",\n \"ALTER OPERATOR CLASS\",\n \"ALTER OPERATOR FAMILY\",\n \"ALTER POLICY\",\n \"ALTER PROCEDURE\",\n \"ALTER PUBLICATION\",\n \"ALTER ROLE\",\n \"ALTER ROUTINE\",\n \"ALTER RULE\",\n \"ALTER SCHEMA\",\n \"ALTER SEQUENCE\",\n \"ALTER SERVER\",\n \"ALTER STATISTICS\",\n \"ALTER SUBSCRIPTION\",\n \"ALTER SYSTEM\",\n \"ALTER TABLESPACE\",\n \"ALTER TEXT SEARCH CONFIGURATION\",\n \"ALTER TEXT SEARCH DICTIONARY\",\n \"ALTER TEXT SEARCH PARSER\",\n \"ALTER TEXT SEARCH TEMPLATE\",\n \"ALTER TRIGGER\",\n \"ALTER TYPE\",\n \"ALTER USER\",\n \"ALTER USER MAPPING\",\n \"ALTER VIEW\",\n \"ANALYZE\",\n \"BEGIN\",\n \"CALL\",\n \"CHECKPOINT\",\n \"CLOSE\",\n \"CLUSTER\",\n \"COMMIT\",\n \"COMMIT PREPARED\",\n \"COPY\",\n \"CREATE ACCESS METHOD\",\n \"CREATE AGGREGATE\",\n \"CREATE CAST\",\n \"CREATE COLLATION\",\n \"CREATE CONVERSION\",\n \"CREATE DATABASE\",\n \"CREATE DOMAIN\",\n \"CREATE EVENT TRIGGER\",\n \"CREATE EXTENSION\",\n \"CREATE FOREIGN DATA WRAPPER\",\n \"CREATE FOREIGN TABLE\",\n \"CREATE FUNCTION\",\n \"CREATE GROUP\",\n \"CREATE INDEX\",\n \"CREATE LANGUAGE\",\n \"CREATE OPERATOR\",\n \"CREATE OPERATOR CLASS\",\n \"CREATE OPERATOR FAMILY\",\n \"CREATE POLICY\",\n \"CREATE PROCEDURE\",\n \"CREATE PUBLICATION\",\n \"CREATE ROLE\",\n \"CREATE RULE\",\n \"CREATE SCHEMA\",\n \"CREATE SEQUENCE\",\n \"CREATE SERVER\",\n \"CREATE STATISTICS\",\n \"CREATE SUBSCRIPTION\",\n \"CREATE TABLESPACE\",\n \"CREATE TEXT SEARCH CONFIGURATION\",\n \"CREATE TEXT SEARCH DICTIONARY\",\n \"CREATE TEXT SEARCH PARSER\",\n \"CREATE TEXT SEARCH TEMPLATE\",\n \"CREATE TRANSFORM\",\n \"CREATE TRIGGER\",\n \"CREATE TYPE\",\n \"CREATE USER\",\n \"CREATE USER MAPPING\",\n \"DEALLOCATE\",\n \"DECLARE\",\n \"DISCARD\",\n \"DROP ACCESS METHOD\",\n \"DROP AGGREGATE\",\n \"DROP CAST\",\n \"DROP COLLATION\",\n \"DROP CONVERSION\",\n \"DROP DATABASE\",\n \"DROP DOMAIN\",\n \"DROP EVENT TRIGGER\",\n \"DROP EXTENSION\",\n \"DROP FOREIGN DATA WRAPPER\",\n \"DROP FOREIGN TABLE\",\n \"DROP FUNCTION\",\n \"DROP GROUP\",\n \"DROP INDEX\",\n \"DROP LANGUAGE\",\n \"DROP MATERIALIZED VIEW\",\n \"DROP OPERATOR\",\n \"DROP OPERATOR CLASS\",\n \"DROP OPERATOR FAMILY\",\n \"DROP OWNED\",\n \"DROP POLICY\",\n \"DROP PROCEDURE\",\n \"DROP PUBLICATION\",\n \"DROP ROLE\",\n \"DROP ROUTINE\",\n \"DROP RULE\",\n \"DROP SCHEMA\",\n \"DROP SEQUENCE\",\n \"DROP SERVER\",\n \"DROP STATISTICS\",\n \"DROP SUBSCRIPTION\",\n \"DROP TABLESPACE\",\n \"DROP TEXT SEARCH CONFIGURATION\",\n \"DROP TEXT SEARCH DICTIONARY\",\n \"DROP TEXT SEARCH PARSER\",\n \"DROP TEXT SEARCH TEMPLATE\",\n \"DROP TRANSFORM\",\n \"DROP TRIGGER\",\n \"DROP TYPE\",\n \"DROP USER\",\n \"DROP USER MAPPING\",\n \"DROP VIEW\",\n \"EXECUTE\",\n \"EXPLAIN\",\n \"FETCH\",\n \"GRANT\",\n \"IMPORT FOREIGN SCHEMA\",\n \"LISTEN\",\n \"LOAD\",\n \"LOCK\",\n \"MOVE\",\n \"NOTIFY\",\n \"PREPARE\",\n \"PREPARE TRANSACTION\",\n \"REASSIGN OWNED\",\n \"REFRESH MATERIALIZED VIEW\",\n \"REINDEX\",\n \"RELEASE SAVEPOINT\",\n \"RESET\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"ROLLBACK PREPARED\",\n \"ROLLBACK TO SAVEPOINT\",\n \"SAVEPOINT\",\n \"SECURITY LABEL\",\n \"SELECT INTO\",\n \"SET CONSTRAINTS\",\n \"SET ROLE\",\n \"SET SESSION AUTHORIZATION\",\n \"SET TRANSACTION\",\n \"SHOW\",\n \"START TRANSACTION\",\n \"UNLISTEN\",\n \"VACUUM\"\n]);\nvar reservedSetOperations10 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT [ALL | DISTINCT]\",\n \"INTERSECT [ALL | DISTINCT]\"\n]);\nvar reservedJoins10 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\"\n]);\nvar reservedPhrases10 = expandPhrases([\n \"PRIMARY KEY\",\n \"GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY\",\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\",\n \"{ROWS | RANGE | GROUPS} BETWEEN\",\n // https://www.postgresql.org/docs/current/datatype-datetime.html\n \"[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE\",\n // comparison operator\n \"IS [NOT] DISTINCT FROM\"\n]);\nvar postgresql = {\n name: \"postgresql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect10,\n reservedClauses: [...reservedClauses10, ...standardOnelineClauses9, ...tabularOnelineClauses9],\n reservedSetOperations: reservedSetOperations10,\n reservedJoins: reservedJoins10,\n reservedPhrases: reservedPhrases10,\n reservedKeywords: keywords10,\n reservedDataTypes: dataTypes10,\n reservedFunctionNames: functions10,\n nestedBlockComments: true,\n extraParens: [\"[]\"],\n stringTypes: [\n \"$$\",\n { quote: \"''-qq\", prefixes: [\"U&\"] },\n { quote: \"''-qq-bs\", prefixes: [\"E\"], requirePrefix: true },\n { quote: \"''-raw\", prefixes: [\"B\", \"X\"], requirePrefix: true }\n ],\n identTypes: [{ quote: '\"\"-qq', prefixes: [\"U&\"] }],\n identChars: { rest: \"$\" },\n paramTypes: { numbered: [\"$\"] },\n operators: [\n // Arithmetic\n \"%\",\n \"^\",\n \"|/\",\n \"||/\",\n \"@\",\n // Assignment\n \":=\",\n // Bitwise\n \"&\",\n \"|\",\n \"#\",\n \"~\",\n \"<<\",\n \">>\",\n // Byte comparison\n \"~>~\",\n \"~<~\",\n \"~>=~\",\n \"~<=~\",\n // Geometric\n \"@-@\",\n \"@@\",\n \"##\",\n \"<->\",\n \"&&\",\n \"&<\",\n \"&>\",\n \"<<|\",\n \"&<|\",\n \"|>>\",\n \"|&>\",\n \"<^\",\n \"^>\",\n \"?#\",\n \"?-\",\n \"?|\",\n \"?-|\",\n \"?||\",\n \"@>\",\n \"<@\",\n \"~=\",\n // JSON\n \"?\",\n \"@?\",\n \"?&\",\n \"->\",\n \"->>\",\n \"#>\",\n \"#>>\",\n \"#-\",\n // Named function params\n \"=>\",\n // Network address\n \">>=\",\n \"<<=\",\n // Pattern matching\n \"~~\",\n \"~~*\",\n \"!~~\",\n \"!~~*\",\n // POSIX RegExp\n \"~\",\n \"~*\",\n \"!~\",\n \"!~*\",\n // Range/multirange\n \"-|-\",\n // String concatenation\n \"||\",\n // Text search\n \"@@@\",\n \"!!\",\n \"^@\",\n // Trigram/trigraph\n \"<%\",\n \"%>\",\n \"<<%\",\n \"%>>\",\n \"<<->\",\n \"<->>\",\n \"<<<->\",\n \"<->>>\",\n // Type cast\n \"::\",\n \":\"\n ]\n },\n formatOptions: {\n alwaysDenseOperators: [\"::\", \":\"],\n onelineClauses: [...standardOnelineClauses9, ...tabularOnelineClauses9],\n tabularOnelineClauses: tabularOnelineClauses9\n }\n};\n\n// src/languages/redshift/redshift.functions.ts\nvar functions11 = [\n // https://docs.aws.amazon.com/redshift/latest/dg/c_Aggregate_Functions.html\n \"ANY_VALUE\",\n \"APPROXIMATE PERCENTILE_DISC\",\n \"AVG\",\n \"COUNT\",\n \"LISTAGG\",\n \"MAX\",\n \"MEDIAN\",\n \"MIN\",\n \"PERCENTILE_CONT\",\n \"STDDEV_SAMP\",\n \"STDDEV_POP\",\n \"SUM\",\n \"VAR_SAMP\",\n \"VAR_POP\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_Array_Functions.html\n \"array\",\n \"array_concat\",\n \"array_flatten\",\n \"get_array_length\",\n \"split_to_array\",\n \"subarray\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_bitwise_aggregate_functions.html\n \"BIT_AND\",\n \"BIT_OR\",\n \"BOOL_AND\",\n \"BOOL_OR\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_conditional_expressions.html\n \"COALESCE\",\n \"DECODE\",\n \"GREATEST\",\n \"LEAST\",\n \"NVL\",\n \"NVL2\",\n \"NULLIF\",\n // https://docs.aws.amazon.com/redshift/latest/dg/Date_functions_header.html\n \"ADD_MONTHS\",\n \"AT TIME ZONE\",\n \"CONVERT_TIMEZONE\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"DATE_CMP\",\n \"DATE_CMP_TIMESTAMP\",\n \"DATE_CMP_TIMESTAMPTZ\",\n \"DATE_PART_YEAR\",\n \"DATEADD\",\n \"DATEDIFF\",\n \"DATE_PART\",\n \"DATE_TRUNC\",\n \"EXTRACT\",\n \"GETDATE\",\n \"INTERVAL_CMP\",\n \"LAST_DAY\",\n \"MONTHS_BETWEEN\",\n \"NEXT_DAY\",\n \"SYSDATE\",\n \"TIMEOFDAY\",\n \"TIMESTAMP_CMP\",\n \"TIMESTAMP_CMP_DATE\",\n \"TIMESTAMP_CMP_TIMESTAMPTZ\",\n \"TIMESTAMPTZ_CMP\",\n \"TIMESTAMPTZ_CMP_DATE\",\n \"TIMESTAMPTZ_CMP_TIMESTAMP\",\n \"TIMEZONE\",\n \"TO_TIMESTAMP\",\n \"TRUNC\",\n // https://docs.aws.amazon.com/redshift/latest/dg/geospatial-functions.html\n \"AddBBox\",\n \"DropBBox\",\n \"GeometryType\",\n \"ST_AddPoint\",\n \"ST_Angle\",\n \"ST_Area\",\n \"ST_AsBinary\",\n \"ST_AsEWKB\",\n \"ST_AsEWKT\",\n \"ST_AsGeoJSON\",\n \"ST_AsText\",\n \"ST_Azimuth\",\n \"ST_Boundary\",\n \"ST_Collect\",\n \"ST_Contains\",\n \"ST_ContainsProperly\",\n \"ST_ConvexHull\",\n \"ST_CoveredBy\",\n \"ST_Covers\",\n \"ST_Crosses\",\n \"ST_Dimension\",\n \"ST_Disjoint\",\n \"ST_Distance\",\n \"ST_DistanceSphere\",\n \"ST_DWithin\",\n \"ST_EndPoint\",\n \"ST_Envelope\",\n \"ST_Equals\",\n \"ST_ExteriorRing\",\n \"ST_Force2D\",\n \"ST_Force3D\",\n \"ST_Force3DM\",\n \"ST_Force3DZ\",\n \"ST_Force4D\",\n \"ST_GeometryN\",\n \"ST_GeometryType\",\n \"ST_GeomFromEWKB\",\n \"ST_GeomFromEWKT\",\n \"ST_GeomFromText\",\n \"ST_GeomFromWKB\",\n \"ST_InteriorRingN\",\n \"ST_Intersects\",\n \"ST_IsPolygonCCW\",\n \"ST_IsPolygonCW\",\n \"ST_IsClosed\",\n \"ST_IsCollection\",\n \"ST_IsEmpty\",\n \"ST_IsSimple\",\n \"ST_IsValid\",\n \"ST_Length\",\n \"ST_LengthSphere\",\n \"ST_Length2D\",\n \"ST_LineFromMultiPoint\",\n \"ST_LineInterpolatePoint\",\n \"ST_M\",\n \"ST_MakeEnvelope\",\n \"ST_MakeLine\",\n \"ST_MakePoint\",\n \"ST_MakePolygon\",\n \"ST_MemSize\",\n \"ST_MMax\",\n \"ST_MMin\",\n \"ST_Multi\",\n \"ST_NDims\",\n \"ST_NPoints\",\n \"ST_NRings\",\n \"ST_NumGeometries\",\n \"ST_NumInteriorRings\",\n \"ST_NumPoints\",\n \"ST_Perimeter\",\n \"ST_Perimeter2D\",\n \"ST_Point\",\n \"ST_PointN\",\n \"ST_Points\",\n \"ST_Polygon\",\n \"ST_RemovePoint\",\n \"ST_Reverse\",\n \"ST_SetPoint\",\n \"ST_SetSRID\",\n \"ST_Simplify\",\n \"ST_SRID\",\n \"ST_StartPoint\",\n \"ST_Touches\",\n \"ST_Within\",\n \"ST_X\",\n \"ST_XMax\",\n \"ST_XMin\",\n \"ST_Y\",\n \"ST_YMax\",\n \"ST_YMin\",\n \"ST_Z\",\n \"ST_ZMax\",\n \"ST_ZMin\",\n \"SupportsBBox\",\n // https://docs.aws.amazon.com/redshift/latest/dg/hash-functions.html\n \"CHECKSUM\",\n \"FUNC_SHA1\",\n \"FNV_HASH\",\n \"MD5\",\n \"SHA\",\n \"SHA1\",\n \"SHA2\",\n // https://docs.aws.amazon.com/redshift/latest/dg/hyperloglog-functions.html\n \"HLL\",\n \"HLL_CREATE_SKETCH\",\n \"HLL_CARDINALITY\",\n \"HLL_COMBINE\",\n // https://docs.aws.amazon.com/redshift/latest/dg/json-functions.html\n \"IS_VALID_JSON\",\n \"IS_VALID_JSON_ARRAY\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_EXTRACT_ARRAY_ELEMENT_TEXT\",\n \"JSON_EXTRACT_PATH_TEXT\",\n \"JSON_PARSE\",\n \"JSON_SERIALIZE\",\n // https://docs.aws.amazon.com/redshift/latest/dg/Math_functions.html\n \"ABS\",\n \"ACOS\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"CBRT\",\n \"CEILING\",\n \"CEIL\",\n \"COS\",\n \"COT\",\n \"DEGREES\",\n \"DEXP\",\n \"DLOG1\",\n \"DLOG10\",\n \"EXP\",\n \"FLOOR\",\n \"LN\",\n \"LOG\",\n \"MOD\",\n \"PI\",\n \"POWER\",\n \"RADIANS\",\n \"RANDOM\",\n \"ROUND\",\n \"SIN\",\n \"SIGN\",\n \"SQRT\",\n \"TAN\",\n \"TO_HEX\",\n \"TRUNC\",\n // https://docs.aws.amazon.com/redshift/latest/dg/ml-function.html\n \"EXPLAIN_MODEL\",\n // https://docs.aws.amazon.com/redshift/latest/dg/String_functions_header.html\n \"ASCII\",\n \"BPCHARCMP\",\n \"BTRIM\",\n \"BTTEXT_PATTERN_CMP\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHARINDEX\",\n \"CHR\",\n \"COLLATE\",\n \"CONCAT\",\n \"CRC32\",\n \"DIFFERENCE\",\n \"INITCAP\",\n \"LEFT\",\n \"RIGHT\",\n \"LEN\",\n \"LENGTH\",\n \"LOWER\",\n \"LPAD\",\n \"RPAD\",\n \"LTRIM\",\n \"OCTETINDEX\",\n \"OCTET_LENGTH\",\n \"POSITION\",\n \"QUOTE_IDENT\",\n \"QUOTE_LITERAL\",\n \"REGEXP_COUNT\",\n \"REGEXP_INSTR\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REPEAT\",\n \"REPLACE\",\n \"REPLICATE\",\n \"REVERSE\",\n \"RTRIM\",\n \"SOUNDEX\",\n \"SPLIT_PART\",\n \"STRPOS\",\n \"STRTOL\",\n \"SUBSTRING\",\n \"TEXTLEN\",\n \"TRANSLATE\",\n \"TRIM\",\n \"UPPER\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_Type_Info_Functions.html\n \"decimal_precision\",\n \"decimal_scale\",\n \"is_array\",\n \"is_bigint\",\n \"is_boolean\",\n \"is_char\",\n \"is_decimal\",\n \"is_float\",\n \"is_integer\",\n \"is_object\",\n \"is_scalar\",\n \"is_smallint\",\n \"is_varchar\",\n \"json_typeof\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_Window_functions.html\n \"AVG\",\n \"COUNT\",\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"FIRST_VALUE\",\n \"LAST_VALUE\",\n \"LAG\",\n \"LEAD\",\n \"LISTAGG\",\n \"MAX\",\n \"MEDIAN\",\n \"MIN\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"ROW_NUMBER\",\n \"STDDEV_SAMP\",\n \"STDDEV_POP\",\n \"SUM\",\n \"VAR_SAMP\",\n \"VAR_POP\",\n // https://docs.aws.amazon.com/redshift/latest/dg/r_Data_type_formatting.html\n \"CAST\",\n \"CONVERT\",\n \"TO_CHAR\",\n \"TO_DATE\",\n \"TO_NUMBER\",\n \"TEXT_TO_INT_ALT\",\n \"TEXT_TO_NUMERIC_ALT\",\n // https://docs.aws.amazon.com/redshift/latest/dg/r_System_administration_functions.html\n \"CHANGE_QUERY_PRIORITY\",\n \"CHANGE_SESSION_PRIORITY\",\n \"CHANGE_USER_PRIORITY\",\n \"CURRENT_SETTING\",\n \"PG_CANCEL_BACKEND\",\n \"PG_TERMINATE_BACKEND\",\n \"REBOOT_CLUSTER\",\n \"SET_CONFIG\",\n // https://docs.aws.amazon.com/redshift/latest/dg/r_System_information_functions.html\n \"CURRENT_AWS_ACCOUNT\",\n \"CURRENT_DATABASE\",\n \"CURRENT_NAMESPACE\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_SCHEMAS\",\n \"CURRENT_USER\",\n \"CURRENT_USER_ID\",\n \"HAS_ASSUMEROLE_PRIVILEGE\",\n \"HAS_DATABASE_PRIVILEGE\",\n \"HAS_SCHEMA_PRIVILEGE\",\n \"HAS_TABLE_PRIVILEGE\",\n \"PG_BACKEND_PID\",\n \"PG_GET_COLS\",\n \"PG_GET_GRANTEE_BY_IAM_ROLE\",\n \"PG_GET_IAM_ROLE_BY_USER\",\n \"PG_GET_LATE_BINDING_VIEW_COLS\",\n \"PG_LAST_COPY_COUNT\",\n \"PG_LAST_COPY_ID\",\n \"PG_LAST_UNLOAD_ID\",\n \"PG_LAST_QUERY_ID\",\n \"PG_LAST_UNLOAD_COUNT\",\n \"SESSION_USER\",\n \"SLICE_NUM\",\n \"USER\",\n \"VERSION\"\n];\n\n// src/languages/redshift/redshift.keywords.ts\nvar keywords11 = [\n // https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html\n \"AES128\",\n \"AES256\",\n \"ALL\",\n \"ALLOWOVERWRITE\",\n \"ANY\",\n \"AS\",\n \"ASC\",\n \"AUTHORIZATION\",\n \"BACKUP\",\n \"BETWEEN\",\n \"BINARY\",\n \"BOTH\",\n \"CHECK\",\n \"COLUMN\",\n \"CONSTRAINT\",\n \"CREATE\",\n \"CROSS\",\n \"DEFAULT\",\n \"DEFERRABLE\",\n \"DEFLATE\",\n \"DEFRAG\",\n \"DESC\",\n \"DISABLE\",\n \"DISTINCT\",\n \"DO\",\n \"ENABLE\",\n \"ENCODE\",\n \"ENCRYPT\",\n \"ENCRYPTION\",\n \"EXPLICIT\",\n \"FALSE\",\n \"FOR\",\n \"FOREIGN\",\n \"FREEZE\",\n \"FROM\",\n \"FULL\",\n \"GLOBALDICT256\",\n \"GLOBALDICT64K\",\n \"GROUP\",\n \"IDENTITY\",\n \"IGNORE\",\n \"ILIKE\",\n \"IN\",\n \"INITIALLY\",\n \"INNER\",\n \"INTO\",\n \"IS\",\n \"ISNULL\",\n \"LANGUAGE\",\n \"LEADING\",\n \"LIKE\",\n \"LIMIT\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LUN\",\n \"LUNS\",\n \"MINUS\",\n \"NATURAL\",\n \"NEW\",\n \"NOT\",\n \"NOTNULL\",\n \"NULL\",\n \"NULLS\",\n \"OFF\",\n \"OFFLINE\",\n \"OFFSET\",\n \"OID\",\n \"OLD\",\n \"ON\",\n \"ONLY\",\n \"OPEN\",\n \"ORDER\",\n \"OUTER\",\n \"OVERLAPS\",\n \"PARALLEL\",\n \"PARTITION\",\n \"PERCENT\",\n \"PERMISSIONS\",\n \"PLACING\",\n \"PRIMARY\",\n \"RECOVER\",\n \"REFERENCES\",\n \"REJECTLOG\",\n \"RESORT\",\n \"RESPECT\",\n \"RESTORE\",\n \"SIMILAR\",\n \"SNAPSHOT\",\n \"SOME\",\n \"SYSTEM\",\n \"TABLE\",\n \"TAG\",\n \"TDES\",\n \"THEN\",\n \"TIMESTAMP\",\n \"TO\",\n \"TOP\",\n \"TRAILING\",\n \"TRUE\",\n \"UNIQUE\",\n \"USING\",\n \"VERBOSE\",\n \"WALLET\",\n \"WITHOUT\",\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html\n \"ACCEPTANYDATE\",\n \"ACCEPTINVCHARS\",\n \"BLANKSASNULL\",\n \"DATEFORMAT\",\n \"EMPTYASNULL\",\n \"ENCODING\",\n \"ESCAPE\",\n \"EXPLICIT_IDS\",\n \"FILLRECORD\",\n \"IGNOREBLANKLINES\",\n \"IGNOREHEADER\",\n \"REMOVEQUOTES\",\n \"ROUNDEC\",\n \"TIMEFORMAT\",\n \"TRIMBLANKS\",\n \"TRUNCATECOLUMNS\",\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html\n \"COMPROWS\",\n \"COMPUPDATE\",\n \"MAXERROR\",\n \"NOLOAD\",\n \"STATUPDATE\",\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html\n \"FORMAT\",\n \"CSV\",\n \"DELIMITER\",\n \"FIXEDWIDTH\",\n \"SHAPEFILE\",\n \"AVRO\",\n \"JSON\",\n \"PARQUET\",\n \"ORC\",\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-authorization.html\n \"ACCESS_KEY_ID\",\n \"CREDENTIALS\",\n \"ENCRYPTED\",\n \"IAM_ROLE\",\n \"MASTER_SYMMETRIC_KEY\",\n \"SECRET_ACCESS_KEY\",\n \"SESSION_TOKEN\",\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-file-compression.html\n \"BZIP2\",\n \"GZIP\",\n \"LZOP\",\n \"ZSTD\",\n // https://docs.aws.amazon.com/redshift/latest/dg/r_COPY-alphabetical-parm-list.html\n \"MANIFEST\",\n \"READRATIO\",\n \"REGION\",\n \"SSH\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html\n \"RAW\",\n \"AZ64\",\n \"BYTEDICT\",\n \"DELTA\",\n \"DELTA32K\",\n \"LZO\",\n \"MOSTLY8\",\n \"MOSTLY16\",\n \"MOSTLY32\",\n \"RUNLENGTH\",\n \"TEXT255\",\n \"TEXT32K\",\n // misc\n // CREATE EXTERNAL SCHEMA (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html)\n \"CATALOG_ROLE\",\n \"SECRET_ARN\",\n \"EXTERNAL\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_choosing_dist_sort.html\n \"AUTO\",\n \"EVEN\",\n \"KEY\",\n \"PREDICATE\",\n // ANALYZE | ANALYSE (https://docs.aws.amazon.com/redshift/latest/dg/r_ANALYZE.html)\n // unknown\n \"COMPRESSION\"\n /**\n * Other keywords not included:\n * STL: https://docs.aws.amazon.com/redshift/latest/dg/c_intro_STL_tables.html\n * SVCS: https://docs.aws.amazon.com/redshift/latest/dg/svcs_views.html\n * SVL: https://docs.aws.amazon.com/redshift/latest/dg/svl_views.html\n * SVV: https://docs.aws.amazon.com/redshift/latest/dg/svv_views.html\n */\n];\nvar dataTypes11 = [\n // https://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html#r_Character_types-text-and-bpchar-types\n \"ARRAY\",\n \"BIGINT\",\n \"BPCHAR\",\n \"CHAR\",\n \"CHARACTER VARYING\",\n \"CHARACTER\",\n \"DECIMAL\",\n \"INT\",\n \"INT2\",\n \"INT4\",\n \"INT8\",\n \"INTEGER\",\n \"NCHAR\",\n \"NUMERIC\",\n \"NVARCHAR\",\n \"SMALLINT\",\n \"TEXT\",\n \"VARBYTE\",\n \"VARCHAR\"\n];\n\n// src/languages/redshift/redshift.formatter.ts\nvar reservedSelect11 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses11 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\"\n]);\nvar standardOnelineClauses10 = expandPhrases([\n \"CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses10 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE | MATERIALIZED] VIEW\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE [FROM]\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"ALTER TABLE APPEND\",\n \"ADD [COLUMN]\",\n \"DROP [COLUMN]\",\n \"RENAME TO\",\n \"RENAME COLUMN\",\n \"ALTER COLUMN\",\n \"TYPE\",\n // for alter column\n \"ENCODE\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // https://docs.aws.amazon.com/redshift/latest/dg/c_SQL_commands.html\n \"ABORT\",\n \"ALTER DATABASE\",\n \"ALTER DATASHARE\",\n \"ALTER DEFAULT PRIVILEGES\",\n \"ALTER GROUP\",\n \"ALTER MATERIALIZED VIEW\",\n \"ALTER PROCEDURE\",\n \"ALTER SCHEMA\",\n \"ALTER USER\",\n \"ANALYSE\",\n \"ANALYZE\",\n \"ANALYSE COMPRESSION\",\n \"ANALYZE COMPRESSION\",\n \"BEGIN\",\n \"CALL\",\n \"CANCEL\",\n \"CLOSE\",\n \"COMMIT\",\n \"COPY\",\n \"CREATE DATABASE\",\n \"CREATE DATASHARE\",\n \"CREATE EXTERNAL FUNCTION\",\n \"CREATE EXTERNAL SCHEMA\",\n \"CREATE EXTERNAL TABLE\",\n \"CREATE FUNCTION\",\n \"CREATE GROUP\",\n \"CREATE LIBRARY\",\n \"CREATE MODEL\",\n \"CREATE PROCEDURE\",\n \"CREATE SCHEMA\",\n \"CREATE USER\",\n \"DEALLOCATE\",\n \"DECLARE\",\n \"DESC DATASHARE\",\n \"DROP DATABASE\",\n \"DROP DATASHARE\",\n \"DROP FUNCTION\",\n \"DROP GROUP\",\n \"DROP LIBRARY\",\n \"DROP MODEL\",\n \"DROP MATERIALIZED VIEW\",\n \"DROP PROCEDURE\",\n \"DROP SCHEMA\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"DROP\",\n \"EXECUTE\",\n \"EXPLAIN\",\n \"FETCH\",\n \"GRANT\",\n \"LOCK\",\n \"PREPARE\",\n \"REFRESH MATERIALIZED VIEW\",\n \"RESET\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"SELECT INTO\",\n \"SET SESSION AUTHORIZATION\",\n \"SET SESSION CHARACTERISTICS\",\n \"SHOW\",\n \"SHOW EXTERNAL TABLE\",\n \"SHOW MODEL\",\n \"SHOW DATASHARES\",\n \"SHOW PROCEDURE\",\n \"SHOW TABLE\",\n \"SHOW VIEW\",\n \"START TRANSACTION\",\n \"UNLOAD\",\n \"VACUUM\"\n]);\nvar reservedSetOperations11 = expandPhrases([\"UNION [ALL]\", \"EXCEPT\", \"INTERSECT\", \"MINUS\"]);\nvar reservedJoins11 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\"\n]);\nvar reservedPhrases11 = expandPhrases([\n // https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html\n \"NULL AS\",\n // https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html\n \"DATA CATALOG\",\n \"HIVE METASTORE\",\n // in window specifications\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar redshift = {\n name: \"redshift\",\n tokenizerOptions: {\n reservedSelect: reservedSelect11,\n reservedClauses: [...reservedClauses11, ...standardOnelineClauses10, ...tabularOnelineClauses10],\n reservedSetOperations: reservedSetOperations11,\n reservedJoins: reservedJoins11,\n reservedPhrases: reservedPhrases11,\n reservedKeywords: keywords11,\n reservedDataTypes: dataTypes11,\n reservedFunctionNames: functions11,\n stringTypes: [\"''-qq\"],\n identTypes: [`\"\"-qq`],\n identChars: { first: \"#\" },\n paramTypes: { numbered: [\"$\"] },\n operators: [\n \"^\",\n \"%\",\n \"@\",\n \"|/\",\n \"||/\",\n \"&\",\n \"|\",\n // '#', conflicts with first char of identifier\n \"~\",\n \"<<\",\n \">>\",\n \"||\",\n \"::\"\n ]\n },\n formatOptions: {\n alwaysDenseOperators: [\"::\"],\n onelineClauses: [...standardOnelineClauses10, ...tabularOnelineClauses10],\n tabularOnelineClauses: tabularOnelineClauses10\n }\n};\n\n// src/languages/spark/spark.keywords.ts\nvar keywords12 = [\n // https://deepkb.com/CO_000013/en/kb/IMPORT-fbfa59f0-2bf1-31fe-bb7b-0f9efe9932c6/spark-sql-keywords\n \"ADD\",\n \"AFTER\",\n \"ALL\",\n \"ALTER\",\n \"ANALYZE\",\n \"AND\",\n \"ANTI\",\n \"ANY\",\n \"ARCHIVE\",\n \"AS\",\n \"ASC\",\n \"AT\",\n \"AUTHORIZATION\",\n \"BETWEEN\",\n \"BOTH\",\n \"BUCKET\",\n \"BUCKETS\",\n \"BY\",\n \"CACHE\",\n \"CASCADE\",\n \"CAST\",\n \"CHANGE\",\n \"CHECK\",\n \"CLEAR\",\n \"CLUSTER\",\n \"CLUSTERED\",\n \"CODEGEN\",\n \"COLLATE\",\n \"COLLECTION\",\n \"COLUMN\",\n \"COLUMNS\",\n \"COMMENT\",\n \"COMMIT\",\n \"COMPACT\",\n \"COMPACTIONS\",\n \"COMPUTE\",\n \"CONCATENATE\",\n \"CONSTRAINT\",\n \"COST\",\n \"CREATE\",\n \"CROSS\",\n \"CUBE\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"DATA\",\n \"DATABASE\",\n \"DATABASES\",\n \"DAY\",\n \"DBPROPERTIES\",\n \"DEFINED\",\n \"DELETE\",\n \"DELIMITED\",\n \"DESC\",\n \"DESCRIBE\",\n \"DFS\",\n \"DIRECTORIES\",\n \"DIRECTORY\",\n \"DISTINCT\",\n \"DISTRIBUTE\",\n \"DIV\",\n \"DROP\",\n \"ESCAPE\",\n \"ESCAPED\",\n \"EXCEPT\",\n \"EXCHANGE\",\n \"EXISTS\",\n \"EXPORT\",\n \"EXTENDED\",\n \"EXTERNAL\",\n \"EXTRACT\",\n \"FALSE\",\n \"FETCH\",\n \"FIELDS\",\n \"FILTER\",\n \"FILEFORMAT\",\n \"FIRST\",\n \"FIRST_VALUE\",\n \"FOLLOWING\",\n \"FOR\",\n \"FOREIGN\",\n \"FORMAT\",\n \"FORMATTED\",\n \"FULL\",\n \"FUNCTION\",\n \"FUNCTIONS\",\n \"GLOBAL\",\n \"GRANT\",\n \"GROUP\",\n \"GROUPING\",\n \"HOUR\",\n \"IF\",\n \"IGNORE\",\n \"IMPORT\",\n \"IN\",\n \"INDEX\",\n \"INDEXES\",\n \"INNER\",\n \"INPATH\",\n \"INPUTFORMAT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ITEMS\",\n \"KEYS\",\n \"LAST\",\n \"LAST_VALUE\",\n \"LATERAL\",\n \"LAZY\",\n \"LEADING\",\n \"LEFT\",\n \"LIKE\",\n \"LINES\",\n \"LIST\",\n \"LOCAL\",\n \"LOCATION\",\n \"LOCK\",\n \"LOCKS\",\n \"LOGICAL\",\n \"MACRO\",\n \"MATCHED\",\n \"MERGE\",\n \"MINUTE\",\n \"MONTH\",\n \"MSCK\",\n \"NAMESPACE\",\n \"NAMESPACES\",\n \"NATURAL\",\n \"NO\",\n \"NOT\",\n \"NULL\",\n \"NULLS\",\n \"OF\",\n \"ONLY\",\n \"OPTION\",\n \"OPTIONS\",\n \"OR\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OUTPUTFORMAT\",\n \"OVER\",\n \"OVERLAPS\",\n \"OVERLAY\",\n \"OVERWRITE\",\n \"OWNER\",\n \"PARTITION\",\n \"PARTITIONED\",\n \"PARTITIONS\",\n \"PERCENT\",\n \"PLACING\",\n \"POSITION\",\n \"PRECEDING\",\n \"PRIMARY\",\n \"PRINCIPALS\",\n \"PROPERTIES\",\n \"PURGE\",\n \"QUERY\",\n \"RANGE\",\n \"RECORDREADER\",\n \"RECORDWRITER\",\n \"RECOVER\",\n \"REDUCE\",\n \"REFERENCES\",\n \"RENAME\",\n \"REPAIR\",\n \"REPLACE\",\n \"RESPECT\",\n \"RESTRICT\",\n \"REVOKE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROLE\",\n \"ROLES\",\n \"ROLLBACK\",\n \"ROLLUP\",\n \"ROW\",\n \"ROWS\",\n \"SCHEMA\",\n \"SECOND\",\n \"SELECT\",\n \"SEMI\",\n \"SEPARATED\",\n \"SERDE\",\n \"SERDEPROPERTIES\",\n \"SESSION_USER\",\n \"SETS\",\n \"SHOW\",\n \"SKEWED\",\n \"SOME\",\n \"SORT\",\n \"SORTED\",\n \"START\",\n \"STATISTICS\",\n \"STORED\",\n \"STRATIFY\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TABLE\",\n \"TABLES\",\n \"TBLPROPERTIES\",\n \"TEMPORARY\",\n \"TERMINATED\",\n \"THEN\",\n \"TO\",\n \"TOUCH\",\n \"TRAILING\",\n \"TRANSACTION\",\n \"TRANSACTIONS\",\n \"TRIM\",\n \"TRUE\",\n \"TRUNCATE\",\n \"UNARCHIVE\",\n \"UNBOUNDED\",\n \"UNCACHE\",\n \"UNIQUE\",\n \"UNKNOWN\",\n \"UNLOCK\",\n \"UNSET\",\n \"USE\",\n \"USER\",\n \"USING\",\n \"VIEW\",\n \"WINDOW\",\n \"YEAR\",\n // other\n \"ANALYSE\",\n \"ARRAY_ZIP\",\n \"COALESCE\",\n \"CONTAINS\",\n \"CONVERT\",\n \"DAYS\",\n \"DAY_HOUR\",\n \"DAY_MINUTE\",\n \"DAY_SECOND\",\n \"DECODE\",\n \"DEFAULT\",\n \"DISTINCTROW\",\n \"ENCODE\",\n \"EXPLODE\",\n \"EXPLODE_OUTER\",\n \"FIXED\",\n \"GREATEST\",\n \"GROUP_CONCAT\",\n \"HOURS\",\n \"HOUR_MINUTE\",\n \"HOUR_SECOND\",\n \"IFNULL\",\n \"LEAST\",\n \"LEVEL\",\n \"MINUTE_SECOND\",\n \"NULLIF\",\n \"OFFSET\",\n \"ON\",\n \"OPTIMIZE\",\n \"REGEXP\",\n \"SEPARATOR\",\n \"SIZE\",\n \"TYPE\",\n \"TYPES\",\n \"UNSIGNED\",\n \"VARIABLES\",\n \"YEAR_MONTH\"\n];\nvar dataTypes12 = [\n // https://spark.apache.org/docs/latest/sql-ref-datatypes.html\n \"ARRAY\",\n \"BIGINT\",\n \"BINARY\",\n \"BOOLEAN\",\n \"BYTE\",\n \"CHAR\",\n \"DATE\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"FLOAT\",\n \"INT\",\n \"INTEGER\",\n \"INTERVAL\",\n \"LONG\",\n \"MAP\",\n \"NUMERIC\",\n \"REAL\",\n \"SHORT\",\n \"SMALLINT\",\n \"STRING\",\n \"STRUCT\",\n \"TIMESTAMP_LTZ\",\n \"TIMESTAMP_NTZ\",\n \"TIMESTAMP\",\n \"TINYINT\",\n \"VARCHAR\"\n // No varchar type in Spark, only STRING. Added for the sake of tests\n];\n\n// src/languages/spark/spark.functions.ts\nvar functions12 = [\n // http://spark.apache.org/docs/latest/sql-ref-functions.html\n //\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#aggregate-functions\n // 'ANY',\n \"APPROX_COUNT_DISTINCT\",\n \"APPROX_PERCENTILE\",\n \"AVG\",\n \"BIT_AND\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"BOOL_AND\",\n \"BOOL_OR\",\n \"COLLECT_LIST\",\n \"COLLECT_SET\",\n \"CORR\",\n \"COUNT\",\n \"COUNT\",\n \"COUNT\",\n \"COUNT_IF\",\n \"COUNT_MIN_SKETCH\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"EVERY\",\n \"FIRST\",\n \"FIRST_VALUE\",\n \"GROUPING\",\n \"GROUPING_ID\",\n \"KURTOSIS\",\n \"LAST\",\n \"LAST_VALUE\",\n \"MAX\",\n \"MAX_BY\",\n \"MEAN\",\n \"MIN\",\n \"MIN_BY\",\n \"PERCENTILE\",\n \"PERCENTILE\",\n \"PERCENTILE_APPROX\",\n \"SKEWNESS\",\n // 'SOME',\n \"STD\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"SUM\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#window-functions\n \"CUME_DIST\",\n \"DENSE_RANK\",\n \"LAG\",\n \"LEAD\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"PERCENT_RANK\",\n \"RANK\",\n \"ROW_NUMBER\",\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#array-functions\n \"ARRAY\",\n \"ARRAY_CONTAINS\",\n \"ARRAY_DISTINCT\",\n \"ARRAY_EXCEPT\",\n \"ARRAY_INTERSECT\",\n \"ARRAY_JOIN\",\n \"ARRAY_MAX\",\n \"ARRAY_MIN\",\n \"ARRAY_POSITION\",\n \"ARRAY_REMOVE\",\n \"ARRAY_REPEAT\",\n \"ARRAY_UNION\",\n \"ARRAYS_OVERLAP\",\n \"ARRAYS_ZIP\",\n \"FLATTEN\",\n \"SEQUENCE\",\n \"SHUFFLE\",\n \"SLICE\",\n \"SORT_ARRAY\",\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#map-functions\n \"ELEMENT_AT\",\n \"ELEMENT_AT\",\n \"MAP_CONCAT\",\n \"MAP_ENTRIES\",\n \"MAP_FROM_ARRAYS\",\n \"MAP_FROM_ENTRIES\",\n \"MAP_KEYS\",\n \"MAP_VALUES\",\n \"STR_TO_MAP\",\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#date-and-timestamp-functions\n \"ADD_MONTHS\",\n \"CURRENT_DATE\",\n \"CURRENT_DATE\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMEZONE\",\n \"DATE_ADD\",\n \"DATE_FORMAT\",\n \"DATE_FROM_UNIX_DATE\",\n \"DATE_PART\",\n \"DATE_SUB\",\n \"DATE_TRUNC\",\n \"DATEDIFF\",\n \"DAY\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"EXTRACT\",\n \"FROM_UNIXTIME\",\n \"FROM_UTC_TIMESTAMP\",\n \"HOUR\",\n \"LAST_DAY\",\n \"MAKE_DATE\",\n \"MAKE_DT_INTERVAL\",\n \"MAKE_INTERVAL\",\n \"MAKE_TIMESTAMP\",\n \"MAKE_YM_INTERVAL\",\n \"MINUTE\",\n \"MONTH\",\n \"MONTHS_BETWEEN\",\n \"NEXT_DAY\",\n \"NOW\",\n \"QUARTER\",\n \"SECOND\",\n \"SESSION_WINDOW\",\n \"TIMESTAMP_MICROS\",\n \"TIMESTAMP_MILLIS\",\n \"TIMESTAMP_SECONDS\",\n \"TO_DATE\",\n \"TO_TIMESTAMP\",\n \"TO_UNIX_TIMESTAMP\",\n \"TO_UTC_TIMESTAMP\",\n \"TRUNC\",\n \"UNIX_DATE\",\n \"UNIX_MICROS\",\n \"UNIX_MILLIS\",\n \"UNIX_SECONDS\",\n \"UNIX_TIMESTAMP\",\n \"WEEKDAY\",\n \"WEEKOFYEAR\",\n \"WINDOW\",\n \"YEAR\",\n // http://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#json-functions\n \"FROM_JSON\",\n \"GET_JSON_OBJECT\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_OBJECT_KEYS\",\n \"JSON_TUPLE\",\n \"SCHEMA_OF_JSON\",\n \"TO_JSON\",\n // http://spark.apache.org/docs/latest/api/sql/index.html\n \"ABS\",\n \"ACOS\",\n \"ACOSH\",\n \"AGGREGATE\",\n \"ARRAY_SORT\",\n \"ASCII\",\n \"ASIN\",\n \"ASINH\",\n \"ASSERT_TRUE\",\n \"ATAN\",\n \"ATAN2\",\n \"ATANH\",\n \"BASE64\",\n \"BIN\",\n \"BIT_COUNT\",\n \"BIT_GET\",\n \"BIT_LENGTH\",\n \"BROUND\",\n \"BTRIM\",\n \"CARDINALITY\",\n \"CBRT\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"CHR\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONV\",\n \"COS\",\n \"COSH\",\n \"COT\",\n \"CRC32\",\n \"CURRENT_CATALOG\",\n \"CURRENT_DATABASE\",\n \"CURRENT_USER\",\n \"DEGREES\",\n // 'E',\n \"ELT\",\n \"EXP\",\n \"EXPM1\",\n \"FACTORIAL\",\n \"FIND_IN_SET\",\n \"FLOOR\",\n \"FORALL\",\n \"FORMAT_NUMBER\",\n \"FORMAT_STRING\",\n \"FROM_CSV\",\n \"GETBIT\",\n \"HASH\",\n \"HEX\",\n \"HYPOT\",\n \"INITCAP\",\n \"INLINE\",\n \"INLINE_OUTER\",\n \"INPUT_FILE_BLOCK_LENGTH\",\n \"INPUT_FILE_BLOCK_START\",\n \"INPUT_FILE_NAME\",\n \"INSTR\",\n \"ISNAN\",\n \"ISNOTNULL\",\n \"ISNULL\",\n \"JAVA_METHOD\",\n \"LCASE\",\n \"LEFT\",\n \"LENGTH\",\n \"LEVENSHTEIN\",\n \"LN\",\n \"LOCATE\",\n \"LOG\",\n \"LOG10\",\n \"LOG1P\",\n \"LOG2\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MAP_FILTER\",\n \"MAP_ZIP_WITH\",\n \"MD5\",\n \"MOD\",\n \"MONOTONICALLY_INCREASING_ID\",\n \"NAMED_STRUCT\",\n \"NANVL\",\n \"NEGATIVE\",\n \"NVL\",\n \"NVL2\",\n \"OCTET_LENGTH\",\n \"OVERLAY\",\n \"PARSE_URL\",\n \"PI\",\n \"PMOD\",\n \"POSEXPLODE\",\n \"POSEXPLODE_OUTER\",\n \"POSITION\",\n \"POSITIVE\",\n \"POW\",\n \"POWER\",\n \"PRINTF\",\n \"RADIANS\",\n \"RAISE_ERROR\",\n \"RAND\",\n \"RANDN\",\n \"RANDOM\",\n \"REFLECT\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_EXTRACT_ALL\",\n \"REGEXP_LIKE\",\n \"REGEXP_REPLACE\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RINT\",\n \"ROUND\",\n \"RPAD\",\n \"RTRIM\",\n \"SCHEMA_OF_CSV\",\n \"SENTENCES\",\n \"SHA\",\n \"SHA1\",\n \"SHA2\",\n \"SHIFTLEFT\",\n \"SHIFTRIGHT\",\n \"SHIFTRIGHTUNSIGNED\",\n \"SIGN\",\n \"SIGNUM\",\n \"SIN\",\n \"SINH\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SPARK_PARTITION_ID\",\n \"SPLIT\",\n \"SQRT\",\n \"STACK\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUBSTRING_INDEX\",\n \"TAN\",\n \"TANH\",\n \"TO_CSV\",\n \"TRANSFORM_KEYS\",\n \"TRANSFORM_VALUES\",\n \"TRANSLATE\",\n \"TRIM\",\n \"TRY_ADD\",\n \"TRY_DIVIDE\",\n \"TYPEOF\",\n \"UCASE\",\n \"UNBASE64\",\n \"UNHEX\",\n \"UPPER\",\n \"UUID\",\n \"VERSION\",\n \"WIDTH_BUCKET\",\n \"XPATH\",\n \"XPATH_BOOLEAN\",\n \"XPATH_DOUBLE\",\n \"XPATH_FLOAT\",\n \"XPATH_INT\",\n \"XPATH_LONG\",\n \"XPATH_NUMBER\",\n \"XPATH_SHORT\",\n \"XPATH_STRING\",\n \"XXHASH64\",\n \"ZIP_WITH\",\n // cast\n \"CAST\",\n // Shorthand functions to use in place of CASE expression\n \"COALESCE\",\n \"NULLIF\"\n];\n\n// src/languages/spark/spark.formatter.ts\nvar reservedSelect12 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses12 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"SORT BY\",\n \"CLUSTER BY\",\n \"DISTRIBUTE BY\",\n \"LIMIT\",\n // Data manipulation\n // - insert:\n \"INSERT [INTO | OVERWRITE] [TABLE]\",\n \"VALUES\",\n // - insert overwrite directory:\n // https://spark.apache.org/docs/latest/sql-ref-syntax-dml-insert-overwrite-directory.html\n \"INSERT OVERWRITE [LOCAL] DIRECTORY\",\n // - load:\n // https://spark.apache.org/docs/latest/sql-ref-syntax-dml-load.html\n \"LOAD DATA [LOCAL] INPATH\",\n \"[OVERWRITE] INTO TABLE\"\n]);\nvar standardOnelineClauses11 = expandPhrases([\"CREATE [EXTERNAL] TABLE [IF NOT EXISTS]\"]);\nvar tabularOnelineClauses11 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD COLUMNS\",\n \"DROP {COLUMN | COLUMNS}\",\n \"RENAME TO\",\n \"RENAME COLUMN\",\n \"ALTER COLUMN\",\n // - truncate:\n \"TRUNCATE TABLE\",\n // other\n \"LATERAL VIEW\",\n \"ALTER DATABASE\",\n \"ALTER VIEW\",\n \"CREATE DATABASE\",\n \"CREATE FUNCTION\",\n \"DROP DATABASE\",\n \"DROP FUNCTION\",\n \"DROP VIEW\",\n \"REPAIR TABLE\",\n \"USE DATABASE\",\n // Data Retrieval\n \"TABLESAMPLE\",\n \"PIVOT\",\n \"TRANSFORM\",\n \"EXPLAIN\",\n // Auxiliary\n \"ADD FILE\",\n \"ADD JAR\",\n \"ANALYZE TABLE\",\n \"CACHE TABLE\",\n \"CLEAR CACHE\",\n \"DESCRIBE DATABASE\",\n \"DESCRIBE FUNCTION\",\n \"DESCRIBE QUERY\",\n \"DESCRIBE TABLE\",\n \"LIST FILE\",\n \"LIST JAR\",\n \"REFRESH\",\n \"REFRESH TABLE\",\n \"REFRESH FUNCTION\",\n \"RESET\",\n \"SHOW COLUMNS\",\n \"SHOW CREATE TABLE\",\n \"SHOW DATABASES\",\n \"SHOW FUNCTIONS\",\n \"SHOW PARTITIONS\",\n \"SHOW TABLE EXTENDED\",\n \"SHOW TABLES\",\n \"SHOW TBLPROPERTIES\",\n \"SHOW VIEWS\",\n \"UNCACHE TABLE\"\n]);\nvar reservedSetOperations12 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT [ALL | DISTINCT]\",\n \"INTERSECT [ALL | DISTINCT]\"\n]);\nvar reservedJoins12 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\",\n // non-standard-joins\n \"[LEFT] {ANTI | SEMI} JOIN\",\n \"NATURAL [LEFT] {ANTI | SEMI} JOIN\"\n]);\nvar reservedPhrases12 = expandPhrases([\n \"ON DELETE\",\n \"ON UPDATE\",\n \"CURRENT ROW\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar spark = {\n name: \"spark\",\n tokenizerOptions: {\n reservedSelect: reservedSelect12,\n reservedClauses: [...reservedClauses12, ...standardOnelineClauses11, ...tabularOnelineClauses11],\n reservedSetOperations: reservedSetOperations12,\n reservedJoins: reservedJoins12,\n reservedPhrases: reservedPhrases12,\n supportsXor: true,\n reservedKeywords: keywords12,\n reservedDataTypes: dataTypes12,\n reservedFunctionNames: functions12,\n extraParens: [\"[]\"],\n stringTypes: [\n \"''-bs\",\n '\"\"-bs',\n { quote: \"''-raw\", prefixes: [\"R\", \"X\"], requirePrefix: true },\n { quote: '\"\"-raw', prefixes: [\"R\", \"X\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n variableTypes: [{ quote: \"{}\", prefixes: [\"$\"], requirePrefix: true }],\n operators: [\"%\", \"~\", \"^\", \"|\", \"&\", \"<=>\", \"==\", \"!\", \"||\", \"->\"],\n postProcess: postProcess4\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses11, ...tabularOnelineClauses11],\n tabularOnelineClauses: tabularOnelineClauses11\n }\n};\nfunction postProcess4(tokens) {\n return tokens.map((token, i) => {\n const prevToken = tokens[i - 1] || EOF_TOKEN;\n const nextToken = tokens[i + 1] || EOF_TOKEN;\n if (isToken.WINDOW(token) && nextToken.type === \"OPEN_PAREN\" /* OPEN_PAREN */) {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */ });\n }\n if (token.text === \"ITEMS\" && token.type === \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */) {\n if (!(prevToken.text === \"COLLECTION\" && nextToken.text === \"TERMINATED\")) {\n return __spreadProps(__spreadValues({}, token), { type: \"IDENTIFIER\" /* IDENTIFIER */, text: token.raw });\n }\n }\n return token;\n });\n}\n\n// src/languages/sqlite/sqlite.functions.ts\nvar functions13 = [\n // https://www.sqlite.org/lang_corefunc.html\n \"ABS\",\n \"CHANGES\",\n \"CHAR\",\n \"COALESCE\",\n \"FORMAT\",\n \"GLOB\",\n \"HEX\",\n \"IFNULL\",\n \"IIF\",\n \"INSTR\",\n \"LAST_INSERT_ROWID\",\n \"LENGTH\",\n \"LIKE\",\n \"LIKELIHOOD\",\n \"LIKELY\",\n \"LOAD_EXTENSION\",\n \"LOWER\",\n \"LTRIM\",\n \"NULLIF\",\n \"PRINTF\",\n \"QUOTE\",\n \"RANDOM\",\n \"RANDOMBLOB\",\n \"REPLACE\",\n \"ROUND\",\n \"RTRIM\",\n \"SIGN\",\n \"SOUNDEX\",\n \"SQLITE_COMPILEOPTION_GET\",\n \"SQLITE_COMPILEOPTION_USED\",\n \"SQLITE_OFFSET\",\n \"SQLITE_SOURCE_ID\",\n \"SQLITE_VERSION\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"TOTAL_CHANGES\",\n \"TRIM\",\n \"TYPEOF\",\n \"UNICODE\",\n \"UNLIKELY\",\n \"UPPER\",\n \"ZEROBLOB\",\n // https://www.sqlite.org/lang_aggfunc.html\n \"AVG\",\n \"COUNT\",\n \"GROUP_CONCAT\",\n \"MAX\",\n \"MIN\",\n \"SUM\",\n \"TOTAL\",\n // https://www.sqlite.org/lang_datefunc.html\n \"DATE\",\n \"TIME\",\n \"DATETIME\",\n \"JULIANDAY\",\n \"UNIXEPOCH\",\n \"STRFTIME\",\n // https://www.sqlite.org/windowfunctions.html#biwinfunc\n \"row_number\",\n \"rank\",\n \"dense_rank\",\n \"percent_rank\",\n \"cume_dist\",\n \"ntile\",\n \"lag\",\n \"lead\",\n \"first_value\",\n \"last_value\",\n \"nth_value\",\n // https://www.sqlite.org/lang_mathfunc.html\n \"ACOS\",\n \"ACOSH\",\n \"ASIN\",\n \"ASINH\",\n \"ATAN\",\n \"ATAN2\",\n \"ATANH\",\n \"CEIL\",\n \"CEILING\",\n \"COS\",\n \"COSH\",\n \"DEGREES\",\n \"EXP\",\n \"FLOOR\",\n \"LN\",\n \"LOG\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"MOD\",\n \"PI\",\n \"POW\",\n \"POWER\",\n \"RADIANS\",\n \"SIN\",\n \"SINH\",\n \"SQRT\",\n \"TAN\",\n \"TANH\",\n \"TRUNC\",\n // https://www.sqlite.org/json1.html\n \"JSON\",\n \"JSON_ARRAY\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_EXTRACT\",\n \"JSON_INSERT\",\n \"JSON_OBJECT\",\n \"JSON_PATCH\",\n \"JSON_REMOVE\",\n \"JSON_REPLACE\",\n \"JSON_SET\",\n \"JSON_TYPE\",\n \"JSON_TYPE\",\n \"JSON_VALID\",\n \"JSON_QUOTE\",\n \"JSON_GROUP_ARRAY\",\n \"JSON_GROUP_OBJECT\",\n \"JSON_EACH\",\n \"JSON_TREE\",\n // cast\n \"CAST\"\n];\n\n// src/languages/sqlite/sqlite.keywords.ts\nvar keywords13 = [\n // https://www.sqlite.org/lang_keywords.html\n \"ABORT\",\n \"ACTION\",\n \"ADD\",\n \"AFTER\",\n \"ALL\",\n \"ALTER\",\n \"AND\",\n \"ARE\",\n \"ALWAYS\",\n \"ANALYZE\",\n \"AS\",\n \"ASC\",\n \"ATTACH\",\n \"AUTOINCREMENT\",\n \"BEFORE\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BY\",\n \"CASCADE\",\n \"CASE\",\n \"CAST\",\n \"CHECK\",\n \"COLLATE\",\n \"COLUMN\",\n \"COMMIT\",\n \"CONFLICT\",\n \"CONSTRAINT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"DATABASE\",\n \"DEFAULT\",\n \"DEFERRABLE\",\n \"DEFERRED\",\n \"DELETE\",\n \"DESC\",\n \"DETACH\",\n \"DISTINCT\",\n \"DO\",\n \"DROP\",\n \"EACH\",\n \"ELSE\",\n \"END\",\n \"ESCAPE\",\n \"EXCEPT\",\n \"EXCLUDE\",\n \"EXCLUSIVE\",\n \"EXISTS\",\n \"EXPLAIN\",\n \"FAIL\",\n \"FILTER\",\n \"FIRST\",\n \"FOLLOWING\",\n \"FOR\",\n \"FOREIGN\",\n \"FROM\",\n \"FULL\",\n \"GENERATED\",\n \"GLOB\",\n \"GROUP\",\n \"GROUPS\",\n \"HAVING\",\n \"IF\",\n \"IGNORE\",\n \"IMMEDIATE\",\n \"IN\",\n \"INDEX\",\n \"INDEXED\",\n \"INITIALLY\",\n \"INNER\",\n \"INSERT\",\n \"INSTEAD\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ISNULL\",\n \"JOIN\",\n \"KEY\",\n \"LAST\",\n \"LEFT\",\n \"LIKE\",\n \"LIMIT\",\n \"MATCH\",\n \"MATERIALIZED\",\n \"NATURAL\",\n \"NO\",\n \"NOT\",\n \"NOTHING\",\n \"NOTNULL\",\n \"NULL\",\n \"NULLS\",\n \"OF\",\n \"OFFSET\",\n \"ON\",\n \"ONLY\",\n \"OPEN\",\n \"OR\",\n \"ORDER\",\n \"OTHERS\",\n \"OUTER\",\n \"OVER\",\n \"PARTITION\",\n \"PLAN\",\n \"PRAGMA\",\n \"PRECEDING\",\n \"PRIMARY\",\n \"QUERY\",\n \"RAISE\",\n \"RANGE\",\n \"RECURSIVE\",\n \"REFERENCES\",\n \"REGEXP\",\n \"REINDEX\",\n \"RELEASE\",\n \"RENAME\",\n \"REPLACE\",\n \"RESTRICT\",\n \"RETURNING\",\n \"RIGHT\",\n \"ROLLBACK\",\n \"ROW\",\n \"ROWS\",\n \"SAVEPOINT\",\n \"SELECT\",\n \"SET\",\n \"TABLE\",\n \"TEMP\",\n \"TEMPORARY\",\n \"THEN\",\n \"TIES\",\n \"TO\",\n \"TRANSACTION\",\n \"TRIGGER\",\n \"UNBOUNDED\",\n \"UNION\",\n \"UNIQUE\",\n \"UPDATE\",\n \"USING\",\n \"VACUUM\",\n \"VALUES\",\n \"VIEW\",\n \"VIRTUAL\",\n \"WHEN\",\n \"WHERE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHOUT\"\n];\nvar dataTypes13 = [\n // SQLite allows any word as a data type, e.g. CREATE TABLE foo (col1 madeupname(123));\n // Here we just list some common ones as SQL Formatter\n // is only able to detect a predefined list of data types.\n // https://www.sqlite.org/stricttables.html\n // https://www.sqlite.org/datatype3.html\n \"ANY\",\n \"ARRAY\",\n \"BLOB\",\n \"CHARACTER\",\n \"DECIMAL\",\n \"INT\",\n \"INTEGER\",\n \"NATIVE CHARACTER\",\n \"NCHAR\",\n \"NUMERIC\",\n \"NVARCHAR\",\n \"REAL\",\n \"TEXT\",\n \"VARCHAR\",\n \"VARYING CHARACTER\"\n];\n\n// src/languages/sqlite/sqlite.formatter.ts\nvar reservedSelect13 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses13 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO\",\n \"REPLACE INTO\",\n \"VALUES\",\n // - update:\n \"SET\"\n]);\nvar standardOnelineClauses12 = expandPhrases([\"CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]\"]);\nvar tabularOnelineClauses12 = expandPhrases([\n // - create:\n \"CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]\",\n // - insert:\n \"ON CONFLICT\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD [COLUMN]\",\n \"DROP [COLUMN]\",\n \"RENAME [COLUMN]\",\n \"RENAME TO\",\n // - set schema\n \"SET SCHEMA\"\n]);\nvar reservedSetOperations13 = expandPhrases([\"UNION [ALL]\", \"EXCEPT\", \"INTERSECT\"]);\nvar reservedJoins13 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\"\n]);\nvar reservedPhrases13 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\",\n \"{ROWS | RANGE | GROUPS} BETWEEN\"\n]);\nvar sqlite = {\n name: \"sqlite\",\n tokenizerOptions: {\n reservedSelect: reservedSelect13,\n reservedClauses: [...reservedClauses13, ...standardOnelineClauses12, ...tabularOnelineClauses12],\n reservedSetOperations: reservedSetOperations13,\n reservedJoins: reservedJoins13,\n reservedPhrases: reservedPhrases13,\n reservedKeywords: keywords13,\n reservedDataTypes: dataTypes13,\n reservedFunctionNames: functions13,\n stringTypes: [\n \"''-qq\",\n { quote: \"''-raw\", prefixes: [\"X\"], requirePrefix: true }\n // Depending on context SQLite also supports double-quotes for strings,\n // and single-quotes for identifiers.\n ],\n identTypes: [`\"\"-qq`, \"``\", \"[]\"],\n // https://www.sqlite.org/lang_expr.html#parameters\n paramTypes: { positional: true, numbered: [\"?\"], named: [\":\", \"@\", \"$\"] },\n operators: [\"%\", \"~\", \"&\", \"|\", \"<<\", \">>\", \"==\", \"->\", \"->>\", \"||\"]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses12, ...tabularOnelineClauses12],\n tabularOnelineClauses: tabularOnelineClauses12\n }\n};\n\n// src/languages/sql/sql.functions.ts\nvar functions14 = [\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_9_set_function_specification\n \"GROUPING\",\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_10_window_function\n \"RANK\",\n \"DENSE_RANK\",\n \"PERCENT_RANK\",\n \"CUME_DIST\",\n \"ROW_NUMBER\",\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_27_numeric_value_function\n \"POSITION\",\n \"OCCURRENCES_REGEX\",\n \"POSITION_REGEX\",\n \"EXTRACT\",\n \"CHAR_LENGTH\",\n \"CHARACTER_LENGTH\",\n \"OCTET_LENGTH\",\n \"CARDINALITY\",\n \"ABS\",\n \"MOD\",\n \"LN\",\n \"EXP\",\n \"POWER\",\n \"SQRT\",\n \"FLOOR\",\n \"CEIL\",\n \"CEILING\",\n \"WIDTH_BUCKET\",\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_29_string_value_function\n \"SUBSTRING\",\n \"SUBSTRING_REGEX\",\n \"UPPER\",\n \"LOWER\",\n \"CONVERT\",\n \"TRANSLATE\",\n \"TRANSLATE_REGEX\",\n \"TRIM\",\n \"OVERLAY\",\n \"NORMALIZE\",\n \"SPECIFICTYPE\",\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_31_datetime_value_function\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"LOCALTIME\",\n \"CURRENT_TIMESTAMP\",\n \"LOCALTIMESTAMP\",\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_38_multiset_value_function\n // SET serves multiple roles: a SET() function and a SET keyword e.g. in UPDATE table SET ...\n // multiset\n // 'SET', (disabled for now)\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_10_9_aggregate_function\n \"COUNT\",\n \"AVG\",\n \"MAX\",\n \"MIN\",\n \"SUM\",\n // 'EVERY',\n // 'ANY',\n // 'SOME',\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"VAR_SAMP\",\n \"VAR_POP\",\n \"COLLECT\",\n \"FUSION\",\n \"INTERSECTION\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"CORR\",\n \"REGR_SLOPE\",\n \"REGR_INTERCEPT\",\n \"REGR_COUNT\",\n \"REGR_R2\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_SXX\",\n \"REGR_SYY\",\n \"REGR_SXY\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n // CAST is a pretty complex case, involving multiple forms:\n // - CAST(col AS int)\n // - CAST(...) WITH ...\n // - CAST FROM int\n // - CREATE CAST(mycol AS int) WITH ...\n \"CAST\",\n // Shorthand functions to use in place of CASE expression\n \"COALESCE\",\n \"NULLIF\",\n // Non-standard functions that have widespread support\n \"ROUND\",\n \"SIN\",\n \"COS\",\n \"TAN\",\n \"ASIN\",\n \"ACOS\",\n \"ATAN\"\n];\n\n// src/languages/sql/sql.keywords.ts\nvar keywords14 = [\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#reserved-word\n \"ALL\",\n \"ALLOCATE\",\n \"ALTER\",\n \"ANY\",\n // <- moved over from functions\n \"ARE\",\n \"AS\",\n \"ASC\",\n // Not reserved in SQL-2008, but commonly reserved in most dialects\n \"ASENSITIVE\",\n \"ASYMMETRIC\",\n \"AT\",\n \"ATOMIC\",\n \"AUTHORIZATION\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BOTH\",\n \"BY\",\n \"CALL\",\n \"CALLED\",\n \"CASCADED\",\n \"CAST\",\n \"CHECK\",\n \"CLOSE\",\n \"COALESCE\",\n \"COLLATE\",\n \"COLUMN\",\n \"COMMIT\",\n \"CONDITION\",\n \"CONNECT\",\n \"CONSTRAINT\",\n \"CORRESPONDING\",\n \"CREATE\",\n \"CROSS\",\n \"CUBE\",\n \"CURRENT\",\n \"CURRENT_CATALOG\",\n \"CURRENT_DEFAULT_TRANSFORM_GROUP\",\n \"CURRENT_PATH\",\n \"CURRENT_ROLE\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_TRANSFORM_GROUP_FOR_TYPE\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"CYCLE\",\n \"DEALLOCATE\",\n \"DAY\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DELETE\",\n \"DEREF\",\n \"DESC\",\n // Not reserved in SQL-2008, but commonly reserved in most dialects\n \"DESCRIBE\",\n \"DETERMINISTIC\",\n \"DISCONNECT\",\n \"DISTINCT\",\n \"DROP\",\n \"DYNAMIC\",\n \"EACH\",\n \"ELEMENT\",\n \"END-EXEC\",\n \"ESCAPE\",\n \"EVERY\",\n // <- moved over from functions\n \"EXCEPT\",\n \"EXEC\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXTERNAL\",\n \"FALSE\",\n \"FETCH\",\n \"FILTER\",\n \"FOR\",\n \"FOREIGN\",\n \"FREE\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GET\",\n \"GLOBAL\",\n \"GRANT\",\n \"GROUP\",\n \"HAVING\",\n \"HOLD\",\n \"HOUR\",\n \"IDENTITY\",\n \"IN\",\n \"INDICATOR\",\n \"INNER\",\n \"INOUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"LANGUAGE\",\n \"LARGE\",\n \"LATERAL\",\n \"LEADING\",\n \"LEFT\",\n \"LIKE\",\n \"LIKE_REGEX\",\n \"LOCAL\",\n \"MATCH\",\n \"MEMBER\",\n \"MERGE\",\n \"METHOD\",\n \"MINUTE\",\n \"MODIFIES\",\n \"MODULE\",\n \"MONTH\",\n \"NATURAL\",\n \"NEW\",\n \"NO\",\n \"NONE\",\n \"NOT\",\n \"NULL\",\n \"NULLIF\",\n \"OF\",\n \"OLD\",\n \"ON\",\n \"ONLY\",\n \"OPEN\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OVER\",\n \"OVERLAPS\",\n \"PARAMETER\",\n \"PARTITION\",\n \"PRECISION\",\n \"PREPARE\",\n \"PRIMARY\",\n \"PROCEDURE\",\n \"RANGE\",\n \"READS\",\n \"REAL\",\n \"RECURSIVE\",\n \"REF\",\n \"REFERENCES\",\n \"REFERENCING\",\n \"RELEASE\",\n \"RESULT\",\n \"RETURN\",\n \"RETURNS\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLLBACK\",\n \"ROLLUP\",\n \"ROW\",\n \"ROWS\",\n \"SAVEPOINT\",\n \"SCOPE\",\n \"SCROLL\",\n \"SEARCH\",\n \"SECOND\",\n \"SELECT\",\n \"SENSITIVE\",\n \"SESSION_USER\",\n \"SET\",\n \"SIMILAR\",\n \"SOME\",\n // <- moved over from functions\n \"SPECIFIC\",\n \"SQL\",\n \"SQLEXCEPTION\",\n \"SQLSTATE\",\n \"SQLWARNING\",\n \"START\",\n \"STATIC\",\n \"SUBMULTISET\",\n \"SYMMETRIC\",\n \"SYSTEM\",\n \"SYSTEM_USER\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"THEN\",\n \"TIMEZONE_HOUR\",\n \"TIMEZONE_MINUTE\",\n \"TO\",\n \"TRAILING\",\n \"TRANSLATION\",\n \"TREAT\",\n \"TRIGGER\",\n \"TRUE\",\n \"UESCAPE\",\n \"UNION\",\n \"UNIQUE\",\n \"UNKNOWN\",\n \"UNNEST\",\n \"UPDATE\",\n \"USER\",\n \"USING\",\n \"VALUE\",\n \"VALUES\",\n \"WHENEVER\",\n \"WINDOW\",\n \"WITHIN\",\n \"WITHOUT\",\n \"YEAR\"\n];\nvar dataTypes14 = [\n // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_1_data_type\n \"ARRAY\",\n \"BIGINT\",\n \"BINARY LARGE OBJECT\",\n \"BINARY VARYING\",\n \"BINARY\",\n \"BLOB\",\n \"BOOLEAN\",\n \"CHAR LARGE OBJECT\",\n \"CHAR VARYING\",\n \"CHAR\",\n \"CHARACTER LARGE OBJECT\",\n \"CHARACTER VARYING\",\n \"CHARACTER\",\n \"CLOB\",\n \"DATE\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"FLOAT\",\n \"INT\",\n \"INTEGER\",\n \"INTERVAL\",\n \"MULTISET\",\n \"NATIONAL CHAR VARYING\",\n \"NATIONAL CHAR\",\n \"NATIONAL CHARACTER LARGE OBJECT\",\n \"NATIONAL CHARACTER VARYING\",\n \"NATIONAL CHARACTER\",\n \"NCHAR LARGE OBJECT\",\n \"NCHAR VARYING\",\n \"NCHAR\",\n \"NCLOB\",\n \"NUMERIC\",\n \"SMALLINT\",\n \"TIME\",\n \"TIMESTAMP\",\n \"VARBINARY\",\n \"VARCHAR\"\n];\n\n// src/languages/sql/sql.formatter.ts\nvar reservedSelect14 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses14 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY [ALL | DISTINCT]\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n // Data manipulation\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\"\n]);\nvar standardOnelineClauses13 = expandPhrases([\"CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE\"]);\nvar tabularOnelineClauses13 = expandPhrases([\n // - create:\n \"CREATE [RECURSIVE] VIEW\",\n // - update:\n \"UPDATE\",\n \"WHERE CURRENT OF\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD COLUMN\",\n \"DROP [COLUMN]\",\n \"RENAME COLUMN\",\n \"RENAME TO\",\n \"ALTER [COLUMN]\",\n \"{SET | DROP} DEFAULT\",\n // for alter column\n \"ADD SCOPE\",\n // for alter column\n \"DROP SCOPE {CASCADE | RESTRICT}\",\n // for alter column\n \"RESTART WITH\",\n // for alter column\n // - truncate:\n \"TRUNCATE TABLE\",\n // other\n \"SET SCHEMA\"\n]);\nvar reservedSetOperations14 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT [ALL | DISTINCT]\",\n \"INTERSECT [ALL | DISTINCT]\"\n]);\nvar reservedJoins14 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\"\n]);\nvar reservedPhrases14 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar sql = {\n name: \"sql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect14,\n reservedClauses: [...reservedClauses14, ...standardOnelineClauses13, ...tabularOnelineClauses13],\n reservedSetOperations: reservedSetOperations14,\n reservedJoins: reservedJoins14,\n reservedPhrases: reservedPhrases14,\n reservedKeywords: keywords14,\n reservedDataTypes: dataTypes14,\n reservedFunctionNames: functions14,\n stringTypes: [\n { quote: \"''-qq-bs\", prefixes: [\"N\", \"U&\"] },\n { quote: \"''-raw\", prefixes: [\"X\"], requirePrefix: true }\n ],\n identTypes: [`\"\"-qq`, \"``\"],\n paramTypes: { positional: true },\n operators: [\"||\"]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses13, ...tabularOnelineClauses13],\n tabularOnelineClauses: tabularOnelineClauses13\n }\n};\n\n// src/languages/trino/trino.functions.ts\nvar functions15 = [\n // https://github.com/trinodb/trino/tree/432d2897bdef99388c1a47188743a061c4ac1f34/docs/src/main/sphinx/functions\n // rg '^\\.\\. function::' ./docs/src/main/sphinx/functions | cut -d' ' -f 3 | cut -d '(' -f 1 | sort | uniq\n // rg '\\* ' ./docs/src/main/sphinx/functions/list-by-topic.rst | grep '\\* :func:' | cut -d'`' -f 2\n // rg '\\* ' ./docs/src/main/sphinx/functions/list-by-topic.rst | grep -v '\\* :func:'\n // grep -e '^- ' ./docs/src/main/sphinx/functions/list.rst | grep -e '^- :func:' | cut -d'`' -f2\n // grep -e '^- ' ./docs/src/main/sphinx/functions/list.rst | grep -ve '^- :func:'\n \"ABS\",\n \"ACOS\",\n \"ALL_MATCH\",\n \"ANY_MATCH\",\n \"APPROX_DISTINCT\",\n \"APPROX_MOST_FREQUENT\",\n \"APPROX_PERCENTILE\",\n \"APPROX_SET\",\n \"ARBITRARY\",\n \"ARRAYS_OVERLAP\",\n \"ARRAY_AGG\",\n \"ARRAY_DISTINCT\",\n \"ARRAY_EXCEPT\",\n \"ARRAY_INTERSECT\",\n \"ARRAY_JOIN\",\n \"ARRAY_MAX\",\n \"ARRAY_MIN\",\n \"ARRAY_POSITION\",\n \"ARRAY_REMOVE\",\n \"ARRAY_SORT\",\n \"ARRAY_UNION\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"AT_TIMEZONE\",\n \"AVG\",\n \"BAR\",\n \"BETA_CDF\",\n \"BING_TILE\",\n \"BING_TILES_AROUND\",\n \"BING_TILE_AT\",\n \"BING_TILE_COORDINATES\",\n \"BING_TILE_POLYGON\",\n \"BING_TILE_QUADKEY\",\n \"BING_TILE_ZOOM_LEVEL\",\n \"BITWISE_AND\",\n \"BITWISE_AND_AGG\",\n \"BITWISE_LEFT_SHIFT\",\n \"BITWISE_NOT\",\n \"BITWISE_OR\",\n \"BITWISE_OR_AGG\",\n \"BITWISE_RIGHT_SHIFT\",\n \"BITWISE_RIGHT_SHIFT_ARITHMETIC\",\n \"BITWISE_XOR\",\n \"BIT_COUNT\",\n \"BOOL_AND\",\n \"BOOL_OR\",\n \"CARDINALITY\",\n \"CAST\",\n \"CBRT\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR2HEXINT\",\n \"CHECKSUM\",\n \"CHR\",\n \"CLASSIFY\",\n \"COALESCE\",\n \"CODEPOINT\",\n \"COLOR\",\n \"COMBINATIONS\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONTAINS\",\n \"CONTAINS_SEQUENCE\",\n \"CONVEX_HULL_AGG\",\n \"CORR\",\n \"COS\",\n \"COSH\",\n \"COSINE_SIMILARITY\",\n \"COUNT\",\n \"COUNT_IF\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"CRC32\",\n \"CUME_DIST\",\n \"CURRENT_CATALOG\",\n \"CURRENT_DATE\",\n \"CURRENT_GROUPS\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMEZONE\",\n \"CURRENT_USER\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATE_DIFF\",\n \"DATE_FORMAT\",\n \"DATE_PARSE\",\n \"DATE_TRUNC\",\n \"DAY\",\n \"DAY_OF_MONTH\",\n \"DAY_OF_WEEK\",\n \"DAY_OF_YEAR\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DOW\",\n \"DOY\",\n \"E\",\n \"ELEMENT_AT\",\n \"EMPTY_APPROX_SET\",\n \"EVALUATE_CLASSIFIER_PREDICTIONS\",\n \"EVERY\",\n \"EXP\",\n \"EXTRACT\",\n \"FEATURES\",\n \"FILTER\",\n \"FIRST_VALUE\",\n \"FLATTEN\",\n \"FLOOR\",\n \"FORMAT\",\n \"FORMAT_DATETIME\",\n \"FORMAT_NUMBER\",\n \"FROM_BASE\",\n \"FROM_BASE32\",\n \"FROM_BASE64\",\n \"FROM_BASE64URL\",\n \"FROM_BIG_ENDIAN_32\",\n \"FROM_BIG_ENDIAN_64\",\n \"FROM_ENCODED_POLYLINE\",\n \"FROM_GEOJSON_GEOMETRY\",\n \"FROM_HEX\",\n \"FROM_IEEE754_32\",\n \"FROM_IEEE754_64\",\n \"FROM_ISO8601_DATE\",\n \"FROM_ISO8601_TIMESTAMP\",\n \"FROM_ISO8601_TIMESTAMP_NANOS\",\n \"FROM_UNIXTIME\",\n \"FROM_UNIXTIME_NANOS\",\n \"FROM_UTF8\",\n \"GEOMETRIC_MEAN\",\n \"GEOMETRY_FROM_HADOOP_SHAPE\",\n \"GEOMETRY_INVALID_REASON\",\n \"GEOMETRY_NEAREST_POINTS\",\n \"GEOMETRY_TO_BING_TILES\",\n \"GEOMETRY_UNION\",\n \"GEOMETRY_UNION_AGG\",\n \"GREATEST\",\n \"GREAT_CIRCLE_DISTANCE\",\n \"HAMMING_DISTANCE\",\n \"HASH_COUNTS\",\n \"HISTOGRAM\",\n \"HMAC_MD5\",\n \"HMAC_SHA1\",\n \"HMAC_SHA256\",\n \"HMAC_SHA512\",\n \"HOUR\",\n \"HUMAN_READABLE_SECONDS\",\n \"IF\",\n \"INDEX\",\n \"INFINITY\",\n \"INTERSECTION_CARDINALITY\",\n \"INVERSE_BETA_CDF\",\n \"INVERSE_NORMAL_CDF\",\n \"IS_FINITE\",\n \"IS_INFINITE\",\n \"IS_JSON_SCALAR\",\n \"IS_NAN\",\n \"JACCARD_INDEX\",\n \"JSON_ARRAY_CONTAINS\",\n \"JSON_ARRAY_GET\",\n \"JSON_ARRAY_LENGTH\",\n \"JSON_EXISTS\",\n \"JSON_EXTRACT\",\n \"JSON_EXTRACT_SCALAR\",\n \"JSON_FORMAT\",\n \"JSON_PARSE\",\n \"JSON_QUERY\",\n \"JSON_SIZE\",\n \"JSON_VALUE\",\n \"KURTOSIS\",\n \"LAG\",\n \"LAST_DAY_OF_MONTH\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"LEARN_CLASSIFIER\",\n \"LEARN_LIBSVM_CLASSIFIER\",\n \"LEARN_LIBSVM_REGRESSOR\",\n \"LEARN_REGRESSOR\",\n \"LEAST\",\n \"LENGTH\",\n \"LEVENSHTEIN_DISTANCE\",\n \"LINE_INTERPOLATE_POINT\",\n \"LINE_INTERPOLATE_POINTS\",\n \"LINE_LOCATE_POINT\",\n \"LISTAGG\",\n \"LN\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"LUHN_CHECK\",\n \"MAKE_SET_DIGEST\",\n \"MAP\",\n \"MAP_AGG\",\n \"MAP_CONCAT\",\n \"MAP_ENTRIES\",\n \"MAP_FILTER\",\n \"MAP_FROM_ENTRIES\",\n \"MAP_KEYS\",\n \"MAP_UNION\",\n \"MAP_VALUES\",\n \"MAP_ZIP_WITH\",\n \"MAX\",\n \"MAX_BY\",\n \"MD5\",\n \"MERGE\",\n \"MERGE_SET_DIGEST\",\n \"MILLISECOND\",\n \"MIN\",\n \"MINUTE\",\n \"MIN_BY\",\n \"MOD\",\n \"MONTH\",\n \"MULTIMAP_AGG\",\n \"MULTIMAP_FROM_ENTRIES\",\n \"MURMUR3\",\n \"NAN\",\n \"NGRAMS\",\n \"NONE_MATCH\",\n \"NORMALIZE\",\n \"NORMAL_CDF\",\n \"NOW\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLIF\",\n \"NUMERIC_HISTOGRAM\",\n \"OBJECTID\",\n \"OBJECTID_TIMESTAMP\",\n \"PARSE_DATA_SIZE\",\n \"PARSE_DATETIME\",\n \"PARSE_DURATION\",\n \"PERCENT_RANK\",\n \"PI\",\n \"POSITION\",\n \"POW\",\n \"POWER\",\n \"QDIGEST_AGG\",\n \"QUARTER\",\n \"RADIANS\",\n \"RAND\",\n \"RANDOM\",\n \"RANK\",\n \"REDUCE\",\n \"REDUCE_AGG\",\n \"REGEXP_COUNT\",\n \"REGEXP_EXTRACT\",\n \"REGEXP_EXTRACT_ALL\",\n \"REGEXP_LIKE\",\n \"REGEXP_POSITION\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SPLIT\",\n \"REGRESS\",\n \"REGR_INTERCEPT\",\n \"REGR_SLOPE\",\n \"RENDER\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RGB\",\n \"ROUND\",\n \"ROW_NUMBER\",\n \"RPAD\",\n \"RTRIM\",\n \"SECOND\",\n \"SEQUENCE\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"SHUFFLE\",\n \"SIGN\",\n \"SIMPLIFY_GEOMETRY\",\n \"SIN\",\n \"SKEWNESS\",\n \"SLICE\",\n \"SOUNDEX\",\n \"SPATIAL_PARTITIONING\",\n \"SPATIAL_PARTITIONS\",\n \"SPLIT\",\n \"SPLIT_PART\",\n \"SPLIT_TO_MAP\",\n \"SPLIT_TO_MULTIMAP\",\n \"SPOOKY_HASH_V2_32\",\n \"SPOOKY_HASH_V2_64\",\n \"SQRT\",\n \"STARTS_WITH\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STRPOS\",\n \"ST_AREA\",\n \"ST_ASBINARY\",\n \"ST_ASTEXT\",\n \"ST_BOUNDARY\",\n \"ST_BUFFER\",\n \"ST_CENTROID\",\n \"ST_CONTAINS\",\n \"ST_CONVEXHULL\",\n \"ST_COORDDIM\",\n \"ST_CROSSES\",\n \"ST_DIFFERENCE\",\n \"ST_DIMENSION\",\n \"ST_DISJOINT\",\n \"ST_DISTANCE\",\n \"ST_ENDPOINT\",\n \"ST_ENVELOPE\",\n \"ST_ENVELOPEASPTS\",\n \"ST_EQUALS\",\n \"ST_EXTERIORRING\",\n \"ST_GEOMETRIES\",\n \"ST_GEOMETRYFROMTEXT\",\n \"ST_GEOMETRYN\",\n \"ST_GEOMETRYTYPE\",\n \"ST_GEOMFROMBINARY\",\n \"ST_INTERIORRINGN\",\n \"ST_INTERIORRINGS\",\n \"ST_INTERSECTION\",\n \"ST_INTERSECTS\",\n \"ST_ISCLOSED\",\n \"ST_ISEMPTY\",\n \"ST_ISRING\",\n \"ST_ISSIMPLE\",\n \"ST_ISVALID\",\n \"ST_LENGTH\",\n \"ST_LINEFROMTEXT\",\n \"ST_LINESTRING\",\n \"ST_MULTIPOINT\",\n \"ST_NUMGEOMETRIES\",\n \"ST_NUMINTERIORRING\",\n \"ST_NUMPOINTS\",\n \"ST_OVERLAPS\",\n \"ST_POINT\",\n \"ST_POINTN\",\n \"ST_POINTS\",\n \"ST_POLYGON\",\n \"ST_RELATE\",\n \"ST_STARTPOINT\",\n \"ST_SYMDIFFERENCE\",\n \"ST_TOUCHES\",\n \"ST_UNION\",\n \"ST_WITHIN\",\n \"ST_X\",\n \"ST_XMAX\",\n \"ST_XMIN\",\n \"ST_Y\",\n \"ST_YMAX\",\n \"ST_YMIN\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUM\",\n \"TAN\",\n \"TANH\",\n \"TDIGEST_AGG\",\n \"TIMESTAMP_OBJECTID\",\n \"TIMEZONE_HOUR\",\n \"TIMEZONE_MINUTE\",\n \"TO_BASE\",\n \"TO_BASE32\",\n \"TO_BASE64\",\n \"TO_BASE64URL\",\n \"TO_BIG_ENDIAN_32\",\n \"TO_BIG_ENDIAN_64\",\n \"TO_CHAR\",\n \"TO_DATE\",\n \"TO_ENCODED_POLYLINE\",\n \"TO_GEOJSON_GEOMETRY\",\n \"TO_GEOMETRY\",\n \"TO_HEX\",\n \"TO_IEEE754_32\",\n \"TO_IEEE754_64\",\n \"TO_ISO8601\",\n \"TO_MILLISECONDS\",\n \"TO_SPHERICAL_GEOGRAPHY\",\n \"TO_TIMESTAMP\",\n \"TO_UNIXTIME\",\n \"TO_UTF8\",\n \"TRANSFORM\",\n \"TRANSFORM_KEYS\",\n \"TRANSFORM_VALUES\",\n \"TRANSLATE\",\n \"TRIM\",\n \"TRIM_ARRAY\",\n \"TRUNCATE\",\n \"TRY\",\n \"TRY_CAST\",\n \"TYPEOF\",\n \"UPPER\",\n \"URL_DECODE\",\n \"URL_ENCODE\",\n \"URL_EXTRACT_FRAGMENT\",\n \"URL_EXTRACT_HOST\",\n \"URL_EXTRACT_PARAMETER\",\n \"URL_EXTRACT_PATH\",\n \"URL_EXTRACT_PORT\",\n \"URL_EXTRACT_PROTOCOL\",\n \"URL_EXTRACT_QUERY\",\n \"UUID\",\n \"VALUES_AT_QUANTILES\",\n \"VALUE_AT_QUANTILE\",\n \"VARIANCE\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VERSION\",\n \"WEEK\",\n \"WEEK_OF_YEAR\",\n \"WIDTH_BUCKET\",\n \"WILSON_INTERVAL_LOWER\",\n \"WILSON_INTERVAL_UPPER\",\n \"WITH_TIMEZONE\",\n \"WORD_STEM\",\n \"XXHASH64\",\n \"YEAR\",\n \"YEAR_OF_WEEK\",\n \"YOW\",\n \"ZIP\",\n \"ZIP_WITH\",\n // https://trino.io/docs/current/sql/match-recognize.html#row-pattern-recognition-expressions\n \"CLASSIFIER\",\n \"FIRST\",\n \"LAST\",\n \"MATCH_NUMBER\",\n \"NEXT\",\n \"PERMUTE\",\n \"PREV\"\n];\n\n// src/languages/trino/trino.keywords.ts\nvar keywords15 = [\n // https://github.com/trinodb/trino/blob/432d2897bdef99388c1a47188743a061c4ac1f34/core/trino-parser/src/main/antlr4/io/trino/sql/parser/SqlBase.g4#L858-L1128\n \"ABSENT\",\n \"ADD\",\n \"ADMIN\",\n \"AFTER\",\n \"ALL\",\n \"ALTER\",\n \"ANALYZE\",\n \"AND\",\n \"ANY\",\n \"AS\",\n \"ASC\",\n \"AT\",\n \"AUTHORIZATION\",\n \"BERNOULLI\",\n \"BETWEEN\",\n \"BOTH\",\n \"BY\",\n \"CALL\",\n \"CASCADE\",\n \"CASE\",\n \"CATALOGS\",\n \"COLUMN\",\n \"COLUMNS\",\n \"COMMENT\",\n \"COMMIT\",\n \"COMMITTED\",\n \"CONDITIONAL\",\n \"CONSTRAINT\",\n \"COPARTITION\",\n \"CREATE\",\n \"CROSS\",\n \"CUBE\",\n \"CURRENT\",\n \"CURRENT_PATH\",\n \"CURRENT_ROLE\",\n \"DATA\",\n \"DEALLOCATE\",\n \"DEFAULT\",\n \"DEFINE\",\n \"DEFINER\",\n \"DELETE\",\n \"DENY\",\n \"DESC\",\n \"DESCRIBE\",\n \"DESCRIPTOR\",\n \"DISTINCT\",\n \"DISTRIBUTED\",\n \"DOUBLE\",\n \"DROP\",\n \"ELSE\",\n \"EMPTY\",\n \"ENCODING\",\n \"END\",\n \"ERROR\",\n \"ESCAPE\",\n \"EXCEPT\",\n \"EXCLUDING\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXPLAIN\",\n \"FALSE\",\n \"FETCH\",\n \"FINAL\",\n \"FIRST\",\n \"FOLLOWING\",\n \"FOR\",\n \"FROM\",\n \"FULL\",\n \"FUNCTIONS\",\n \"GRANT\",\n \"GRANTED\",\n \"GRANTS\",\n \"GRAPHVIZ\",\n \"GROUP\",\n \"GROUPING\",\n \"GROUPS\",\n \"HAVING\",\n \"IGNORE\",\n \"IN\",\n \"INCLUDING\",\n \"INITIAL\",\n \"INNER\",\n \"INPUT\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTERVAL\",\n \"INTO\",\n \"INVOKER\",\n \"IO\",\n \"IS\",\n \"ISOLATION\",\n \"JOIN\",\n \"JSON\",\n \"JSON_ARRAY\",\n \"JSON_OBJECT\",\n \"KEEP\",\n \"KEY\",\n \"KEYS\",\n \"LAST\",\n \"LATERAL\",\n \"LEADING\",\n \"LEFT\",\n \"LEVEL\",\n \"LIKE\",\n \"LIMIT\",\n \"LOCAL\",\n \"LOGICAL\",\n \"MATCH\",\n \"MATCHED\",\n \"MATCHES\",\n \"MATCH_RECOGNIZE\",\n \"MATERIALIZED\",\n \"MEASURES\",\n \"NATURAL\",\n \"NEXT\",\n \"NFC\",\n \"NFD\",\n \"NFKC\",\n \"NFKD\",\n \"NO\",\n \"NONE\",\n \"NOT\",\n \"NULL\",\n \"NULLS\",\n \"OBJECT\",\n \"OF\",\n \"OFFSET\",\n \"OMIT\",\n \"ON\",\n \"ONE\",\n \"ONLY\",\n \"OPTION\",\n \"OR\",\n \"ORDER\",\n \"ORDINALITY\",\n \"OUTER\",\n \"OUTPUT\",\n \"OVER\",\n \"OVERFLOW\",\n \"PARTITION\",\n \"PARTITIONS\",\n \"PASSING\",\n \"PAST\",\n \"PATH\",\n \"PATTERN\",\n \"PER\",\n \"PERMUTE\",\n \"PRECEDING\",\n \"PRECISION\",\n \"PREPARE\",\n \"PRIVILEGES\",\n \"PROPERTIES\",\n \"PRUNE\",\n \"QUOTES\",\n \"RANGE\",\n \"READ\",\n \"RECURSIVE\",\n \"REFRESH\",\n \"RENAME\",\n \"REPEATABLE\",\n \"RESET\",\n \"RESPECT\",\n \"RESTRICT\",\n \"RETURNING\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLE\",\n \"ROLES\",\n \"ROLLBACK\",\n \"ROLLUP\",\n \"ROW\",\n \"ROWS\",\n \"RUNNING\",\n \"SCALAR\",\n \"SCHEMA\",\n \"SCHEMAS\",\n \"SECURITY\",\n \"SEEK\",\n \"SELECT\",\n \"SERIALIZABLE\",\n \"SESSION\",\n \"SET\",\n \"SETS\",\n \"SHOW\",\n \"SKIP\",\n \"SOME\",\n \"START\",\n \"STATS\",\n \"STRING\",\n \"SUBSET\",\n \"SYSTEM\",\n \"TABLE\",\n \"TABLES\",\n \"TABLESAMPLE\",\n \"TEXT\",\n \"THEN\",\n \"TIES\",\n \"TIME\",\n \"TIMESTAMP\",\n \"TO\",\n \"TRAILING\",\n \"TRANSACTION\",\n \"TRUE\",\n \"TYPE\",\n \"UESCAPE\",\n \"UNBOUNDED\",\n \"UNCOMMITTED\",\n \"UNCONDITIONAL\",\n \"UNION\",\n \"UNIQUE\",\n \"UNKNOWN\",\n \"UNMATCHED\",\n \"UNNEST\",\n \"UPDATE\",\n \"USE\",\n \"USER\",\n \"USING\",\n \"UTF16\",\n \"UTF32\",\n \"UTF8\",\n \"VALIDATE\",\n \"VALUE\",\n \"VALUES\",\n \"VERBOSE\",\n \"VIEW\",\n \"WHEN\",\n \"WHERE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHIN\",\n \"WITHOUT\",\n \"WORK\",\n \"WRAPPER\",\n \"WRITE\",\n \"ZONE\"\n];\nvar dataTypes15 = [\n // https://github.com/trinodb/trino/blob/432d2897bdef99388c1a47188743a061c4ac1f34/core/trino-main/src/main/java/io/trino/metadata/TypeRegistry.java#L131-L168\n // or https://trino.io/docs/current/language/types.html\n \"BIGINT\",\n \"INT\",\n \"INTEGER\",\n \"SMALLINT\",\n \"TINYINT\",\n \"BOOLEAN\",\n \"DATE\",\n \"DECIMAL\",\n \"REAL\",\n \"DOUBLE\",\n \"HYPERLOGLOG\",\n \"QDIGEST\",\n \"TDIGEST\",\n \"P4HYPERLOGLOG\",\n \"INTERVAL\",\n \"TIMESTAMP\",\n \"TIME\",\n \"VARBINARY\",\n \"VARCHAR\",\n \"CHAR\",\n \"ROW\",\n \"ARRAY\",\n \"MAP\",\n \"JSON\",\n \"JSON2016\",\n \"IPADDRESS\",\n \"GEOMETRY\",\n \"UUID\",\n \"SETDIGEST\",\n \"JONIREGEXP\",\n \"RE2JREGEXP\",\n \"LIKEPATTERN\",\n \"COLOR\",\n \"CODEPOINTS\",\n \"FUNCTION\",\n \"JSONPATH\"\n];\n\n// src/languages/trino/trino.formatter.ts\nvar reservedSelect15 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses15 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY [ALL | DISTINCT]\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n // Data manipulation\n // - insert:\n \"INSERT INTO\",\n \"VALUES\",\n // - update:\n \"SET\",\n // MATCH_RECOGNIZE\n \"MATCH_RECOGNIZE\",\n \"MEASURES\",\n \"ONE ROW PER MATCH\",\n \"ALL ROWS PER MATCH\",\n \"AFTER MATCH\",\n \"PATTERN\",\n \"SUBSET\",\n \"DEFINE\"\n]);\nvar standardOnelineClauses14 = expandPhrases([\"CREATE TABLE [IF NOT EXISTS]\"]);\nvar tabularOnelineClauses14 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [MATERIALIZED] VIEW\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE [IF EXISTS]\",\n \"ADD COLUMN [IF NOT EXISTS]\",\n \"DROP COLUMN [IF EXISTS]\",\n \"RENAME COLUMN [IF EXISTS]\",\n \"RENAME TO\",\n \"SET AUTHORIZATION [USER | ROLE]\",\n \"SET PROPERTIES\",\n \"EXECUTE\",\n // - truncate:\n \"TRUNCATE TABLE\",\n // other\n \"ALTER SCHEMA\",\n \"ALTER MATERIALIZED VIEW\",\n \"ALTER VIEW\",\n \"CREATE SCHEMA\",\n \"CREATE ROLE\",\n \"DROP SCHEMA\",\n \"DROP MATERIALIZED VIEW\",\n \"DROP VIEW\",\n \"DROP ROLE\",\n // Auxiliary\n \"EXPLAIN\",\n \"ANALYZE\",\n \"EXPLAIN ANALYZE\",\n \"EXPLAIN ANALYZE VERBOSE\",\n \"USE\",\n \"DESCRIBE INPUT\",\n \"DESCRIBE OUTPUT\",\n \"REFRESH MATERIALIZED VIEW\",\n \"RESET SESSION\",\n \"SET SESSION\",\n \"SET PATH\",\n \"SET TIME ZONE\",\n \"SHOW GRANTS\",\n \"SHOW CREATE TABLE\",\n \"SHOW CREATE SCHEMA\",\n \"SHOW CREATE VIEW\",\n \"SHOW CREATE MATERIALIZED VIEW\",\n \"SHOW TABLES\",\n \"SHOW SCHEMAS\",\n \"SHOW CATALOGS\",\n \"SHOW COLUMNS\",\n \"SHOW STATS FOR\",\n \"SHOW ROLES\",\n \"SHOW CURRENT ROLES\",\n \"SHOW ROLE GRANTS\",\n \"SHOW FUNCTIONS\",\n \"SHOW SESSION\"\n]);\nvar reservedSetOperations15 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT [ALL | DISTINCT]\",\n \"INTERSECT [ALL | DISTINCT]\"\n]);\nvar reservedJoins15 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL [INNER] JOIN\",\n \"NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN\"\n]);\nvar reservedPhrases15 = expandPhrases([\n \"{ROWS | RANGE | GROUPS} BETWEEN\",\n // comparison operator\n \"IS [NOT] DISTINCT FROM\"\n]);\nvar trino = {\n name: \"trino\",\n tokenizerOptions: {\n reservedSelect: reservedSelect15,\n reservedClauses: [...reservedClauses15, ...standardOnelineClauses14, ...tabularOnelineClauses14],\n reservedSetOperations: reservedSetOperations15,\n reservedJoins: reservedJoins15,\n reservedPhrases: reservedPhrases15,\n reservedKeywords: keywords15,\n reservedDataTypes: dataTypes15,\n reservedFunctionNames: functions15,\n // Trino also supports {- ... -} parenthesis.\n // The formatting of these currently works out as a result of { and -\n // not getting a space added in-between.\n // https://trino.io/docs/current/sql/match-recognize.html#row-pattern-syntax\n extraParens: [\"[]\", \"{}\"],\n // https://trino.io/docs/current/language/types.html#string\n // https://trino.io/docs/current/language/types.html#varbinary\n stringTypes: [\n { quote: \"''-qq\", prefixes: [\"U&\"] },\n { quote: \"''-raw\", prefixes: [\"X\"], requirePrefix: true }\n ],\n // https://trino.io/docs/current/language/reserved.html\n identTypes: ['\"\"-qq'],\n paramTypes: { positional: true },\n operators: [\n \"%\",\n \"->\",\n \"=>\",\n \":\",\n \"||\",\n // Row pattern syntax\n \"|\",\n \"^\",\n \"$\"\n // '?', conflicts with positional placeholders\n ]\n },\n formatOptions: {\n onelineClauses: [...standardOnelineClauses14, ...tabularOnelineClauses14],\n tabularOnelineClauses: tabularOnelineClauses14\n }\n};\n\n// src/languages/transactsql/transactsql.functions.ts\nvar functions16 = [\n // https://docs.microsoft.com/en-us/sql/t-sql/functions/functions?view=sql-server-ver15\n // aggregate\n \"APPROX_COUNT_DISTINCT\",\n \"AVG\",\n \"CHECKSUM_AGG\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"GROUPING\",\n \"GROUPING_ID\",\n \"MAX\",\n \"MIN\",\n \"STDEV\",\n \"STDEVP\",\n \"SUM\",\n \"VAR\",\n \"VARP\",\n // analytic\n \"CUME_DIST\",\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERCENT_RANK\",\n \"Collation - COLLATIONPROPERTY\",\n \"Collation - TERTIARY_WEIGHTS\",\n // configuration\n \"@@DBTS\",\n \"@@LANGID\",\n \"@@LANGUAGE\",\n \"@@LOCK_TIMEOUT\",\n \"@@MAX_CONNECTIONS\",\n \"@@MAX_PRECISION\",\n \"@@NESTLEVEL\",\n \"@@OPTIONS\",\n \"@@REMSERVER\",\n \"@@SERVERNAME\",\n \"@@SERVICENAME\",\n \"@@SPID\",\n \"@@TEXTSIZE\",\n \"@@VERSION\",\n // conversion\n \"CAST\",\n \"CONVERT\",\n \"PARSE\",\n \"TRY_CAST\",\n \"TRY_CONVERT\",\n \"TRY_PARSE\",\n // cryptographic\n \"ASYMKEY_ID\",\n \"ASYMKEYPROPERTY\",\n \"CERTPROPERTY\",\n \"CERT_ID\",\n \"CRYPT_GEN_RANDOM\",\n \"DECRYPTBYASYMKEY\",\n \"DECRYPTBYCERT\",\n \"DECRYPTBYKEY\",\n \"DECRYPTBYKEYAUTOASYMKEY\",\n \"DECRYPTBYKEYAUTOCERT\",\n \"DECRYPTBYPASSPHRASE\",\n \"ENCRYPTBYASYMKEY\",\n \"ENCRYPTBYCERT\",\n \"ENCRYPTBYKEY\",\n \"ENCRYPTBYPASSPHRASE\",\n \"HASHBYTES\",\n \"IS_OBJECTSIGNED\",\n \"KEY_GUID\",\n \"KEY_ID\",\n \"KEY_NAME\",\n \"SIGNBYASYMKEY\",\n \"SIGNBYCERT\",\n \"SYMKEYPROPERTY\",\n \"VERIFYSIGNEDBYCERT\",\n \"VERIFYSIGNEDBYASYMKEY\",\n // cursor\n \"@@CURSOR_ROWS\",\n \"@@FETCH_STATUS\",\n \"CURSOR_STATUS\",\n // dataType\n \"DATALENGTH\",\n \"IDENT_CURRENT\",\n \"IDENT_INCR\",\n \"IDENT_SEED\",\n \"IDENTITY\",\n \"SQL_VARIANT_PROPERTY\",\n // datetime\n \"@@DATEFIRST\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TIMEZONE\",\n \"CURRENT_TIMEZONE_ID\",\n \"DATEADD\",\n \"DATEDIFF\",\n \"DATEDIFF_BIG\",\n \"DATEFROMPARTS\",\n \"DATENAME\",\n \"DATEPART\",\n \"DATETIME2FROMPARTS\",\n \"DATETIMEFROMPARTS\",\n \"DATETIMEOFFSETFROMPARTS\",\n \"DAY\",\n \"EOMONTH\",\n \"GETDATE\",\n \"GETUTCDATE\",\n \"ISDATE\",\n \"MONTH\",\n \"SMALLDATETIMEFROMPARTS\",\n \"SWITCHOFFSET\",\n \"SYSDATETIME\",\n \"SYSDATETIMEOFFSET\",\n \"SYSUTCDATETIME\",\n \"TIMEFROMPARTS\",\n \"TODATETIMEOFFSET\",\n \"YEAR\",\n \"JSON\",\n \"ISJSON\",\n \"JSON_VALUE\",\n \"JSON_QUERY\",\n \"JSON_MODIFY\",\n // mathematical\n \"ABS\",\n \"ACOS\",\n \"ASIN\",\n \"ATAN\",\n \"ATN2\",\n \"CEILING\",\n \"COS\",\n \"COT\",\n \"DEGREES\",\n \"EXP\",\n \"FLOOR\",\n \"LOG\",\n \"LOG10\",\n \"PI\",\n \"POWER\",\n \"RADIANS\",\n \"RAND\",\n \"ROUND\",\n \"SIGN\",\n \"SIN\",\n \"SQRT\",\n \"SQUARE\",\n \"TAN\",\n \"CHOOSE\",\n \"GREATEST\",\n \"IIF\",\n \"LEAST\",\n // metadata\n \"@@PROCID\",\n \"APP_NAME\",\n \"APPLOCK_MODE\",\n \"APPLOCK_TEST\",\n \"ASSEMBLYPROPERTY\",\n \"COL_LENGTH\",\n \"COL_NAME\",\n \"COLUMNPROPERTY\",\n \"DATABASEPROPERTYEX\",\n \"DB_ID\",\n \"DB_NAME\",\n \"FILE_ID\",\n \"FILE_IDEX\",\n \"FILE_NAME\",\n \"FILEGROUP_ID\",\n \"FILEGROUP_NAME\",\n \"FILEGROUPPROPERTY\",\n \"FILEPROPERTY\",\n \"FILEPROPERTYEX\",\n \"FULLTEXTCATALOGPROPERTY\",\n \"FULLTEXTSERVICEPROPERTY\",\n \"INDEX_COL\",\n \"INDEXKEY_PROPERTY\",\n \"INDEXPROPERTY\",\n \"NEXT VALUE FOR\",\n \"OBJECT_DEFINITION\",\n \"OBJECT_ID\",\n \"OBJECT_NAME\",\n \"OBJECT_SCHEMA_NAME\",\n \"OBJECTPROPERTY\",\n \"OBJECTPROPERTYEX\",\n \"ORIGINAL_DB_NAME\",\n \"PARSENAME\",\n \"SCHEMA_ID\",\n \"SCHEMA_NAME\",\n \"SCOPE_IDENTITY\",\n \"SERVERPROPERTY\",\n \"STATS_DATE\",\n \"TYPE_ID\",\n \"TYPE_NAME\",\n \"TYPEPROPERTY\",\n // ranking\n \"DENSE_RANK\",\n \"NTILE\",\n \"RANK\",\n \"ROW_NUMBER\",\n \"PUBLISHINGSERVERNAME\",\n // security\n \"CERTENCODED\",\n \"CERTPRIVATEKEY\",\n \"CURRENT_USER\",\n \"DATABASE_PRINCIPAL_ID\",\n \"HAS_DBACCESS\",\n \"HAS_PERMS_BY_NAME\",\n \"IS_MEMBER\",\n \"IS_ROLEMEMBER\",\n \"IS_SRVROLEMEMBER\",\n \"LOGINPROPERTY\",\n \"ORIGINAL_LOGIN\",\n \"PERMISSIONS\",\n \"PWDENCRYPT\",\n \"PWDCOMPARE\",\n \"SESSION_USER\",\n \"SESSIONPROPERTY\",\n \"SUSER_ID\",\n \"SUSER_NAME\",\n \"SUSER_SID\",\n \"SUSER_SNAME\",\n \"SYSTEM_USER\",\n \"USER\",\n \"USER_ID\",\n \"USER_NAME\",\n // string\n \"ASCII\",\n \"CHAR\",\n \"CHARINDEX\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"DIFFERENCE\",\n \"FORMAT\",\n \"LEFT\",\n \"LEN\",\n \"LOWER\",\n \"LTRIM\",\n \"NCHAR\",\n \"PATINDEX\",\n \"QUOTENAME\",\n \"REPLACE\",\n \"REPLICATE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RTRIM\",\n \"SOUNDEX\",\n \"SPACE\",\n \"STR\",\n \"STRING_AGG\",\n \"STRING_ESCAPE\",\n \"STUFF\",\n \"SUBSTRING\",\n \"TRANSLATE\",\n \"TRIM\",\n \"UNICODE\",\n \"UPPER\",\n // system\n \"$PARTITION\",\n \"@@ERROR\",\n \"@@IDENTITY\",\n \"@@PACK_RECEIVED\",\n \"@@ROWCOUNT\",\n \"@@TRANCOUNT\",\n \"BINARY_CHECKSUM\",\n \"CHECKSUM\",\n \"COMPRESS\",\n \"CONNECTIONPROPERTY\",\n \"CONTEXT_INFO\",\n \"CURRENT_REQUEST_ID\",\n \"CURRENT_TRANSACTION_ID\",\n \"DECOMPRESS\",\n \"ERROR_LINE\",\n \"ERROR_MESSAGE\",\n \"ERROR_NUMBER\",\n \"ERROR_PROCEDURE\",\n \"ERROR_SEVERITY\",\n \"ERROR_STATE\",\n \"FORMATMESSAGE\",\n \"GET_FILESTREAM_TRANSACTION_CONTEXT\",\n \"GETANSINULL\",\n \"HOST_ID\",\n \"HOST_NAME\",\n \"ISNULL\",\n \"ISNUMERIC\",\n \"MIN_ACTIVE_ROWVERSION\",\n \"NEWID\",\n \"NEWSEQUENTIALID\",\n \"ROWCOUNT_BIG\",\n \"SESSION_CONTEXT\",\n \"XACT_STATE\",\n // statistical\n \"@@CONNECTIONS\",\n \"@@CPU_BUSY\",\n \"@@IDLE\",\n \"@@IO_BUSY\",\n \"@@PACK_SENT\",\n \"@@PACKET_ERRORS\",\n \"@@TIMETICKS\",\n \"@@TOTAL_ERRORS\",\n \"@@TOTAL_READ\",\n \"@@TOTAL_WRITE\",\n \"TEXTPTR\",\n \"TEXTVALID\",\n // trigger\n \"COLUMNS_UPDATED\",\n \"EVENTDATA\",\n \"TRIGGER_NESTLEVEL\",\n \"UPDATE\",\n // Shorthand functions to use in place of CASE expression\n \"COALESCE\",\n \"NULLIF\"\n];\n\n// src/languages/transactsql/transactsql.keywords.ts\nvar keywords16 = [\n // https://docs.microsoft.com/en-us/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-ver15\n // standard\n \"ADD\",\n \"ALL\",\n \"ALTER\",\n \"AND\",\n \"ANY\",\n \"AS\",\n \"ASC\",\n \"AUTHORIZATION\",\n \"BACKUP\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BREAK\",\n \"BROWSE\",\n \"BULK\",\n \"BY\",\n \"CASCADE\",\n \"CHECK\",\n \"CHECKPOINT\",\n \"CLOSE\",\n \"CLUSTERED\",\n \"COALESCE\",\n \"COLLATE\",\n \"COLUMN\",\n \"COMMIT\",\n \"COMPUTE\",\n \"CONSTRAINT\",\n \"CONTAINS\",\n \"CONTAINSTABLE\",\n \"CONTINUE\",\n \"CONVERT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"DATABASE\",\n \"DBCC\",\n \"DEALLOCATE\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DELETE\",\n \"DENY\",\n \"DESC\",\n \"DISK\",\n \"DISTINCT\",\n \"DISTRIBUTED\",\n \"DROP\",\n \"DUMP\",\n \"ERRLVL\",\n \"ESCAPE\",\n \"EXEC\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXIT\",\n \"EXTERNAL\",\n \"FETCH\",\n \"FILE\",\n \"FILLFACTOR\",\n \"FOR\",\n \"FOREIGN\",\n \"FREETEXT\",\n \"FREETEXTTABLE\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GOTO\",\n \"GRANT\",\n \"GROUP\",\n \"HAVING\",\n \"HOLDLOCK\",\n \"IDENTITY\",\n \"IDENTITYCOL\",\n \"IDENTITY_INSERT\",\n \"IF\",\n \"IN\",\n \"INDEX\",\n \"INNER\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"JOIN\",\n \"KEY\",\n \"KILL\",\n \"LEFT\",\n \"LIKE\",\n \"LINENO\",\n \"LOAD\",\n \"MERGE\",\n \"NOCHECK\",\n \"NONCLUSTERED\",\n \"NOT\",\n \"NULL\",\n \"NULLIF\",\n \"OF\",\n \"OFF\",\n \"OFFSETS\",\n \"ON\",\n \"OPEN\",\n \"OPENDATASOURCE\",\n \"OPENQUERY\",\n \"OPENROWSET\",\n \"OPENXML\",\n \"OPTION\",\n \"OR\",\n \"ORDER\",\n \"OUTER\",\n \"OVER\",\n \"PERCENT\",\n \"PIVOT\",\n \"PLAN\",\n \"PRIMARY\",\n \"PRINT\",\n \"PROC\",\n \"PROCEDURE\",\n \"PUBLIC\",\n \"RAISERROR\",\n \"READ\",\n \"READTEXT\",\n \"RECONFIGURE\",\n \"REFERENCES\",\n \"REPLICATION\",\n \"RESTORE\",\n \"RESTRICT\",\n \"RETURN\",\n \"REVERT\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLLBACK\",\n \"ROWCOUNT\",\n \"ROWGUIDCOL\",\n \"RULE\",\n \"SAVE\",\n \"SCHEMA\",\n \"SECURITYAUDIT\",\n \"SELECT\",\n \"SEMANTICKEYPHRASETABLE\",\n \"SEMANTICSIMILARITYDETAILSTABLE\",\n \"SEMANTICSIMILARITYTABLE\",\n \"SESSION_USER\",\n \"SET\",\n \"SETUSER\",\n \"SHUTDOWN\",\n \"SOME\",\n \"STATISTICS\",\n \"SYSTEM_USER\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"TEXTSIZE\",\n \"THEN\",\n \"TO\",\n \"TOP\",\n \"TRAN\",\n \"TRANSACTION\",\n \"TRIGGER\",\n \"TRUNCATE\",\n \"TRY_CONVERT\",\n \"TSEQUAL\",\n \"UNION\",\n \"UNIQUE\",\n \"UNPIVOT\",\n \"UPDATE\",\n \"UPDATETEXT\",\n \"USE\",\n \"USER\",\n \"VALUES\",\n \"VIEW\",\n \"WAITFOR\",\n \"WHERE\",\n \"WHILE\",\n \"WITH\",\n \"WITHIN GROUP\",\n \"WRITETEXT\",\n // odbc\n \"ABSOLUTE\",\n \"ACTION\",\n \"ADA\",\n \"ALLOCATE\",\n \"ARE\",\n \"ASSERTION\",\n \"AT\",\n \"AVG\",\n \"BIT_LENGTH\",\n \"BOTH\",\n \"CASCADED\",\n \"CAST\",\n \"CATALOG\",\n \"CHARACTER_LENGTH\",\n \"CHAR_LENGTH\",\n \"COLLATION\",\n \"CONNECT\",\n \"CONNECTION\",\n \"CONSTRAINTS\",\n \"CORRESPONDING\",\n \"COUNT\",\n \"DAY\",\n \"DEFERRABLE\",\n \"DEFERRED\",\n \"DESCRIBE\",\n \"DESCRIPTOR\",\n \"DIAGNOSTICS\",\n \"DISCONNECT\",\n \"DOMAIN\",\n \"END-EXEC\",\n \"EXCEPTION\",\n \"EXTRACT\",\n \"FALSE\",\n \"FIRST\",\n \"FORTRAN\",\n \"FOUND\",\n \"GET\",\n \"GLOBAL\",\n \"GO\",\n \"HOUR\",\n \"IMMEDIATE\",\n \"INCLUDE\",\n \"INDICATOR\",\n \"INITIALLY\",\n \"INPUT\",\n \"INSENSITIVE\",\n \"INTERVAL\",\n \"ISOLATION\",\n \"LANGUAGE\",\n \"LAST\",\n \"LEADING\",\n \"LEVEL\",\n \"LOCAL\",\n \"LOWER\",\n \"MATCH\",\n \"MAX\",\n \"MIN\",\n \"MINUTE\",\n \"MODULE\",\n \"MONTH\",\n \"NAMES\",\n \"NATURAL\",\n \"NEXT\",\n \"NO\",\n \"NONE\",\n \"OCTET_LENGTH\",\n \"ONLY\",\n \"OUTPUT\",\n \"OVERLAPS\",\n \"PAD\",\n \"PARTIAL\",\n \"PASCAL\",\n \"POSITION\",\n \"PREPARE\",\n \"PRESERVE\",\n \"PRIOR\",\n \"PRIVILEGES\",\n \"RELATIVE\",\n \"ROWS\",\n \"SCROLL\",\n \"SECOND\",\n \"SECTION\",\n \"SESSION\",\n \"SIZE\",\n \"SPACE\",\n \"SQL\",\n \"SQLCA\",\n \"SQLCODE\",\n \"SQLERROR\",\n \"SQLSTATE\",\n \"SQLWARNING\",\n \"SUBSTRING\",\n \"SUM\",\n \"TEMPORARY\",\n \"TIMEZONE_HOUR\",\n \"TIMEZONE_MINUTE\",\n \"TRAILING\",\n \"TRANSLATE\",\n \"TRANSLATION\",\n \"TRIM\",\n \"TRUE\",\n \"UNKNOWN\",\n \"UPPER\",\n \"USAGE\",\n \"VALUE\",\n \"WHENEVER\",\n \"WORK\",\n \"WRITE\",\n \"YEAR\",\n \"ZONE\"\n];\nvar dataTypes16 = [\n // https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15\n \"BINARY\",\n \"BIT\",\n \"CHAR\",\n \"CHAR\",\n \"CHARACTER\",\n \"DATE\",\n \"DATETIME2\",\n \"DATETIMEOFFSET\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE\",\n \"FLOAT\",\n \"INT\",\n \"INTEGER\",\n \"NATIONAL\",\n \"NCHAR\",\n \"NUMERIC\",\n \"NVARCHAR\",\n \"PRECISION\",\n \"REAL\",\n \"SMALLINT\",\n \"TIME\",\n \"TIMESTAMP\",\n \"VARBINARY\",\n \"VARCHAR\"\n];\n\n// src/languages/transactsql/transactsql.formatter.ts\nvar reservedSelect16 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses16 = expandPhrases([\n // queries\n \"WITH\",\n \"INTO\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"WINDOW\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"OFFSET\",\n \"FETCH {FIRST | NEXT}\",\n \"FOR {BROWSE | XML | JSON}\",\n \"OPTION\",\n // Data manipulation\n // - insert:\n \"INSERT [INTO]\",\n \"VALUES\",\n // - update:\n \"SET\",\n // - merge:\n \"MERGE [INTO]\",\n \"WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]\",\n \"UPDATE SET\",\n // Data definition\n \"CREATE [OR ALTER] {PROC | PROCEDURE}\"\n]);\nvar standardOnelineClauses15 = expandPhrases([\"CREATE TABLE\"]);\nvar tabularOnelineClauses15 = expandPhrases([\n // - create:\n \"CREATE [OR ALTER] [MATERIALIZED] VIEW\",\n // - update:\n \"UPDATE\",\n \"WHERE CURRENT OF\",\n // - delete:\n \"DELETE [FROM]\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE\",\n \"ADD\",\n \"DROP COLUMN [IF EXISTS]\",\n \"ALTER COLUMN\",\n // - truncate:\n \"TRUNCATE TABLE\",\n // https://docs.microsoft.com/en-us/sql/t-sql/statements/statements?view=sql-server-ver15\n \"ADD SENSITIVITY CLASSIFICATION\",\n \"ADD SIGNATURE\",\n \"AGGREGATE\",\n \"ANSI_DEFAULTS\",\n \"ANSI_NULLS\",\n \"ANSI_NULL_DFLT_OFF\",\n \"ANSI_NULL_DFLT_ON\",\n \"ANSI_PADDING\",\n \"ANSI_WARNINGS\",\n \"APPLICATION ROLE\",\n \"ARITHABORT\",\n \"ARITHIGNORE\",\n \"ASSEMBLY\",\n \"ASYMMETRIC KEY\",\n \"AUTHORIZATION\",\n \"AVAILABILITY GROUP\",\n \"BACKUP\",\n \"BACKUP CERTIFICATE\",\n \"BACKUP MASTER KEY\",\n \"BACKUP SERVICE MASTER KEY\",\n \"BEGIN CONVERSATION TIMER\",\n \"BEGIN DIALOG CONVERSATION\",\n \"BROKER PRIORITY\",\n \"BULK INSERT\",\n \"CERTIFICATE\",\n \"CLOSE MASTER KEY\",\n \"CLOSE SYMMETRIC KEY\",\n \"COLLATE\",\n \"COLUMN ENCRYPTION KEY\",\n \"COLUMN MASTER KEY\",\n \"COLUMNSTORE INDEX\",\n \"CONCAT_NULL_YIELDS_NULL\",\n \"CONTEXT_INFO\",\n \"CONTRACT\",\n \"CREDENTIAL\",\n \"CRYPTOGRAPHIC PROVIDER\",\n \"CURSOR_CLOSE_ON_COMMIT\",\n \"DATABASE\",\n \"DATABASE AUDIT SPECIFICATION\",\n \"DATABASE ENCRYPTION KEY\",\n \"DATABASE HADR\",\n \"DATABASE SCOPED CONFIGURATION\",\n \"DATABASE SCOPED CREDENTIAL\",\n \"DATABASE SET\",\n \"DATEFIRST\",\n \"DATEFORMAT\",\n \"DEADLOCK_PRIORITY\",\n \"DENY\",\n \"DENY XML\",\n \"DISABLE TRIGGER\",\n \"ENABLE TRIGGER\",\n \"END CONVERSATION\",\n \"ENDPOINT\",\n \"EVENT NOTIFICATION\",\n \"EVENT SESSION\",\n \"EXECUTE AS\",\n \"EXTERNAL DATA SOURCE\",\n \"EXTERNAL FILE FORMAT\",\n \"EXTERNAL LANGUAGE\",\n \"EXTERNAL LIBRARY\",\n \"EXTERNAL RESOURCE POOL\",\n \"EXTERNAL TABLE\",\n \"FIPS_FLAGGER\",\n \"FMTONLY\",\n \"FORCEPLAN\",\n \"FULLTEXT CATALOG\",\n \"FULLTEXT INDEX\",\n \"FULLTEXT STOPLIST\",\n \"FUNCTION\",\n \"GET CONVERSATION GROUP\",\n \"GET_TRANSMISSION_STATUS\",\n \"GRANT\",\n \"GRANT XML\",\n \"IDENTITY_INSERT\",\n \"IMPLICIT_TRANSACTIONS\",\n \"INDEX\",\n \"LANGUAGE\",\n \"LOCK_TIMEOUT\",\n \"LOGIN\",\n \"MASTER KEY\",\n \"MESSAGE TYPE\",\n \"MOVE CONVERSATION\",\n \"NOCOUNT\",\n \"NOEXEC\",\n \"NUMERIC_ROUNDABORT\",\n \"OFFSETS\",\n \"OPEN MASTER KEY\",\n \"OPEN SYMMETRIC KEY\",\n \"PARSEONLY\",\n \"PARTITION FUNCTION\",\n \"PARTITION SCHEME\",\n \"PROCEDURE\",\n \"QUERY_GOVERNOR_COST_LIMIT\",\n \"QUEUE\",\n \"QUOTED_IDENTIFIER\",\n \"RECEIVE\",\n \"REMOTE SERVICE BINDING\",\n \"REMOTE_PROC_TRANSACTIONS\",\n \"RESOURCE GOVERNOR\",\n \"RESOURCE POOL\",\n \"RESTORE\",\n \"RESTORE FILELISTONLY\",\n \"RESTORE HEADERONLY\",\n \"RESTORE LABELONLY\",\n \"RESTORE MASTER KEY\",\n \"RESTORE REWINDONLY\",\n \"RESTORE SERVICE MASTER KEY\",\n \"RESTORE VERIFYONLY\",\n \"REVERT\",\n \"REVOKE\",\n \"REVOKE XML\",\n \"ROLE\",\n \"ROUTE\",\n \"ROWCOUNT\",\n \"RULE\",\n \"SCHEMA\",\n \"SEARCH PROPERTY LIST\",\n \"SECURITY POLICY\",\n \"SELECTIVE XML INDEX\",\n \"SEND\",\n \"SENSITIVITY CLASSIFICATION\",\n \"SEQUENCE\",\n \"SERVER AUDIT\",\n \"SERVER AUDIT SPECIFICATION\",\n \"SERVER CONFIGURATION\",\n \"SERVER ROLE\",\n \"SERVICE\",\n \"SERVICE MASTER KEY\",\n \"SETUSER\",\n \"SHOWPLAN_ALL\",\n \"SHOWPLAN_TEXT\",\n \"SHOWPLAN_XML\",\n \"SIGNATURE\",\n \"SPATIAL INDEX\",\n \"STATISTICS\",\n \"STATISTICS IO\",\n \"STATISTICS PROFILE\",\n \"STATISTICS TIME\",\n \"STATISTICS XML\",\n \"SYMMETRIC KEY\",\n \"SYNONYM\",\n \"TABLE\",\n \"TABLE IDENTITY\",\n \"TEXTSIZE\",\n \"TRANSACTION ISOLATION LEVEL\",\n \"TRIGGER\",\n \"TYPE\",\n \"UPDATE STATISTICS\",\n \"USER\",\n \"WORKLOAD GROUP\",\n \"XACT_ABORT\",\n \"XML INDEX\",\n \"XML SCHEMA COLLECTION\"\n]);\nvar reservedSetOperations16 = expandPhrases([\"UNION [ALL]\", \"EXCEPT\", \"INTERSECT\"]);\nvar reservedJoins16 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n // non-standard joins\n \"{CROSS | OUTER} APPLY\"\n]);\nvar reservedPhrases16 = expandPhrases([\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\",\n \"{ROWS | RANGE} BETWEEN\"\n]);\nvar transactsql = {\n name: \"transactsql\",\n tokenizerOptions: {\n reservedSelect: reservedSelect16,\n reservedClauses: [...reservedClauses16, ...standardOnelineClauses15, ...tabularOnelineClauses15],\n reservedSetOperations: reservedSetOperations16,\n reservedJoins: reservedJoins16,\n reservedPhrases: reservedPhrases16,\n reservedKeywords: keywords16,\n reservedDataTypes: dataTypes16,\n reservedFunctionNames: functions16,\n nestedBlockComments: true,\n stringTypes: [{ quote: \"''-qq\", prefixes: [\"N\"] }],\n identTypes: [`\"\"-qq`, \"[]\"],\n identChars: { first: \"#@\", rest: \"#@$\" },\n paramTypes: { named: [\"@\"], quoted: [\"@\"] },\n operators: [\n \"%\",\n \"&\",\n \"|\",\n \"^\",\n \"~\",\n \"!<\",\n \"!>\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"%=\",\n \"|=\",\n \"&=\",\n \"^=\",\n \"::\",\n \":\"\n ],\n propertyAccessOperators: [\"..\"]\n // TODO: Support for money constants\n },\n formatOptions: {\n alwaysDenseOperators: [\"::\"],\n onelineClauses: [...standardOnelineClauses15, ...tabularOnelineClauses15],\n tabularOnelineClauses: tabularOnelineClauses15\n }\n};\n\n// src/languages/singlestoredb/singlestoredb.keywords.ts\nvar keywords17 = [\n // List of all keywords taken from:\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/restricted-keywords/list-of-restricted-keywords.html\n // Then filtered down to reserved keywords by running\n // > SELECT * AS ;\n // for each keyword in that list and observing which of these produce an error.\n \"ADD\",\n \"ALL\",\n \"ALTER\",\n \"ANALYZE\",\n \"AND\",\n \"AS\",\n \"ASC\",\n \"ASENSITIVE\",\n \"BEFORE\",\n \"BETWEEN\",\n \"_BINARY\",\n \"BOTH\",\n \"BY\",\n \"CALL\",\n \"CASCADE\",\n \"CASE\",\n \"CHANGE\",\n \"CHECK\",\n \"COLLATE\",\n \"COLUMN\",\n \"CONDITION\",\n \"CONSTRAINT\",\n \"CONTINUE\",\n \"CONVERT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"DATABASE\",\n \"DATABASES\",\n \"DAY_HOUR\",\n \"DAY_MICROSECOND\",\n \"DAY_MINUTE\",\n \"DAY_SECOND\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DELAYED\",\n \"DELETE\",\n \"DESC\",\n \"DESCRIBE\",\n \"DETERMINISTIC\",\n \"DISTINCT\",\n \"DISTINCTROW\",\n \"DIV\",\n \"DROP\",\n \"DUAL\",\n \"EACH\",\n \"ELSE\",\n \"ELSEIF\",\n \"ENCLOSED\",\n \"ESCAPED\",\n \"EXCEPT\",\n \"EXISTS\",\n \"EXIT\",\n \"EXPLAIN\",\n \"EXTRA_JOIN\",\n \"FALSE\",\n \"FETCH\",\n \"FOR\",\n \"FORCE\",\n \"FORCE_COMPILED_MODE\",\n \"FORCE_INTERPRETER_MODE\",\n \"FOREIGN\",\n \"FROM\",\n \"FULL\",\n \"FULLTEXT\",\n \"GRANT\",\n \"GROUP\",\n \"HAVING\",\n \"HEARTBEAT_NO_LOGGING\",\n \"HIGH_PRIORITY\",\n \"HOUR_MICROSECOND\",\n \"HOUR_MINUTE\",\n \"HOUR_SECOND\",\n \"IF\",\n \"IGNORE\",\n \"IN\",\n \"INDEX\",\n \"INFILE\",\n \"INNER\",\n \"INOUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"IN\",\n \"_INTERNAL_DYNAMIC_TYPECAST\",\n \"INTERSECT\",\n \"INTERVAL\",\n \"INTO\",\n \"ITERATE\",\n \"JOIN\",\n \"KEY\",\n \"KEYS\",\n \"KILL\",\n \"LEADING\",\n \"LEAVE\",\n \"LEFT\",\n \"LIKE\",\n \"LIMIT\",\n \"LINES\",\n \"LOAD\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCK\",\n \"LOOP\",\n \"LOW_PRIORITY\",\n \"MATCH\",\n \"MAXVALUE\",\n \"MINUS\",\n \"MINUTE_MICROSECOND\",\n \"MINUTE_SECOND\",\n \"MOD\",\n \"MODIFIES\",\n \"NATURAL\",\n \"NO_QUERY_REWRITE\",\n \"NOT\",\n \"NO_WRITE_TO_BINLOG\",\n \"NO_QUERY_REWRITE\",\n \"NULL\",\n \"ON\",\n \"OPTIMIZE\",\n \"OPTION\",\n \"OPTIONALLY\",\n \"OR\",\n \"ORDER\",\n \"OUT\",\n \"OUTER\",\n \"OUTFILE\",\n \"OVER\",\n \"PRIMARY\",\n \"PROCEDURE\",\n \"PURGE\",\n \"RANGE\",\n \"READ\",\n \"READS\",\n \"REFERENCES\",\n \"REGEXP\",\n \"RELEASE\",\n \"RENAME\",\n \"REPEAT\",\n \"REPLACE\",\n \"REQUIRE\",\n \"RESTRICT\",\n \"RETURN\",\n \"REVOKE\",\n \"RIGHT\",\n \"RIGHT_ANTI_JOIN\",\n \"RIGHT_SEMI_JOIN\",\n \"RIGHT_STRAIGHT_JOIN\",\n \"RLIKE\",\n \"SCHEMA\",\n \"SCHEMAS\",\n \"SECOND_MICROSECOND\",\n \"SELECT\",\n \"SEMI_JOIN\",\n \"SENSITIVE\",\n \"SEPARATOR\",\n \"SET\",\n \"SHOW\",\n \"SIGNAL\",\n \"SPATIAL\",\n \"SPECIFIC\",\n \"SQL\",\n \"SQL_BIG_RESULT\",\n \"SQL_BUFFER_RESULT\",\n \"SQL_CACHE\",\n \"SQL_CALC_FOUND_ROWS\",\n \"SQLEXCEPTION\",\n \"SQL_NO_CACHE\",\n \"SQL_NO_LOGGING\",\n \"SQL_SMALL_RESULT\",\n \"SQLSTATE\",\n \"SQLWARNING\",\n \"STRAIGHT_JOIN\",\n \"TABLE\",\n \"TERMINATED\",\n \"THEN\",\n \"TO\",\n \"TRAILING\",\n \"TRIGGER\",\n \"TRUE\",\n \"UNBOUNDED\",\n \"UNDO\",\n \"UNION\",\n \"UNIQUE\",\n \"UNLOCK\",\n \"UPDATE\",\n \"USAGE\",\n \"USE\",\n \"USING\",\n \"UTC_DATE\",\n \"UTC_TIME\",\n \"UTC_TIMESTAMP\",\n \"_UTF8\",\n \"VALUES\",\n \"WHEN\",\n \"WHERE\",\n \"WHILE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHIN\",\n \"WRITE\",\n \"XOR\",\n \"YEAR_MONTH\",\n \"ZEROFILL\"\n];\nvar dataTypes17 = [\n // https://docs.singlestore.com/cloud/reference/sql-reference/data-types/\n \"BIGINT\",\n \"BINARY\",\n \"BIT\",\n \"BLOB\",\n \"CHAR\",\n \"CHARACTER\",\n \"DATETIME\",\n \"DEC\",\n \"DECIMAL\",\n \"DOUBLE PRECISION\",\n \"DOUBLE\",\n \"ENUM\",\n \"FIXED\",\n \"FLOAT\",\n \"FLOAT4\",\n \"FLOAT8\",\n \"INT\",\n \"INT1\",\n \"INT2\",\n \"INT3\",\n \"INT4\",\n \"INT8\",\n \"INTEGER\",\n \"LONG\",\n \"LONGBLOB\",\n \"LONGTEXT\",\n \"MEDIUMBLOB\",\n \"MEDIUMINT\",\n \"MEDIUMTEXT\",\n \"MIDDLEINT\",\n \"NATIONAL CHAR\",\n \"NATIONAL VARCHAR\",\n \"NUMERIC\",\n \"PRECISION\",\n \"REAL\",\n \"SMALLINT\",\n \"TEXT\",\n \"TIME\",\n \"TIMESTAMP\",\n \"TINYBLOB\",\n \"TINYINT\",\n \"TINYTEXT\",\n \"UNSIGNED\",\n \"VARBINARY\",\n \"VARCHAR\",\n \"VARCHARACTER\",\n \"YEAR\"\n];\n\n// src/languages/singlestoredb/singlestoredb.functions.ts\nvar functions17 = [\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/vector-functions/vector-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/window-functions/window-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/string-functions/string-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/conditional-functions/conditional-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/numeric-functions/numeric-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/geospatial-functions/geospatial-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/json-functions/json-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/information-functions/information-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/aggregate-functions/aggregate-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/time-series-functions/time-series-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/identifier-generation-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/date-and-time-functions/date-and-time-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/distinct-count-estimation-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/full-text-search-functions/full-text-search-functions.html\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference/regular-expression-functions.html\n \"ABS\",\n \"ACOS\",\n \"ADDDATE\",\n \"ADDTIME\",\n \"AES_DECRYPT\",\n \"AES_ENCRYPT\",\n \"ANY_VALUE\",\n \"APPROX_COUNT_DISTINCT\",\n \"APPROX_COUNT_DISTINCT_ACCUMULATE\",\n \"APPROX_COUNT_DISTINCT_COMBINE\",\n \"APPROX_COUNT_DISTINCT_ESTIMATE\",\n \"APPROX_GEOGRAPHY_INTERSECTS\",\n \"APPROX_PERCENTILE\",\n \"ASCII\",\n \"ASIN\",\n \"ATAN\",\n \"ATAN2\",\n \"AVG\",\n \"BIN\",\n \"BINARY\",\n \"BIT_AND\",\n \"BIT_COUNT\",\n \"BIT_OR\",\n \"BIT_XOR\",\n \"CAST\",\n \"CEIL\",\n \"CEILING\",\n \"CHAR\",\n \"CHARACTER_LENGTH\",\n \"CHAR_LENGTH\",\n \"CHARSET\",\n \"COALESCE\",\n \"COERCIBILITY\",\n \"COLLATION\",\n \"COLLECT\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONNECTION_ID\",\n \"CONV\",\n \"CONVERT\",\n \"CONVERT_TZ\",\n \"COS\",\n \"COT\",\n \"COUNT\",\n \"CUME_DIST\",\n \"CURDATE\",\n \"CURRENT_DATE\",\n \"CURRENT_ROLE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURTIME\",\n \"DATABASE\",\n \"DATE\",\n \"DATE_ADD\",\n \"DATEDIFF\",\n \"DATE_FORMAT\",\n \"DATE_SUB\",\n \"DATE_TRUNC\",\n \"DAY\",\n \"DAYNAME\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFYEAR\",\n \"DECODE\",\n \"DEFAULT\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DIV\",\n \"DOT_PRODUCT\",\n \"ELT\",\n \"EUCLIDEAN_DISTANCE\",\n \"EXP\",\n \"EXTRACT\",\n \"FIELD\",\n \"FIRST\",\n \"FIRST_VALUE\",\n \"FLOOR\",\n \"FORMAT\",\n \"FOUND_ROWS\",\n \"FROM_BASE64\",\n \"FROM_DAYS\",\n \"FROM_UNIXTIME\",\n \"GEOGRAPHY_AREA\",\n \"GEOGRAPHY_CONTAINS\",\n \"GEOGRAPHY_DISTANCE\",\n \"GEOGRAPHY_INTERSECTS\",\n \"GEOGRAPHY_LATITUDE\",\n \"GEOGRAPHY_LENGTH\",\n \"GEOGRAPHY_LONGITUDE\",\n \"GEOGRAPHY_POINT\",\n \"GEOGRAPHY_WITHIN_DISTANCE\",\n \"GEOMETRY_AREA\",\n \"GEOMETRY_CONTAINS\",\n \"GEOMETRY_DISTANCE\",\n \"GEOMETRY_FILTER\",\n \"GEOMETRY_INTERSECTS\",\n \"GEOMETRY_LENGTH\",\n \"GEOMETRY_POINT\",\n \"GEOMETRY_WITHIN_DISTANCE\",\n \"GEOMETRY_X\",\n \"GEOMETRY_Y\",\n \"GREATEST\",\n \"GROUPING\",\n \"GROUP_CONCAT\",\n \"HEX\",\n \"HIGHLIGHT\",\n \"HOUR\",\n \"ICU_VERSION\",\n \"IF\",\n \"IFNULL\",\n \"INET_ATON\",\n \"INET_NTOA\",\n \"INET6_ATON\",\n \"INET6_NTOA\",\n \"INITCAP\",\n \"INSERT\",\n \"INSTR\",\n \"INTERVAL\",\n \"IS\",\n \"IS NULL\",\n \"JSON_AGG\",\n \"JSON_ARRAY_CONTAINS_DOUBLE\",\n \"JSON_ARRAY_CONTAINS_JSON\",\n \"JSON_ARRAY_CONTAINS_STRING\",\n \"JSON_ARRAY_PUSH_DOUBLE\",\n \"JSON_ARRAY_PUSH_JSON\",\n \"JSON_ARRAY_PUSH_STRING\",\n \"JSON_DELETE_KEY\",\n \"JSON_EXTRACT_DOUBLE\",\n \"JSON_EXTRACT_JSON\",\n \"JSON_EXTRACT_STRING\",\n \"JSON_EXTRACT_BIGINT\",\n \"JSON_GET_TYPE\",\n \"JSON_LENGTH\",\n \"JSON_SET_DOUBLE\",\n \"JSON_SET_JSON\",\n \"JSON_SET_STRING\",\n \"JSON_SPLICE_DOUBLE\",\n \"JSON_SPLICE_JSON\",\n \"JSON_SPLICE_STRING\",\n \"LAG\",\n \"LAST_DAY\",\n \"LAST_VALUE\",\n \"LCASE\",\n \"LEAD\",\n \"LEAST\",\n \"LEFT\",\n \"LENGTH\",\n \"LIKE\",\n \"LN\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOCATE\",\n \"LOG\",\n \"LOG10\",\n \"LOG2\",\n \"LPAD\",\n \"LTRIM\",\n \"MATCH\",\n \"MAX\",\n \"MD5\",\n \"MEDIAN\",\n \"MICROSECOND\",\n \"MIN\",\n \"MINUTE\",\n \"MOD\",\n \"MONTH\",\n \"MONTHNAME\",\n \"MONTHS_BETWEEN\",\n \"NOT\",\n \"NOW\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLIF\",\n \"OCTET_LENGTH\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PI\",\n \"PIVOT\",\n \"POSITION\",\n \"POW\",\n \"POWER\",\n \"QUARTER\",\n \"QUOTE\",\n \"RADIANS\",\n \"RAND\",\n \"RANK\",\n \"REGEXP\",\n \"REPEAT\",\n \"REPLACE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROUND\",\n \"ROW_COUNT\",\n \"ROW_NUMBER\",\n \"RPAD\",\n \"RTRIM\",\n \"SCALAR\",\n \"SCHEMA\",\n \"SEC_TO_TIME\",\n \"SHA1\",\n \"SHA2\",\n \"SIGMOID\",\n \"SIGN\",\n \"SIN\",\n \"SLEEP\",\n \"SPLIT\",\n \"SOUNDEX\",\n \"SOUNDS LIKE\",\n \"SOURCE_POS_WAIT\",\n \"SPACE\",\n \"SQRT\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STR_TO_DATE\",\n \"SUBDATE\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUBSTRING_INDEX\",\n \"SUM\",\n \"SYS_GUID\",\n \"TAN\",\n \"TIME\",\n \"TIMEDIFF\",\n \"TIME_BUCKET\",\n \"TIME_FORMAT\",\n \"TIMESTAMP\",\n \"TIMESTAMPADD\",\n \"TIMESTAMPDIFF\",\n \"TIME_TO_SEC\",\n \"TO_BASE64\",\n \"TO_CHAR\",\n \"TO_DAYS\",\n \"TO_JSON\",\n \"TO_NUMBER\",\n \"TO_SECONDS\",\n \"TO_TIMESTAMP\",\n \"TRIM\",\n \"TRUNC\",\n \"TRUNCATE\",\n \"UCASE\",\n \"UNHEX\",\n \"UNIX_TIMESTAMP\",\n \"UPDATEXML\",\n \"UPPER\",\n // 'USER',\n \"UTC_DATE\",\n \"UTC_TIME\",\n \"UTC_TIMESTAMP\",\n \"UUID\",\n \"VALUES\",\n \"VARIANCE\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VECTOR_SUB\",\n \"VERSION\",\n \"WEEK\",\n \"WEEKDAY\",\n \"WEEKOFYEAR\",\n \"YEAR\"\n];\n\n// src/languages/singlestoredb/singlestoredb.formatter.ts\nvar reservedSelect17 = expandPhrases([\"SELECT [ALL | DISTINCT | DISTINCTROW]\"]);\nvar reservedClauses17 = expandPhrases([\n // queries\n \"WITH\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"LIMIT\",\n \"OFFSET\",\n // Data manipulation\n // - insert:\n \"INSERT [IGNORE] [INTO]\",\n \"VALUES\",\n \"REPLACE [INTO]\",\n \"ON DUPLICATE KEY UPDATE\",\n // - update:\n \"SET\",\n // Data definition\n \"CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]\",\n \"CREATE [OR REPLACE] [EXTERNAL] FUNCTION\"\n]);\nvar standardOnelineClauses16 = expandPhrases([\n \"CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses16 = expandPhrases([\n // - create:\n \"CREATE VIEW\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE [FROM]\",\n // - drop table:\n \"DROP [TEMPORARY] TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER [ONLINE] TABLE\",\n \"ADD [COLUMN]\",\n \"ADD [UNIQUE] {INDEX | KEY}\",\n \"DROP [COLUMN]\",\n \"MODIFY [COLUMN]\",\n \"CHANGE\",\n \"RENAME [TO | AS]\",\n // - truncate:\n \"TRUNCATE [TABLE]\",\n // https://docs.singlestore.com/managed-service/en/reference/sql-reference.html\n \"ADD AGGREGATOR\",\n \"ADD LEAF\",\n \"AGGREGATOR SET AS MASTER\",\n \"ALTER DATABASE\",\n \"ALTER PIPELINE\",\n \"ALTER RESOURCE POOL\",\n \"ALTER USER\",\n \"ALTER VIEW\",\n \"ANALYZE TABLE\",\n \"ATTACH DATABASE\",\n \"ATTACH LEAF\",\n \"ATTACH LEAF ALL\",\n \"BACKUP DATABASE\",\n \"BINLOG\",\n \"BOOTSTRAP AGGREGATOR\",\n \"CACHE INDEX\",\n \"CALL\",\n \"CHANGE\",\n \"CHANGE MASTER TO\",\n \"CHANGE REPLICATION FILTER\",\n \"CHANGE REPLICATION SOURCE TO\",\n \"CHECK BLOB CHECKSUM\",\n \"CHECK TABLE\",\n \"CHECKSUM TABLE\",\n \"CLEAR ORPHAN DATABASES\",\n \"CLONE\",\n \"COMMIT\",\n \"CREATE DATABASE\",\n \"CREATE GROUP\",\n \"CREATE INDEX\",\n \"CREATE LINK\",\n \"CREATE MILESTONE\",\n \"CREATE PIPELINE\",\n \"CREATE RESOURCE POOL\",\n \"CREATE ROLE\",\n \"CREATE USER\",\n \"DEALLOCATE PREPARE\",\n \"DESCRIBE\",\n \"DETACH DATABASE\",\n \"DETACH PIPELINE\",\n \"DROP DATABASE\",\n \"DROP FUNCTION\",\n \"DROP INDEX\",\n \"DROP LINK\",\n \"DROP PIPELINE\",\n \"DROP PROCEDURE\",\n \"DROP RESOURCE POOL\",\n \"DROP ROLE\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"EXECUTE\",\n \"EXPLAIN\",\n \"FLUSH\",\n \"FORCE\",\n \"GRANT\",\n \"HANDLER\",\n \"HELP\",\n \"KILL CONNECTION\",\n \"KILLALL QUERIES\",\n \"LOAD DATA\",\n \"LOAD INDEX INTO CACHE\",\n \"LOAD XML\",\n \"LOCK INSTANCE FOR BACKUP\",\n \"LOCK TABLES\",\n \"MASTER_POS_WAIT\",\n \"OPTIMIZE TABLE\",\n \"PREPARE\",\n \"PURGE BINARY LOGS\",\n \"REBALANCE PARTITIONS\",\n \"RELEASE SAVEPOINT\",\n \"REMOVE AGGREGATOR\",\n \"REMOVE LEAF\",\n \"REPAIR TABLE\",\n \"REPLACE\",\n \"REPLICATE DATABASE\",\n \"RESET\",\n \"RESET MASTER\",\n \"RESET PERSIST\",\n \"RESET REPLICA\",\n \"RESET SLAVE\",\n \"RESTART\",\n \"RESTORE DATABASE\",\n \"RESTORE REDUNDANCY\",\n \"REVOKE\",\n \"ROLLBACK\",\n \"ROLLBACK TO SAVEPOINT\",\n \"SAVEPOINT\",\n \"SET CHARACTER SET\",\n \"SET DEFAULT ROLE\",\n \"SET NAMES\",\n \"SET PASSWORD\",\n \"SET RESOURCE GROUP\",\n \"SET ROLE\",\n \"SET TRANSACTION\",\n \"SHOW\",\n \"SHOW CHARACTER SET\",\n \"SHOW COLLATION\",\n \"SHOW COLUMNS\",\n \"SHOW CREATE DATABASE\",\n \"SHOW CREATE FUNCTION\",\n \"SHOW CREATE PIPELINE\",\n \"SHOW CREATE PROCEDURE\",\n \"SHOW CREATE TABLE\",\n \"SHOW CREATE USER\",\n \"SHOW CREATE VIEW\",\n \"SHOW DATABASES\",\n \"SHOW ENGINE\",\n \"SHOW ENGINES\",\n \"SHOW ERRORS\",\n \"SHOW FUNCTION CODE\",\n \"SHOW FUNCTION STATUS\",\n \"SHOW GRANTS\",\n \"SHOW INDEX\",\n \"SHOW MASTER STATUS\",\n \"SHOW OPEN TABLES\",\n \"SHOW PLUGINS\",\n \"SHOW PRIVILEGES\",\n \"SHOW PROCEDURE CODE\",\n \"SHOW PROCEDURE STATUS\",\n \"SHOW PROCESSLIST\",\n \"SHOW PROFILE\",\n \"SHOW PROFILES\",\n \"SHOW RELAYLOG EVENTS\",\n \"SHOW REPLICA STATUS\",\n \"SHOW REPLICAS\",\n \"SHOW SLAVE\",\n \"SHOW SLAVE HOSTS\",\n \"SHOW STATUS\",\n \"SHOW TABLE STATUS\",\n \"SHOW TABLES\",\n \"SHOW VARIABLES\",\n \"SHOW WARNINGS\",\n \"SHUTDOWN\",\n \"SNAPSHOT DATABASE\",\n \"SOURCE_POS_WAIT\",\n \"START GROUP_REPLICATION\",\n \"START PIPELINE\",\n \"START REPLICA\",\n \"START SLAVE\",\n \"START TRANSACTION\",\n \"STOP GROUP_REPLICATION\",\n \"STOP PIPELINE\",\n \"STOP REPLICA\",\n \"STOP REPLICATING\",\n \"STOP SLAVE\",\n \"TEST PIPELINE\",\n \"UNLOCK INSTANCE\",\n \"UNLOCK TABLES\",\n \"USE\",\n \"XA\",\n // flow control\n \"ITERATE\",\n \"LEAVE\",\n \"LOOP\",\n \"REPEAT\",\n \"RETURN\",\n \"WHILE\"\n]);\nvar reservedSetOperations17 = expandPhrases([\n \"UNION [ALL | DISTINCT]\",\n \"EXCEPT\",\n \"INTERSECT\",\n \"MINUS\"\n]);\nvar reservedJoins17 = expandPhrases([\n \"JOIN\",\n \"{LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{INNER | CROSS} JOIN\",\n \"NATURAL {LEFT | RIGHT} [OUTER] JOIN\",\n // non-standard joins\n \"STRAIGHT_JOIN\"\n]);\nvar reservedPhrases17 = expandPhrases([\n \"ON DELETE\",\n \"ON UPDATE\",\n \"CHARACTER SET\",\n \"{ROWS | RANGE} BETWEEN\",\n \"IDENTIFIED BY\"\n]);\nvar singlestoredb = {\n name: \"singlestoredb\",\n tokenizerOptions: {\n reservedSelect: reservedSelect17,\n reservedClauses: [...reservedClauses17, ...standardOnelineClauses16, ...tabularOnelineClauses16],\n reservedSetOperations: reservedSetOperations17,\n reservedJoins: reservedJoins17,\n reservedPhrases: reservedPhrases17,\n reservedKeywords: keywords17,\n reservedDataTypes: dataTypes17,\n reservedFunctionNames: functions17,\n // TODO: support _binary\"some string\" prefix\n stringTypes: [\n '\"\"-qq-bs',\n \"''-qq-bs\",\n { quote: \"''-raw\", prefixes: [\"B\", \"X\"], requirePrefix: true }\n ],\n identTypes: [\"``\"],\n identChars: { first: \"$\", rest: \"$\", allowFirstCharNumber: true },\n variableTypes: [\n { regex: \"@@?[A-Za-z0-9_$]+\" },\n { quote: \"``\", prefixes: [\"@\"], requirePrefix: true }\n ],\n lineCommentTypes: [\"--\", \"#\"],\n operators: [\n \":=\",\n \"&\",\n \"|\",\n \"^\",\n \"~\",\n \"<<\",\n \">>\",\n \"<=>\",\n \"&&\",\n \"||\",\n \"::\",\n \"::$\",\n \"::%\",\n \":>\",\n \"!:>\",\n \"*.*\"\n // Not actually an operator\n ],\n postProcess: postProcess2\n },\n formatOptions: {\n alwaysDenseOperators: [\"::\", \"::$\", \"::%\"],\n onelineClauses: [...standardOnelineClauses16, ...tabularOnelineClauses16],\n tabularOnelineClauses: tabularOnelineClauses16\n }\n};\n\n// src/languages/snowflake/snowflake.functions.ts\nvar functions18 = [\n // https://docs.snowflake.com/en/sql-reference-functions.html\n //\n // https://docs.snowflake.com/en/sql-reference/functions-all.html\n // 1. run in console on this page: $x('//tbody/tr/*[1]//a/span/text()').map(x => x.nodeValue)\n // 2. split all lines that contain ',' or '/' into multiple lines\n // 3. remove all '— Deprecated' parts from the strings\n // 4. delete all strings that end with '', they are already covered in the list\n // 5. remove all strings that contain '[', they are operators not functions\n // 6. fix all values that contain '*'\n // 7. delete operatos ':', '::', '||'\n //\n // Steps 1-5 can be combined by the following script in the developer console:\n // $x('//tbody/tr/*[1]//a/span/text()').map(x => x.nodeValue) // Step 1\n // .map(x => x.split(x.includes(',') ? ',' : '/')).flat().map(x => x.trim()) // Step 2\n // .map(x => x.replace('— Deprecated', '')) // Step 3\n // .filter(x => !x.endsWith('')) // Step 4\n // .filter(x => !x.includes('[')) // Step 5\n \"ABS\",\n \"ACOS\",\n \"ACOSH\",\n \"ADD_MONTHS\",\n \"ALL_USER_NAMES\",\n \"ANY_VALUE\",\n \"APPROX_COUNT_DISTINCT\",\n \"APPROX_PERCENTILE\",\n \"APPROX_PERCENTILE_ACCUMULATE\",\n \"APPROX_PERCENTILE_COMBINE\",\n \"APPROX_PERCENTILE_ESTIMATE\",\n \"APPROX_TOP_K\",\n \"APPROX_TOP_K_ACCUMULATE\",\n \"APPROX_TOP_K_COMBINE\",\n \"APPROX_TOP_K_ESTIMATE\",\n \"APPROXIMATE_JACCARD_INDEX\",\n \"APPROXIMATE_SIMILARITY\",\n \"ARRAY_AGG\",\n \"ARRAY_APPEND\",\n \"ARRAY_CAT\",\n \"ARRAY_COMPACT\",\n \"ARRAY_CONSTRUCT\",\n \"ARRAY_CONSTRUCT_COMPACT\",\n \"ARRAY_CONTAINS\",\n \"ARRAY_INSERT\",\n \"ARRAY_INTERSECTION\",\n \"ARRAY_POSITION\",\n \"ARRAY_PREPEND\",\n \"ARRAY_SIZE\",\n \"ARRAY_SLICE\",\n \"ARRAY_TO_STRING\",\n \"ARRAY_UNION_AGG\",\n \"ARRAY_UNIQUE_AGG\",\n \"ARRAYS_OVERLAP\",\n \"AS_ARRAY\",\n \"AS_BINARY\",\n \"AS_BOOLEAN\",\n \"AS_CHAR\",\n \"AS_VARCHAR\",\n \"AS_DATE\",\n \"AS_DECIMAL\",\n \"AS_NUMBER\",\n \"AS_DOUBLE\",\n \"AS_REAL\",\n \"AS_INTEGER\",\n \"AS_OBJECT\",\n \"AS_TIME\",\n \"AS_TIMESTAMP_LTZ\",\n \"AS_TIMESTAMP_NTZ\",\n \"AS_TIMESTAMP_TZ\",\n \"ASCII\",\n \"ASIN\",\n \"ASINH\",\n \"ATAN\",\n \"ATAN2\",\n \"ATANH\",\n \"AUTO_REFRESH_REGISTRATION_HISTORY\",\n \"AUTOMATIC_CLUSTERING_HISTORY\",\n \"AVG\",\n \"BASE64_DECODE_BINARY\",\n \"BASE64_DECODE_STRING\",\n \"BASE64_ENCODE\",\n \"BIT_LENGTH\",\n \"BITAND\",\n \"BITAND_AGG\",\n \"BITMAP_BIT_POSITION\",\n \"BITMAP_BUCKET_NUMBER\",\n \"BITMAP_CONSTRUCT_AGG\",\n \"BITMAP_COUNT\",\n \"BITMAP_OR_AGG\",\n \"BITNOT\",\n \"BITOR\",\n \"BITOR_AGG\",\n \"BITSHIFTLEFT\",\n \"BITSHIFTRIGHT\",\n \"BITXOR\",\n \"BITXOR_AGG\",\n \"BOOLAND\",\n \"BOOLAND_AGG\",\n \"BOOLNOT\",\n \"BOOLOR\",\n \"BOOLOR_AGG\",\n \"BOOLXOR\",\n \"BOOLXOR_AGG\",\n \"BUILD_SCOPED_FILE_URL\",\n \"BUILD_STAGE_FILE_URL\",\n \"CASE\",\n \"CAST\",\n \"CBRT\",\n \"CEIL\",\n \"CHARINDEX\",\n \"CHECK_JSON\",\n \"CHECK_XML\",\n \"CHR\",\n \"CHAR\",\n \"COALESCE\",\n \"COLLATE\",\n \"COLLATION\",\n \"COMPLETE_TASK_GRAPHS\",\n \"COMPRESS\",\n \"CONCAT\",\n \"CONCAT_WS\",\n \"CONDITIONAL_CHANGE_EVENT\",\n \"CONDITIONAL_TRUE_EVENT\",\n \"CONTAINS\",\n \"CONVERT_TIMEZONE\",\n \"COPY_HISTORY\",\n \"CORR\",\n \"COS\",\n \"COSH\",\n \"COT\",\n \"COUNT\",\n \"COUNT_IF\",\n \"COVAR_POP\",\n \"COVAR_SAMP\",\n \"CUME_DIST\",\n \"CURRENT_ACCOUNT\",\n \"CURRENT_AVAILABLE_ROLES\",\n \"CURRENT_CLIENT\",\n \"CURRENT_DATABASE\",\n \"CURRENT_DATE\",\n \"CURRENT_IP_ADDRESS\",\n \"CURRENT_REGION\",\n \"CURRENT_ROLE\",\n \"CURRENT_SCHEMA\",\n \"CURRENT_SCHEMAS\",\n \"CURRENT_SECONDARY_ROLES\",\n \"CURRENT_SESSION\",\n \"CURRENT_STATEMENT\",\n \"CURRENT_TASK_GRAPHS\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_TRANSACTION\",\n \"CURRENT_USER\",\n \"CURRENT_VERSION\",\n \"CURRENT_WAREHOUSE\",\n \"DATA_TRANSFER_HISTORY\",\n \"DATABASE_REFRESH_HISTORY\",\n \"DATABASE_REFRESH_PROGRESS\",\n \"DATABASE_REFRESH_PROGRESS_BY_JOB\",\n \"DATABASE_STORAGE_USAGE_HISTORY\",\n \"DATE_FROM_PARTS\",\n \"DATE_PART\",\n \"DATE_TRUNC\",\n \"DATEADD\",\n \"DATEDIFF\",\n \"DAYNAME\",\n \"DECODE\",\n \"DECOMPRESS_BINARY\",\n \"DECOMPRESS_STRING\",\n \"DECRYPT\",\n \"DECRYPT_RAW\",\n \"DEGREES\",\n \"DENSE_RANK\",\n \"DIV0\",\n \"EDITDISTANCE\",\n \"ENCRYPT\",\n \"ENCRYPT_RAW\",\n \"ENDSWITH\",\n \"EQUAL_NULL\",\n \"EXP\",\n \"EXPLAIN_JSON\",\n \"EXTERNAL_FUNCTIONS_HISTORY\",\n \"EXTERNAL_TABLE_FILES\",\n \"EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY\",\n \"EXTRACT\",\n \"EXTRACT_SEMANTIC_CATEGORIES\",\n \"FACTORIAL\",\n \"FIRST_VALUE\",\n \"FLATTEN\",\n \"FLOOR\",\n \"GENERATE_COLUMN_DESCRIPTION\",\n \"GENERATOR\",\n \"GET\",\n \"GET_ABSOLUTE_PATH\",\n \"GET_DDL\",\n \"GET_IGNORE_CASE\",\n \"GET_OBJECT_REFERENCES\",\n \"GET_PATH\",\n \"GET_PRESIGNED_URL\",\n \"GET_RELATIVE_PATH\",\n \"GET_STAGE_LOCATION\",\n \"GETBIT\",\n \"GREATEST\",\n \"GROUPING\",\n \"GROUPING_ID\",\n \"HASH\",\n \"HASH_AGG\",\n \"HAVERSINE\",\n \"HEX_DECODE_BINARY\",\n \"HEX_DECODE_STRING\",\n \"HEX_ENCODE\",\n \"HLL\",\n \"HLL_ACCUMULATE\",\n \"HLL_COMBINE\",\n \"HLL_ESTIMATE\",\n \"HLL_EXPORT\",\n \"HLL_IMPORT\",\n \"HOUR\",\n \"MINUTE\",\n \"SECOND\",\n \"IFF\",\n \"IFNULL\",\n \"ILIKE\",\n \"ILIKE ANY\",\n \"INFER_SCHEMA\",\n \"INITCAP\",\n \"INSERT\",\n \"INVOKER_ROLE\",\n \"INVOKER_SHARE\",\n \"IS_ARRAY\",\n \"IS_BINARY\",\n \"IS_BOOLEAN\",\n \"IS_CHAR\",\n \"IS_VARCHAR\",\n \"IS_DATE\",\n \"IS_DATE_VALUE\",\n \"IS_DECIMAL\",\n \"IS_DOUBLE\",\n \"IS_REAL\",\n \"IS_GRANTED_TO_INVOKER_ROLE\",\n \"IS_INTEGER\",\n \"IS_NULL_VALUE\",\n \"IS_OBJECT\",\n \"IS_ROLE_IN_SESSION\",\n \"IS_TIME\",\n \"IS_TIMESTAMP_LTZ\",\n \"IS_TIMESTAMP_NTZ\",\n \"IS_TIMESTAMP_TZ\",\n \"JAROWINKLER_SIMILARITY\",\n \"JSON_EXTRACT_PATH_TEXT\",\n \"KURTOSIS\",\n \"LAG\",\n \"LAST_DAY\",\n \"LAST_QUERY_ID\",\n \"LAST_TRANSACTION\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"LEAST\",\n \"LEFT\",\n \"LENGTH\",\n \"LEN\",\n \"LIKE\",\n \"LIKE ALL\",\n \"LIKE ANY\",\n \"LISTAGG\",\n \"LN\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"LOG\",\n \"LOGIN_HISTORY\",\n \"LOGIN_HISTORY_BY_USER\",\n \"LOWER\",\n \"LPAD\",\n \"LTRIM\",\n \"MATERIALIZED_VIEW_REFRESH_HISTORY\",\n \"MD5\",\n \"MD5_HEX\",\n \"MD5_BINARY\",\n \"MD5_NUMBER \\u2014 Obsoleted\",\n \"MD5_NUMBER_LOWER64\",\n \"MD5_NUMBER_UPPER64\",\n \"MEDIAN\",\n \"MIN\",\n \"MAX\",\n \"MINHASH\",\n \"MINHASH_COMBINE\",\n \"MOD\",\n \"MODE\",\n \"MONTHNAME\",\n \"MONTHS_BETWEEN\",\n \"NEXT_DAY\",\n \"NORMAL\",\n \"NTH_VALUE\",\n \"NTILE\",\n \"NULLIF\",\n \"NULLIFZERO\",\n \"NVL\",\n \"NVL2\",\n \"OBJECT_AGG\",\n \"OBJECT_CONSTRUCT\",\n \"OBJECT_CONSTRUCT_KEEP_NULL\",\n \"OBJECT_DELETE\",\n \"OBJECT_INSERT\",\n \"OBJECT_KEYS\",\n \"OBJECT_PICK\",\n \"OCTET_LENGTH\",\n \"PARSE_IP\",\n \"PARSE_JSON\",\n \"PARSE_URL\",\n \"PARSE_XML\",\n \"PERCENT_RANK\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PI\",\n \"PIPE_USAGE_HISTORY\",\n \"POLICY_CONTEXT\",\n \"POLICY_REFERENCES\",\n \"POSITION\",\n \"POW\",\n \"POWER\",\n \"PREVIOUS_DAY\",\n \"QUERY_ACCELERATION_HISTORY\",\n \"QUERY_HISTORY\",\n \"QUERY_HISTORY_BY_SESSION\",\n \"QUERY_HISTORY_BY_USER\",\n \"QUERY_HISTORY_BY_WAREHOUSE\",\n \"RADIANS\",\n \"RANDOM\",\n \"RANDSTR\",\n \"RANK\",\n \"RATIO_TO_REPORT\",\n \"REGEXP\",\n \"REGEXP_COUNT\",\n \"REGEXP_INSTR\",\n \"REGEXP_LIKE\",\n \"REGEXP_REPLACE\",\n \"REGEXP_SUBSTR\",\n \"REGEXP_SUBSTR_ALL\",\n \"REGR_AVGX\",\n \"REGR_AVGY\",\n \"REGR_COUNT\",\n \"REGR_INTERCEPT\",\n \"REGR_R2\",\n \"REGR_SLOPE\",\n \"REGR_SXX\",\n \"REGR_SXY\",\n \"REGR_SYY\",\n \"REGR_VALX\",\n \"REGR_VALY\",\n \"REPEAT\",\n \"REPLACE\",\n \"REPLICATION_GROUP_REFRESH_HISTORY\",\n \"REPLICATION_GROUP_REFRESH_PROGRESS\",\n \"REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB\",\n \"REPLICATION_GROUP_USAGE_HISTORY\",\n \"REPLICATION_USAGE_HISTORY\",\n \"REST_EVENT_HISTORY\",\n \"RESULT_SCAN\",\n \"REVERSE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROUND\",\n \"ROW_NUMBER\",\n \"RPAD\",\n \"RTRIM\",\n \"RTRIMMED_LENGTH\",\n \"SEARCH_OPTIMIZATION_HISTORY\",\n \"SEQ1\",\n \"SEQ2\",\n \"SEQ4\",\n \"SEQ8\",\n \"SERVERLESS_TASK_HISTORY\",\n \"SHA1\",\n \"SHA1_HEX\",\n \"SHA1_BINARY\",\n \"SHA2\",\n \"SHA2_HEX\",\n \"SHA2_BINARY\",\n \"SIGN\",\n \"SIN\",\n \"SINH\",\n \"SKEW\",\n \"SOUNDEX\",\n \"SPACE\",\n \"SPLIT\",\n \"SPLIT_PART\",\n \"SPLIT_TO_TABLE\",\n \"SQRT\",\n \"SQUARE\",\n \"ST_AREA\",\n \"ST_ASEWKB\",\n \"ST_ASEWKT\",\n \"ST_ASGEOJSON\",\n \"ST_ASWKB\",\n \"ST_ASBINARY\",\n \"ST_ASWKT\",\n \"ST_ASTEXT\",\n \"ST_AZIMUTH\",\n \"ST_CENTROID\",\n \"ST_COLLECT\",\n \"ST_CONTAINS\",\n \"ST_COVEREDBY\",\n \"ST_COVERS\",\n \"ST_DIFFERENCE\",\n \"ST_DIMENSION\",\n \"ST_DISJOINT\",\n \"ST_DISTANCE\",\n \"ST_DWITHIN\",\n \"ST_ENDPOINT\",\n \"ST_ENVELOPE\",\n \"ST_GEOGFROMGEOHASH\",\n \"ST_GEOGPOINTFROMGEOHASH\",\n \"ST_GEOGRAPHYFROMWKB\",\n \"ST_GEOGRAPHYFROMWKT\",\n \"ST_GEOHASH\",\n \"ST_GEOMETRYFROMWKB\",\n \"ST_GEOMETRYFROMWKT\",\n \"ST_HAUSDORFFDISTANCE\",\n \"ST_INTERSECTION\",\n \"ST_INTERSECTS\",\n \"ST_LENGTH\",\n \"ST_MAKEGEOMPOINT\",\n \"ST_GEOM_POINT\",\n \"ST_MAKELINE\",\n \"ST_MAKEPOINT\",\n \"ST_POINT\",\n \"ST_MAKEPOLYGON\",\n \"ST_POLYGON\",\n \"ST_NPOINTS\",\n \"ST_NUMPOINTS\",\n \"ST_PERIMETER\",\n \"ST_POINTN\",\n \"ST_SETSRID\",\n \"ST_SIMPLIFY\",\n \"ST_SRID\",\n \"ST_STARTPOINT\",\n \"ST_SYMDIFFERENCE\",\n \"ST_UNION\",\n \"ST_WITHIN\",\n \"ST_X\",\n \"ST_XMAX\",\n \"ST_XMIN\",\n \"ST_Y\",\n \"ST_YMAX\",\n \"ST_YMIN\",\n \"STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY\",\n \"STAGE_STORAGE_USAGE_HISTORY\",\n \"STARTSWITH\",\n \"STDDEV\",\n \"STDDEV_POP\",\n \"STDDEV_SAMP\",\n \"STRIP_NULL_VALUE\",\n \"STRTOK\",\n \"STRTOK_SPLIT_TO_TABLE\",\n \"STRTOK_TO_ARRAY\",\n \"SUBSTR\",\n \"SUBSTRING\",\n \"SUM\",\n \"SYSDATE\",\n \"SYSTEM$ABORT_SESSION\",\n \"SYSTEM$ABORT_TRANSACTION\",\n \"SYSTEM$AUTHORIZE_PRIVATELINK\",\n \"SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS\",\n \"SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS\",\n \"SYSTEM$CANCEL_ALL_QUERIES\",\n \"SYSTEM$CANCEL_QUERY\",\n \"SYSTEM$CLUSTERING_DEPTH\",\n \"SYSTEM$CLUSTERING_INFORMATION\",\n \"SYSTEM$CLUSTERING_RATIO \",\n \"SYSTEM$CURRENT_USER_TASK_NAME\",\n \"SYSTEM$DATABASE_REFRESH_HISTORY \",\n \"SYSTEM$DATABASE_REFRESH_PROGRESS\",\n \"SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB \",\n \"SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE\",\n \"SYSTEM$DISABLE_DATABASE_REPLICATION\",\n \"SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE\",\n \"SYSTEM$ESTIMATE_QUERY_ACCELERATION\",\n \"SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS\",\n \"SYSTEM$EXPLAIN_JSON_TO_TEXT\",\n \"SYSTEM$EXPLAIN_PLAN_JSON\",\n \"SYSTEM$EXTERNAL_TABLE_PIPE_STATUS\",\n \"SYSTEM$GENERATE_SAML_CSR\",\n \"SYSTEM$GENERATE_SCIM_ACCESS_TOKEN\",\n \"SYSTEM$GET_AWS_SNS_IAM_POLICY\",\n \"SYSTEM$GET_PREDECESSOR_RETURN_VALUE\",\n \"SYSTEM$GET_PRIVATELINK\",\n \"SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS\",\n \"SYSTEM$GET_PRIVATELINK_CONFIG\",\n \"SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO\",\n \"SYSTEM$GET_TAG\",\n \"SYSTEM$GET_TAG_ALLOWED_VALUES\",\n \"SYSTEM$GET_TAG_ON_CURRENT_COLUMN\",\n \"SYSTEM$GET_TAG_ON_CURRENT_TABLE\",\n \"SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER\",\n \"SYSTEM$LAST_CHANGE_COMMIT_TIME\",\n \"SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME\",\n \"SYSTEM$MIGRATE_SAML_IDP_REGISTRATION\",\n \"SYSTEM$PIPE_FORCE_RESUME\",\n \"SYSTEM$PIPE_STATUS\",\n \"SYSTEM$REVOKE_PRIVATELINK\",\n \"SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS\",\n \"SYSTEM$SET_RETURN_VALUE\",\n \"SYSTEM$SHOW_OAUTH_CLIENT_SECRETS\",\n \"SYSTEM$STREAM_GET_TABLE_TIMESTAMP\",\n \"SYSTEM$STREAM_HAS_DATA\",\n \"SYSTEM$TASK_DEPENDENTS_ENABLE\",\n \"SYSTEM$TYPEOF\",\n \"SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS\",\n \"SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN\",\n \"SYSTEM$WAIT\",\n \"SYSTEM$WHITELIST\",\n \"SYSTEM$WHITELIST_PRIVATELINK\",\n \"TAG_REFERENCES\",\n \"TAG_REFERENCES_ALL_COLUMNS\",\n \"TAG_REFERENCES_WITH_LINEAGE\",\n \"TAN\",\n \"TANH\",\n \"TASK_DEPENDENTS\",\n \"TASK_HISTORY\",\n \"TIME_FROM_PARTS\",\n \"TIME_SLICE\",\n \"TIMEADD\",\n \"TIMEDIFF\",\n \"TIMESTAMP_FROM_PARTS\",\n \"TIMESTAMPADD\",\n \"TIMESTAMPDIFF\",\n \"TO_ARRAY\",\n \"TO_BINARY\",\n \"TO_BOOLEAN\",\n \"TO_CHAR\",\n \"TO_VARCHAR\",\n \"TO_DATE\",\n \"DATE\",\n \"TO_DECIMAL\",\n \"TO_NUMBER\",\n \"TO_NUMERIC\",\n \"TO_DOUBLE\",\n \"TO_GEOGRAPHY\",\n \"TO_GEOMETRY\",\n \"TO_JSON\",\n \"TO_OBJECT\",\n \"TO_TIME\",\n \"TIME\",\n \"TO_TIMESTAMP\",\n \"TO_TIMESTAMP_LTZ\",\n \"TO_TIMESTAMP_NTZ\",\n \"TO_TIMESTAMP_TZ\",\n \"TO_VARIANT\",\n \"TO_XML\",\n \"TRANSLATE\",\n \"TRIM\",\n \"TRUNCATE\",\n \"TRUNC\",\n \"TRUNC\",\n \"TRY_BASE64_DECODE_BINARY\",\n \"TRY_BASE64_DECODE_STRING\",\n \"TRY_CAST\",\n \"TRY_HEX_DECODE_BINARY\",\n \"TRY_HEX_DECODE_STRING\",\n \"TRY_PARSE_JSON\",\n \"TRY_TO_BINARY\",\n \"TRY_TO_BOOLEAN\",\n \"TRY_TO_DATE\",\n \"TRY_TO_DECIMAL\",\n \"TRY_TO_NUMBER\",\n \"TRY_TO_NUMERIC\",\n \"TRY_TO_DOUBLE\",\n \"TRY_TO_GEOGRAPHY\",\n \"TRY_TO_GEOMETRY\",\n \"TRY_TO_TIME\",\n \"TRY_TO_TIMESTAMP\",\n \"TRY_TO_TIMESTAMP_LTZ\",\n \"TRY_TO_TIMESTAMP_NTZ\",\n \"TRY_TO_TIMESTAMP_TZ\",\n \"TYPEOF\",\n \"UNICODE\",\n \"UNIFORM\",\n \"UPPER\",\n \"UUID_STRING\",\n \"VALIDATE\",\n \"VALIDATE_PIPE_LOAD\",\n \"VAR_POP\",\n \"VAR_SAMP\",\n \"VARIANCE\",\n \"VARIANCE_SAMP\",\n \"VARIANCE_POP\",\n \"WAREHOUSE_LOAD_HISTORY\",\n \"WAREHOUSE_METERING_HISTORY\",\n \"WIDTH_BUCKET\",\n \"XMLGET\",\n \"YEAR\",\n \"YEAROFWEEK\",\n \"YEAROFWEEKISO\",\n \"DAY\",\n \"DAYOFMONTH\",\n \"DAYOFWEEK\",\n \"DAYOFWEEKISO\",\n \"DAYOFYEAR\",\n \"WEEK\",\n \"WEEK\",\n \"WEEKOFYEAR\",\n \"WEEKISO\",\n \"MONTH\",\n \"QUARTER\",\n \"ZEROIFNULL\",\n \"ZIPF\"\n];\n\n// src/languages/snowflake/snowflake.keywords.ts\nvar keywords18 = [\n // https://docs.snowflake.com/en/sql-reference/reserved-keywords.html\n //\n // run in console on this page: $x('//tbody/tr/*[1]/p/text()').map(x => x.nodeValue)\n \"ACCOUNT\",\n \"ALL\",\n \"ALTER\",\n \"AND\",\n \"ANY\",\n \"AS\",\n \"BETWEEN\",\n \"BY\",\n \"CASE\",\n \"CAST\",\n \"CHECK\",\n \"COLUMN\",\n \"CONNECT\",\n \"CONNECTION\",\n \"CONSTRAINT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"DATABASE\",\n \"DELETE\",\n \"DISTINCT\",\n \"DROP\",\n \"ELSE\",\n \"EXISTS\",\n \"FALSE\",\n \"FOLLOWING\",\n \"FOR\",\n \"FROM\",\n \"FULL\",\n \"GRANT\",\n \"GROUP\",\n \"GSCLUSTER\",\n \"HAVING\",\n \"ILIKE\",\n \"IN\",\n \"INCREMENT\",\n \"INNER\",\n \"INSERT\",\n \"INTERSECT\",\n \"INTO\",\n \"IS\",\n \"ISSUE\",\n \"JOIN\",\n \"LATERAL\",\n \"LEFT\",\n \"LIKE\",\n \"LOCALTIME\",\n \"LOCALTIMESTAMP\",\n \"MINUS\",\n \"NATURAL\",\n \"NOT\",\n \"NULL\",\n \"OF\",\n \"ON\",\n \"OR\",\n \"ORDER\",\n \"ORGANIZATION\",\n \"QUALIFY\",\n \"REGEXP\",\n \"REVOKE\",\n \"RIGHT\",\n \"RLIKE\",\n \"ROW\",\n \"ROWS\",\n \"SAMPLE\",\n \"SCHEMA\",\n \"SELECT\",\n \"SET\",\n \"SOME\",\n \"START\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"THEN\",\n \"TO\",\n \"TRIGGER\",\n \"TRUE\",\n \"TRY_CAST\",\n \"UNION\",\n \"UNIQUE\",\n \"UPDATE\",\n \"USING\",\n \"VALUES\",\n \"VIEW\",\n \"WHEN\",\n \"WHENEVER\",\n \"WHERE\",\n \"WITH\",\n // These are definitely keywords, but haven't found a definite list in the docs\n \"COMMENT\"\n];\nvar dataTypes18 = [\n \"NUMBER\",\n \"DECIMAL\",\n \"NUMERIC\",\n \"INT\",\n \"INTEGER\",\n \"BIGINT\",\n \"SMALLINT\",\n \"TINYINT\",\n \"BYTEINT\",\n \"FLOAT\",\n \"FLOAT4\",\n \"FLOAT8\",\n \"DOUBLE\",\n \"DOUBLE PRECISION\",\n \"REAL\",\n \"VARCHAR\",\n \"CHAR\",\n \"CHARACTER\",\n \"STRING\",\n \"TEXT\",\n \"BINARY\",\n \"VARBINARY\",\n \"BOOLEAN\",\n \"DATE\",\n \"DATETIME\",\n \"TIME\",\n \"TIMESTAMP\",\n \"TIMESTAMP_LTZ\",\n \"TIMESTAMP_NTZ\",\n \"TIMESTAMP\",\n \"TIMESTAMP_TZ\",\n \"VARIANT\",\n \"OBJECT\",\n \"ARRAY\",\n \"GEOGRAPHY\",\n \"GEOMETRY\"\n];\n\n// src/languages/snowflake/snowflake.formatter.ts\nvar reservedSelect18 = expandPhrases([\"SELECT [ALL | DISTINCT]\"]);\nvar reservedClauses18 = expandPhrases([\n // queries\n \"WITH [RECURSIVE]\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"HAVING\",\n \"PARTITION BY\",\n \"ORDER BY\",\n \"QUALIFY\",\n \"LIMIT\",\n \"OFFSET\",\n \"FETCH [FIRST | NEXT]\",\n // Data manipulation\n // - insert:\n \"INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]\",\n \"{THEN | ELSE} INTO\",\n \"VALUES\",\n // - update:\n \"SET\",\n \"CLUSTER BY\",\n \"[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}\",\n \"COPY GRANTS\",\n \"USING TEMPLATE\",\n \"MERGE INTO\",\n \"WHEN MATCHED [AND]\",\n \"THEN {UPDATE SET | DELETE}\",\n \"WHEN NOT MATCHED THEN INSERT\"\n]);\nvar standardOnelineClauses17 = expandPhrases([\n \"CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]\",\n \"CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]\"\n]);\nvar tabularOnelineClauses17 = expandPhrases([\n // - create:\n \"CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]\",\n // - update:\n \"UPDATE\",\n // - delete:\n \"DELETE FROM\",\n // - drop table:\n \"DROP TABLE [IF EXISTS]\",\n // - alter table:\n \"ALTER TABLE [IF EXISTS]\",\n \"RENAME TO\",\n \"SWAP WITH\",\n \"[SUSPEND | RESUME] RECLUSTER\",\n \"DROP CLUSTERING KEY\",\n \"ADD [COLUMN]\",\n \"RENAME COLUMN\",\n \"{ALTER | MODIFY} [COLUMN]\",\n \"DROP [COLUMN]\",\n \"{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]\",\n \"RENAME CONSTRAINT\",\n \"{ADD | DROP} SEARCH OPTIMIZATION\",\n \"{SET | UNSET} TAG\",\n // Actually TAG is optional, but that conflicts with UPDATE..SET statement\n \"{ADD | DROP} ROW ACCESS POLICY\",\n \"DROP ALL ROW ACCESS POLICIES\",\n \"{SET | DROP} DEFAULT\",\n // for alter column\n \"{SET | DROP} NOT NULL\",\n // for alter column\n \"[SET DATA] TYPE\",\n // for alter column\n \"UNSET COMMENT\",\n // for alter column\n \"{SET | UNSET} MASKING POLICY\",\n // for alter column\n // - truncate:\n \"TRUNCATE [TABLE] [IF EXISTS]\",\n // other\n // https://docs.snowflake.com/en/sql-reference/sql-all.html\n //\n // 1. run in console on this page: $x('//tbody/tr/*[1]//a/span/text()').map(x => x.nodeValue)\n // 2. delete all lines that contain a sting like '(.*)', they are already covered in the list\n // 3. delete all lines that contain a sting like '<.*>', they are already covered in the list\n // 4. delete all lines that contain '…', they are part of a regex statement that can't be covered here\n // 5. Manually add 'COPY INTO'\n // 6. Remove all lines that are already in `reservedClauses`\n //\n // Steps 1-4 can be combined by the following script in the developer console:\n // $x('//tbody/tr/*[1]//a/span/text()').map(x => x.nodeValue) // Step 1\n // filter(x => !x.match(/\\(.*\\)/) && !x.match(/…/) && !x.match(/<.*>/)) // Step 2-4\n \"ALTER ACCOUNT\",\n \"ALTER API INTEGRATION\",\n \"ALTER CONNECTION\",\n \"ALTER DATABASE\",\n \"ALTER EXTERNAL TABLE\",\n \"ALTER FAILOVER GROUP\",\n \"ALTER FILE FORMAT\",\n \"ALTER FUNCTION\",\n \"ALTER INTEGRATION\",\n \"ALTER MASKING POLICY\",\n \"ALTER MATERIALIZED VIEW\",\n \"ALTER NETWORK POLICY\",\n \"ALTER NOTIFICATION INTEGRATION\",\n \"ALTER PIPE\",\n \"ALTER PROCEDURE\",\n \"ALTER REPLICATION GROUP\",\n \"ALTER RESOURCE MONITOR\",\n \"ALTER ROLE\",\n \"ALTER ROW ACCESS POLICY\",\n \"ALTER SCHEMA\",\n \"ALTER SECURITY INTEGRATION\",\n \"ALTER SEQUENCE\",\n \"ALTER SESSION\",\n \"ALTER SESSION POLICY\",\n \"ALTER SHARE\",\n \"ALTER STAGE\",\n \"ALTER STORAGE INTEGRATION\",\n \"ALTER STREAM\",\n \"ALTER TAG\",\n \"ALTER TASK\",\n \"ALTER USER\",\n \"ALTER VIEW\",\n \"ALTER WAREHOUSE\",\n \"BEGIN\",\n \"CALL\",\n \"COMMIT\",\n \"COPY INTO\",\n \"CREATE ACCOUNT\",\n \"CREATE API INTEGRATION\",\n \"CREATE CONNECTION\",\n \"CREATE DATABASE\",\n \"CREATE EXTERNAL FUNCTION\",\n \"CREATE EXTERNAL TABLE\",\n \"CREATE FAILOVER GROUP\",\n \"CREATE FILE FORMAT\",\n \"CREATE FUNCTION\",\n \"CREATE INTEGRATION\",\n \"CREATE MANAGED ACCOUNT\",\n \"CREATE MASKING POLICY\",\n \"CREATE MATERIALIZED VIEW\",\n \"CREATE NETWORK POLICY\",\n \"CREATE NOTIFICATION INTEGRATION\",\n \"CREATE PIPE\",\n \"CREATE PROCEDURE\",\n \"CREATE REPLICATION GROUP\",\n \"CREATE RESOURCE MONITOR\",\n \"CREATE ROLE\",\n \"CREATE ROW ACCESS POLICY\",\n \"CREATE SCHEMA\",\n \"CREATE SECURITY INTEGRATION\",\n \"CREATE SEQUENCE\",\n \"CREATE SESSION POLICY\",\n \"CREATE SHARE\",\n \"CREATE STAGE\",\n \"CREATE STORAGE INTEGRATION\",\n \"CREATE STREAM\",\n \"CREATE TAG\",\n \"CREATE TASK\",\n \"CREATE USER\",\n \"CREATE WAREHOUSE\",\n \"DELETE\",\n \"DESCRIBE DATABASE\",\n \"DESCRIBE EXTERNAL TABLE\",\n \"DESCRIBE FILE FORMAT\",\n \"DESCRIBE FUNCTION\",\n \"DESCRIBE INTEGRATION\",\n \"DESCRIBE MASKING POLICY\",\n \"DESCRIBE MATERIALIZED VIEW\",\n \"DESCRIBE NETWORK POLICY\",\n \"DESCRIBE PIPE\",\n \"DESCRIBE PROCEDURE\",\n \"DESCRIBE RESULT\",\n \"DESCRIBE ROW ACCESS POLICY\",\n \"DESCRIBE SCHEMA\",\n \"DESCRIBE SEQUENCE\",\n \"DESCRIBE SESSION POLICY\",\n \"DESCRIBE SHARE\",\n \"DESCRIBE STAGE\",\n \"DESCRIBE STREAM\",\n \"DESCRIBE TABLE\",\n \"DESCRIBE TASK\",\n \"DESCRIBE TRANSACTION\",\n \"DESCRIBE USER\",\n \"DESCRIBE VIEW\",\n \"DESCRIBE WAREHOUSE\",\n \"DROP CONNECTION\",\n \"DROP DATABASE\",\n \"DROP EXTERNAL TABLE\",\n \"DROP FAILOVER GROUP\",\n \"DROP FILE FORMAT\",\n \"DROP FUNCTION\",\n \"DROP INTEGRATION\",\n \"DROP MANAGED ACCOUNT\",\n \"DROP MASKING POLICY\",\n \"DROP MATERIALIZED VIEW\",\n \"DROP NETWORK POLICY\",\n \"DROP PIPE\",\n \"DROP PROCEDURE\",\n \"DROP REPLICATION GROUP\",\n \"DROP RESOURCE MONITOR\",\n \"DROP ROLE\",\n \"DROP ROW ACCESS POLICY\",\n \"DROP SCHEMA\",\n \"DROP SEQUENCE\",\n \"DROP SESSION POLICY\",\n \"DROP SHARE\",\n \"DROP STAGE\",\n \"DROP STREAM\",\n \"DROP TAG\",\n \"DROP TASK\",\n \"DROP USER\",\n \"DROP VIEW\",\n \"DROP WAREHOUSE\",\n \"EXECUTE IMMEDIATE\",\n \"EXECUTE TASK\",\n \"EXPLAIN\",\n \"GET\",\n \"GRANT OWNERSHIP\",\n \"GRANT ROLE\",\n \"INSERT\",\n \"LIST\",\n \"MERGE\",\n \"PUT\",\n \"REMOVE\",\n \"REVOKE ROLE\",\n \"ROLLBACK\",\n \"SHOW COLUMNS\",\n \"SHOW CONNECTIONS\",\n \"SHOW DATABASES\",\n \"SHOW DATABASES IN FAILOVER GROUP\",\n \"SHOW DATABASES IN REPLICATION GROUP\",\n \"SHOW DELEGATED AUTHORIZATIONS\",\n \"SHOW EXTERNAL FUNCTIONS\",\n \"SHOW EXTERNAL TABLES\",\n \"SHOW FAILOVER GROUPS\",\n \"SHOW FILE FORMATS\",\n \"SHOW FUNCTIONS\",\n \"SHOW GLOBAL ACCOUNTS\",\n \"SHOW GRANTS\",\n \"SHOW INTEGRATIONS\",\n \"SHOW LOCKS\",\n \"SHOW MANAGED ACCOUNTS\",\n \"SHOW MASKING POLICIES\",\n \"SHOW MATERIALIZED VIEWS\",\n \"SHOW NETWORK POLICIES\",\n \"SHOW OBJECTS\",\n \"SHOW ORGANIZATION ACCOUNTS\",\n \"SHOW PARAMETERS\",\n \"SHOW PIPES\",\n \"SHOW PRIMARY KEYS\",\n \"SHOW PROCEDURES\",\n \"SHOW REGIONS\",\n \"SHOW REPLICATION ACCOUNTS\",\n \"SHOW REPLICATION DATABASES\",\n \"SHOW REPLICATION GROUPS\",\n \"SHOW RESOURCE MONITORS\",\n \"SHOW ROLES\",\n \"SHOW ROW ACCESS POLICIES\",\n \"SHOW SCHEMAS\",\n \"SHOW SEQUENCES\",\n \"SHOW SESSION POLICIES\",\n \"SHOW SHARES\",\n \"SHOW SHARES IN FAILOVER GROUP\",\n \"SHOW SHARES IN REPLICATION GROUP\",\n \"SHOW STAGES\",\n \"SHOW STREAMS\",\n \"SHOW TABLES\",\n \"SHOW TAGS\",\n \"SHOW TASKS\",\n \"SHOW TRANSACTIONS\",\n \"SHOW USER FUNCTIONS\",\n \"SHOW USERS\",\n \"SHOW VARIABLES\",\n \"SHOW VIEWS\",\n \"SHOW WAREHOUSES\",\n \"TRUNCATE MATERIALIZED VIEW\",\n \"UNDROP DATABASE\",\n \"UNDROP SCHEMA\",\n \"UNDROP TABLE\",\n \"UNDROP TAG\",\n \"UNSET\",\n \"USE DATABASE\",\n \"USE ROLE\",\n \"USE SCHEMA\",\n \"USE SECONDARY ROLES\",\n \"USE WAREHOUSE\"\n]);\nvar reservedSetOperations18 = expandPhrases([\"UNION [ALL]\", \"MINUS\", \"EXCEPT\", \"INTERSECT\"]);\nvar reservedJoins18 = expandPhrases([\n \"[INNER] JOIN\",\n \"[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN\",\n \"{CROSS | NATURAL} JOIN\"\n]);\nvar reservedPhrases18 = expandPhrases([\n \"{ROWS | RANGE} BETWEEN\",\n \"ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]\"\n]);\nvar snowflake = {\n name: \"snowflake\",\n tokenizerOptions: {\n reservedSelect: reservedSelect18,\n reservedClauses: [...reservedClauses18, ...standardOnelineClauses17, ...tabularOnelineClauses17],\n reservedSetOperations: reservedSetOperations18,\n reservedJoins: reservedJoins18,\n reservedPhrases: reservedPhrases18,\n reservedKeywords: keywords18,\n reservedDataTypes: dataTypes18,\n reservedFunctionNames: functions18,\n stringTypes: [\"$$\", `''-qq-bs`],\n identTypes: ['\"\"-qq'],\n variableTypes: [\n // for accessing columns at certain positons in the table\n { regex: \"[$][1-9]\\\\d*\" },\n // identifier style syntax\n { regex: \"[$][_a-zA-Z][_a-zA-Z0-9$]*\" }\n ],\n extraParens: [\"[]\"],\n identChars: { rest: \"$\" },\n lineCommentTypes: [\"--\", \"//\"],\n operators: [\n // Modulo\n \"%\",\n // Type cast\n \"::\",\n // String concat\n \"||\",\n // Generators: https://docs.snowflake.com/en/sql-reference/functions/generator.html#generator\n \"=>\"\n ],\n propertyAccessOperators: [\":\"]\n },\n formatOptions: {\n alwaysDenseOperators: [\"::\"],\n onelineClauses: [...standardOnelineClauses17, ...tabularOnelineClauses17],\n tabularOnelineClauses: tabularOnelineClauses17\n }\n};\n\n// src/utils.ts\nvar last = (arr) => arr[arr.length - 1];\nvar sortByLengthDesc = (strings) => strings.sort((a, b) => b.length - a.length || a.localeCompare(b));\nvar equalizeWhitespace = (s) => s.replace(/\\s+/gu, \" \");\nvar isMultiline = (text) => /\\n/.test(text);\n\n// src/lexer/regexUtil.ts\nvar escapeRegExp = (string2) => string2.replace(/[.*+?^${}()|[\\]\\\\]/gu, \"\\\\$&\");\nvar WHITESPACE_REGEX = /\\s+/uy;\nvar patternToRegex = (pattern) => new RegExp(`(?:${pattern})`, \"uy\");\nvar toCaseInsensitivePattern = (prefix) => prefix.split(\"\").map((char) => / /gu.test(char) ? \"\\\\s+\" : `[${char.toUpperCase()}${char.toLowerCase()}]`).join(\"\");\nvar withDashes = (pattern) => pattern + \"(?:-\" + pattern + \")*\";\nvar prefixesPattern = ({ prefixes, requirePrefix }) => `(?:${prefixes.map(toCaseInsensitivePattern).join(\"|\")}${requirePrefix ? \"\" : \"|\"})`;\n\n// src/lexer/regexFactory.ts\nvar lineComment = (lineCommentTypes) => new RegExp(`(?:${lineCommentTypes.map(escapeRegExp).join(\"|\")}).*?(?=\\r\n|\\r|\n|$)`, \"uy\");\nvar parenthesis = (kind, extraParens = []) => {\n const index = kind === \"open\" ? 0 : 1;\n const parens = [\"()\", ...extraParens].map((pair) => pair[index]);\n return patternToRegex(parens.map(escapeRegExp).join(\"|\"));\n};\nvar operator = (operators) => patternToRegex(`${sortByLengthDesc(operators).map(escapeRegExp).join(\"|\")}`);\nvar rejectIdentCharsPattern = ({ rest, dashes }) => rest || dashes ? `(?![${rest || \"\"}${dashes ? \"-\" : \"\"}])` : \"\";\nvar reservedWord = (reservedKeywords, identChars = {}) => {\n if (reservedKeywords.length === 0) {\n return /^\\b$/u;\n }\n const avoidIdentChars = rejectIdentCharsPattern(identChars);\n const reservedKeywordsPattern = sortByLengthDesc(reservedKeywords).map(escapeRegExp).join(\"|\").replace(/ /gu, \"\\\\s+\");\n return new RegExp(`(?:${reservedKeywordsPattern})${avoidIdentChars}\\\\b`, \"iuy\");\n};\nvar parameter = (paramTypes, pattern) => {\n if (!paramTypes.length) {\n return void 0;\n }\n const typesRegex = paramTypes.map(escapeRegExp).join(\"|\");\n return patternToRegex(`(?:${typesRegex})(?:${pattern})`);\n};\nvar buildQStringPatterns = () => {\n const specialDelimiterMap = {\n \"<\": \">\",\n \"[\": \"]\",\n \"(\": \")\",\n \"{\": \"}\"\n };\n const singlePattern = \"{left}(?:(?!{right}').)*?{right}\";\n const patternList = Object.entries(specialDelimiterMap).map(\n ([left, right]) => singlePattern.replace(/{left}/g, escapeRegExp(left)).replace(/{right}/g, escapeRegExp(right))\n );\n const specialDelimiters = escapeRegExp(Object.keys(specialDelimiterMap).join(\"\"));\n const standardDelimiterPattern = String.raw`(?[^\\s${specialDelimiters}])(?:(?!\\k').)*?\\k`;\n const qStringPattern = `[Qq]'(?:${standardDelimiterPattern}|${patternList.join(\"|\")})'`;\n return qStringPattern;\n};\nvar quotePatterns = {\n // - backtick quoted (using `` to escape)\n \"``\": \"(?:`[^`]*`)+\",\n // - Transact-SQL square bracket quoted (using ]] to escape)\n \"[]\": String.raw`(?:\\[[^\\]]*\\])(?:\\][^\\]]*\\])*`,\n // double-quoted\n '\"\"-qq': String.raw`(?:\"[^\"]*\")+`,\n // with repeated quote escapes\n '\"\"-bs': String.raw`(?:\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")`,\n // with backslash escapes\n '\"\"-qq-bs': String.raw`(?:\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")+`,\n // with repeated quote or backslash escapes\n '\"\"-raw': String.raw`(?:\"[^\"]*\")`,\n // no escaping\n // single-quoted\n \"''-qq\": String.raw`(?:'[^']*')+`,\n // with repeated quote escapes\n \"''-bs\": String.raw`(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')`,\n // with backslash escapes\n \"''-qq-bs\": String.raw`(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')+`,\n // with repeated quote or backslash escapes\n \"''-raw\": String.raw`(?:'[^']*')`,\n // no escaping\n // PostgreSQL dollar-quoted\n \"$$\": String.raw`(?\\$\\w*\\$)[\\s\\S]*?\\k`,\n // BigQuery '''triple-quoted''' (using \\' to escape)\n \"'''..'''\": String.raw`'''[^\\\\]*?(?:\\\\.[^\\\\]*?)*?'''`,\n // BigQuery \"\"\"triple-quoted\"\"\" (using \\\" to escape)\n '\"\"\"..\"\"\"': String.raw`\"\"\"[^\\\\]*?(?:\\\\.[^\\\\]*?)*?\"\"\"`,\n // Hive and Spark variables: ${name}\n \"{}\": String.raw`(?:\\{[^\\}]*\\})`,\n // Oracle q'' strings: q'' q'|text|' ...\n \"q''\": buildQStringPatterns()\n};\nvar singleQuotePattern = (quoteTypes) => {\n if (typeof quoteTypes === \"string\") {\n return quotePatterns[quoteTypes];\n } else if (\"regex\" in quoteTypes) {\n return quoteTypes.regex;\n } else {\n return prefixesPattern(quoteTypes) + quotePatterns[quoteTypes.quote];\n }\n};\nvar variable = (varTypes) => patternToRegex(\n varTypes.map((varType) => \"regex\" in varType ? varType.regex : singleQuotePattern(varType)).join(\"|\")\n);\nvar stringPattern = (quoteTypes) => quoteTypes.map(singleQuotePattern).join(\"|\");\nvar string = (quoteTypes) => patternToRegex(stringPattern(quoteTypes));\nvar identifier = (specialChars = {}) => patternToRegex(identifierPattern(specialChars));\nvar identifierPattern = ({\n first,\n rest,\n dashes,\n allowFirstCharNumber\n} = {}) => {\n const letter = \"\\\\p{Alphabetic}\\\\p{Mark}_\";\n const number = \"\\\\p{Decimal_Number}\";\n const firstChars = escapeRegExp(first != null ? first : \"\");\n const restChars = escapeRegExp(rest != null ? rest : \"\");\n const pattern = allowFirstCharNumber ? `[${letter}${number}${firstChars}][${letter}${number}${restChars}]*` : `[${letter}${firstChars}][${letter}${number}${restChars}]*`;\n return dashes ? withDashes(pattern) : pattern;\n};\n\n// src/lexer/lineColFromIndex.ts\nfunction lineColFromIndex(source, index) {\n const lines = source.slice(0, index).split(/\\n/);\n return { line: lines.length, col: lines[lines.length - 1].length + 1 };\n}\n\n// src/lexer/TokenizerEngine.ts\nvar TokenizerEngine = class {\n // Current position in string\n constructor(rules, dialectName) {\n this.rules = rules;\n this.dialectName = dialectName;\n this.input = \"\";\n // The input SQL string to process\n this.index = 0;\n }\n /**\n * Takes a SQL string and breaks it into tokens.\n * Each token is an object with type and value.\n *\n * @param {string} input - The SQL string\n * @returns {Token[]} output token stream\n */\n tokenize(input) {\n this.input = input;\n this.index = 0;\n const tokens = [];\n let token;\n while (this.index < this.input.length) {\n const precedingWhitespace = this.getWhitespace();\n if (this.index < this.input.length) {\n token = this.getNextToken();\n if (!token) {\n throw this.createParseError();\n }\n tokens.push(__spreadProps(__spreadValues({}, token), { precedingWhitespace }));\n }\n }\n return tokens;\n }\n createParseError() {\n const text = this.input.slice(this.index, this.index + 10);\n const { line, col } = lineColFromIndex(this.input, this.index);\n return new Error(\n `Parse error: Unexpected \"${text}\" at line ${line} column ${col}.\n${this.dialectInfo()}`\n );\n }\n dialectInfo() {\n if (this.dialectName === \"sql\") {\n return `This likely happens because you're using the default \"sql\" dialect.\nIf possible, please select a more specific dialect (like sqlite, postgresql, etc).`;\n } else {\n return `SQL dialect used: \"${this.dialectName}\".`;\n }\n }\n getWhitespace() {\n WHITESPACE_REGEX.lastIndex = this.index;\n const matches = WHITESPACE_REGEX.exec(this.input);\n if (matches) {\n this.index += matches[0].length;\n return matches[0];\n }\n return void 0;\n }\n getNextToken() {\n for (const rule of this.rules) {\n const token = this.match(rule);\n if (token) {\n return token;\n }\n }\n return void 0;\n }\n // Attempts to match token rule regex at current position in input\n match(rule) {\n rule.regex.lastIndex = this.index;\n const matches = rule.regex.exec(this.input);\n if (matches) {\n const matchedText = matches[0];\n const token = {\n type: rule.type,\n raw: matchedText,\n text: rule.text ? rule.text(matchedText) : matchedText,\n start: this.index\n };\n if (rule.key) {\n token.key = rule.key(matchedText);\n }\n this.index += matchedText.length;\n return token;\n }\n return void 0;\n }\n};\n\n// src/lexer/NestedComment.ts\nvar START = /\\/\\*/uy;\nvar ANY_CHAR = /[\\s\\S]/uy;\nvar END2 = /\\*\\//uy;\nvar NestedComment = class {\n constructor() {\n this.lastIndex = 0;\n }\n exec(input) {\n let result = \"\";\n let match;\n let nestLevel = 0;\n if (match = this.matchSection(START, input)) {\n result += match;\n nestLevel++;\n } else {\n return null;\n }\n while (nestLevel > 0) {\n if (match = this.matchSection(START, input)) {\n result += match;\n nestLevel++;\n } else if (match = this.matchSection(END2, input)) {\n result += match;\n nestLevel--;\n } else if (match = this.matchSection(ANY_CHAR, input)) {\n result += match;\n } else {\n return null;\n }\n }\n return [result];\n }\n matchSection(regex, input) {\n regex.lastIndex = this.lastIndex;\n const matches = regex.exec(input);\n if (matches) {\n this.lastIndex += matches[0].length;\n }\n return matches ? matches[0] : null;\n }\n};\n\n// src/lexer/Tokenizer.ts\nvar Tokenizer = class {\n constructor(cfg, dialectName) {\n this.cfg = cfg;\n this.dialectName = dialectName;\n this.rulesBeforeParams = this.buildRulesBeforeParams(cfg);\n this.rulesAfterParams = this.buildRulesAfterParams(cfg);\n }\n tokenize(input, paramTypesOverrides) {\n const rules = [\n ...this.rulesBeforeParams,\n ...this.buildParamRules(this.cfg, paramTypesOverrides),\n ...this.rulesAfterParams\n ];\n const tokens = new TokenizerEngine(rules, this.dialectName).tokenize(input);\n return this.cfg.postProcess ? this.cfg.postProcess(tokens) : tokens;\n }\n // These rules can be cached as they only depend on\n // the Tokenizer config options specified for each SQL dialect\n buildRulesBeforeParams(cfg) {\n var _a, _b;\n return this.validRules([\n {\n type: \"BLOCK_COMMENT\" /* BLOCK_COMMENT */,\n regex: /(\\/\\* *sql-formatter-disable *\\*\\/[\\s\\S]*?(?:\\/\\* *sql-formatter-enable *\\*\\/|$))/uy\n },\n {\n type: \"BLOCK_COMMENT\" /* BLOCK_COMMENT */,\n regex: cfg.nestedBlockComments ? new NestedComment() : /(\\/\\*[^]*?\\*\\/)/uy\n },\n {\n type: \"LINE_COMMENT\" /* LINE_COMMENT */,\n regex: lineComment((_a = cfg.lineCommentTypes) != null ? _a : [\"--\"])\n },\n {\n type: \"QUOTED_IDENTIFIER\" /* QUOTED_IDENTIFIER */,\n regex: string(cfg.identTypes)\n },\n {\n type: \"NUMBER\" /* NUMBER */,\n regex: /(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\\s*)?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+(?:\\.[0-9]+)?)?)(?![\\w\\p{Alphabetic}])/uy\n },\n // RESERVED_PHRASE is matched before all other keyword tokens\n // to e.g. prioritize matching \"TIMESTAMP WITH TIME ZONE\" phrase over \"WITH\" clause.\n {\n type: \"RESERVED_PHRASE\" /* RESERVED_PHRASE */,\n regex: reservedWord((_b = cfg.reservedPhrases) != null ? _b : [], cfg.identChars),\n text: toCanonical\n },\n {\n type: \"CASE\" /* CASE */,\n regex: /CASE\\b/iuy,\n text: toCanonical\n },\n {\n type: \"END\" /* END */,\n regex: /END\\b/iuy,\n text: toCanonical\n },\n {\n type: \"BETWEEN\" /* BETWEEN */,\n regex: /BETWEEN\\b/iuy,\n text: toCanonical\n },\n {\n type: \"LIMIT\" /* LIMIT */,\n regex: cfg.reservedClauses.includes(\"LIMIT\") ? /LIMIT\\b/iuy : void 0,\n text: toCanonical\n },\n {\n type: \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */,\n regex: reservedWord(cfg.reservedClauses, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"RESERVED_SELECT\" /* RESERVED_SELECT */,\n regex: reservedWord(cfg.reservedSelect, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"RESERVED_SET_OPERATION\" /* RESERVED_SET_OPERATION */,\n regex: reservedWord(cfg.reservedSetOperations, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"WHEN\" /* WHEN */,\n regex: /WHEN\\b/iuy,\n text: toCanonical\n },\n {\n type: \"ELSE\" /* ELSE */,\n regex: /ELSE\\b/iuy,\n text: toCanonical\n },\n {\n type: \"THEN\" /* THEN */,\n regex: /THEN\\b/iuy,\n text: toCanonical\n },\n {\n type: \"RESERVED_JOIN\" /* RESERVED_JOIN */,\n regex: reservedWord(cfg.reservedJoins, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"AND\" /* AND */,\n regex: /AND\\b/iuy,\n text: toCanonical\n },\n {\n type: \"OR\" /* OR */,\n regex: /OR\\b/iuy,\n text: toCanonical\n },\n {\n type: \"XOR\" /* XOR */,\n regex: cfg.supportsXor ? /XOR\\b/iuy : void 0,\n text: toCanonical\n },\n {\n type: \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */,\n regex: reservedWord(cfg.reservedFunctionNames, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */,\n regex: reservedWord(cfg.reservedDataTypes, cfg.identChars),\n text: toCanonical\n },\n {\n type: \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */,\n regex: reservedWord(cfg.reservedKeywords, cfg.identChars),\n text: toCanonical\n }\n ]);\n }\n // These rules can also be cached as they only depend on\n // the Tokenizer config options specified for each SQL dialect\n buildRulesAfterParams(cfg) {\n var _a, _b;\n return this.validRules([\n {\n type: \"VARIABLE\" /* VARIABLE */,\n regex: cfg.variableTypes ? variable(cfg.variableTypes) : void 0\n },\n { type: \"STRING\" /* STRING */, regex: string(cfg.stringTypes) },\n {\n type: \"IDENTIFIER\" /* IDENTIFIER */,\n regex: identifier(cfg.identChars)\n },\n { type: \"DELIMITER\" /* DELIMITER */, regex: /[;]/uy },\n { type: \"COMMA\" /* COMMA */, regex: /[,]/y },\n {\n type: \"OPEN_PAREN\" /* OPEN_PAREN */,\n regex: parenthesis(\"open\", cfg.extraParens)\n },\n {\n type: \"CLOSE_PAREN\" /* CLOSE_PAREN */,\n regex: parenthesis(\"close\", cfg.extraParens)\n },\n {\n type: \"OPERATOR\" /* OPERATOR */,\n regex: operator([\n // standard operators\n \"+\",\n \"-\",\n \"/\",\n \">\",\n \"<\",\n \"=\",\n \"<>\",\n \"<=\",\n \">=\",\n \"!=\",\n ...(_a = cfg.operators) != null ? _a : []\n ])\n },\n { type: \"ASTERISK\" /* ASTERISK */, regex: /[*]/uy },\n {\n type: \"PROPERTY_ACCESS_OPERATOR\" /* PROPERTY_ACCESS_OPERATOR */,\n regex: operator([\".\", ...(_b = cfg.propertyAccessOperators) != null ? _b : []])\n }\n ]);\n }\n // These rules can't be blindly cached as the paramTypesOverrides object\n // can differ on each invocation of the format() function.\n buildParamRules(cfg, paramTypesOverrides) {\n var _a, _b, _c, _d, _e;\n const paramTypes = {\n named: (paramTypesOverrides == null ? void 0 : paramTypesOverrides.named) || ((_a = cfg.paramTypes) == null ? void 0 : _a.named) || [],\n quoted: (paramTypesOverrides == null ? void 0 : paramTypesOverrides.quoted) || ((_b = cfg.paramTypes) == null ? void 0 : _b.quoted) || [],\n numbered: (paramTypesOverrides == null ? void 0 : paramTypesOverrides.numbered) || ((_c = cfg.paramTypes) == null ? void 0 : _c.numbered) || [],\n positional: typeof (paramTypesOverrides == null ? void 0 : paramTypesOverrides.positional) === \"boolean\" ? paramTypesOverrides.positional : (_d = cfg.paramTypes) == null ? void 0 : _d.positional,\n custom: (paramTypesOverrides == null ? void 0 : paramTypesOverrides.custom) || ((_e = cfg.paramTypes) == null ? void 0 : _e.custom) || []\n };\n return this.validRules([\n {\n type: \"NAMED_PARAMETER\" /* NAMED_PARAMETER */,\n regex: parameter(\n paramTypes.named,\n identifierPattern(cfg.paramChars || cfg.identChars)\n ),\n key: (v) => v.slice(1)\n },\n {\n type: \"QUOTED_PARAMETER\" /* QUOTED_PARAMETER */,\n regex: parameter(paramTypes.quoted, stringPattern(cfg.identTypes)),\n key: (v) => (({ tokenKey, quoteChar }) => tokenKey.replace(new RegExp(escapeRegExp(\"\\\\\" + quoteChar), \"gu\"), quoteChar))({\n tokenKey: v.slice(2, -1),\n quoteChar: v.slice(-1)\n })\n },\n {\n type: \"NUMBERED_PARAMETER\" /* NUMBERED_PARAMETER */,\n regex: parameter(paramTypes.numbered, \"[0-9]+\"),\n key: (v) => v.slice(1)\n },\n {\n type: \"POSITIONAL_PARAMETER\" /* POSITIONAL_PARAMETER */,\n regex: paramTypes.positional ? /[?]/y : void 0\n },\n ...paramTypes.custom.map(\n (customParam) => {\n var _a2;\n return {\n type: \"CUSTOM_PARAMETER\" /* CUSTOM_PARAMETER */,\n regex: patternToRegex(customParam.regex),\n key: (_a2 = customParam.key) != null ? _a2 : (v) => v\n };\n }\n )\n ]);\n }\n // filters out rules for token types whose regex is undefined\n validRules(rules) {\n return rules.filter((rule) => Boolean(rule.regex));\n }\n};\nvar toCanonical = (v) => equalizeWhitespace(v.toUpperCase());\n\n// src/dialect.ts\nvar cache = /* @__PURE__ */ new Map();\nvar createDialect = (options) => {\n let dialect = cache.get(options);\n if (!dialect) {\n dialect = dialectFromOptions(options);\n cache.set(options, dialect);\n }\n return dialect;\n};\nvar dialectFromOptions = (dialectOptions) => ({\n tokenizer: new Tokenizer(dialectOptions.tokenizerOptions, dialectOptions.name),\n formatOptions: processDialectFormatOptions(dialectOptions.formatOptions)\n});\nvar processDialectFormatOptions = (options) => {\n var _a;\n return {\n alwaysDenseOperators: options.alwaysDenseOperators || [],\n onelineClauses: Object.fromEntries(options.onelineClauses.map((name) => [name, true])),\n tabularOnelineClauses: Object.fromEntries(\n ((_a = options.tabularOnelineClauses) != null ? _a : options.onelineClauses).map((name) => [name, true])\n )\n };\n};\n\n// src/formatter/config.ts\nfunction indentString(cfg) {\n if (cfg.indentStyle === \"tabularLeft\" || cfg.indentStyle === \"tabularRight\") {\n return \" \".repeat(10);\n }\n if (cfg.useTabs) {\n return \"\t\";\n }\n return \" \".repeat(cfg.tabWidth);\n}\nfunction isTabularStyle(cfg) {\n return cfg.indentStyle === \"tabularLeft\" || cfg.indentStyle === \"tabularRight\";\n}\n\n// src/formatter/Params.ts\nvar Params = class {\n constructor(params) {\n this.params = params;\n this.index = 0;\n }\n /**\n * Returns param value that matches given placeholder with param key.\n */\n get({ key, text }) {\n if (!this.params) {\n return text;\n }\n if (key) {\n return this.params[key];\n }\n return this.params[this.index++];\n }\n /**\n * Returns index of current positional parameter.\n */\n getPositionalParameterIndex() {\n return this.index;\n }\n /**\n * Sets index of current positional parameter.\n */\n setPositionalParameterIndex(i) {\n this.index = i;\n }\n};\n\n// src/parser/createParser.ts\nimport nearley from \"nearley\";\n\n// src/lexer/disambiguateTokens.ts\nfunction disambiguateTokens(tokens) {\n return tokens.map(propertyNameKeywordToIdent).map(funcNameToKeyword).map(dataTypeToParameterizedDataType).map(identToArrayIdent).map(dataTypeToArrayKeyword);\n}\nvar propertyNameKeywordToIdent = (token, i, tokens) => {\n if (isReserved(token.type)) {\n const prevToken = prevNonCommentToken(tokens, i);\n if (prevToken && prevToken.type === \"PROPERTY_ACCESS_OPERATOR\" /* PROPERTY_ACCESS_OPERATOR */) {\n return __spreadProps(__spreadValues({}, token), { type: \"IDENTIFIER\" /* IDENTIFIER */, text: token.raw });\n }\n }\n return token;\n};\nvar funcNameToKeyword = (token, i, tokens) => {\n if (token.type === \"RESERVED_FUNCTION_NAME\" /* RESERVED_FUNCTION_NAME */) {\n const nextToken = nextNonCommentToken(tokens, i);\n if (!nextToken || !isOpenParen(nextToken)) {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_KEYWORD\" /* RESERVED_KEYWORD */ });\n }\n }\n return token;\n};\nvar dataTypeToParameterizedDataType = (token, i, tokens) => {\n if (token.type === \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */) {\n const nextToken = nextNonCommentToken(tokens, i);\n if (nextToken && isOpenParen(nextToken)) {\n return __spreadProps(__spreadValues({}, token), { type: \"RESERVED_PARAMETERIZED_DATA_TYPE\" /* RESERVED_PARAMETERIZED_DATA_TYPE */ });\n }\n }\n return token;\n};\nvar identToArrayIdent = (token, i, tokens) => {\n if (token.type === \"IDENTIFIER\" /* IDENTIFIER */) {\n const nextToken = nextNonCommentToken(tokens, i);\n if (nextToken && isOpenBracket(nextToken)) {\n return __spreadProps(__spreadValues({}, token), { type: \"ARRAY_IDENTIFIER\" /* ARRAY_IDENTIFIER */ });\n }\n }\n return token;\n};\nvar dataTypeToArrayKeyword = (token, i, tokens) => {\n if (token.type === \"RESERVED_DATA_TYPE\" /* RESERVED_DATA_TYPE */) {\n const nextToken = nextNonCommentToken(tokens, i);\n if (nextToken && isOpenBracket(nextToken)) {\n return __spreadProps(__spreadValues({}, token), { type: \"ARRAY_KEYWORD\" /* ARRAY_KEYWORD */ });\n }\n }\n return token;\n};\nvar prevNonCommentToken = (tokens, index) => nextNonCommentToken(tokens, index, -1);\nvar nextNonCommentToken = (tokens, index, dir = 1) => {\n let i = 1;\n while (tokens[index + i * dir] && isComment(tokens[index + i * dir])) {\n i++;\n }\n return tokens[index + i * dir];\n};\nvar isOpenParen = (t) => t.type === \"OPEN_PAREN\" /* OPEN_PAREN */ && t.text === \"(\";\nvar isOpenBracket = (t) => t.type === \"OPEN_PAREN\" /* OPEN_PAREN */ && t.text === \"[\";\nvar isComment = (t) => t.type === \"BLOCK_COMMENT\" /* BLOCK_COMMENT */ || t.type === \"LINE_COMMENT\" /* LINE_COMMENT */;\n\n// src/parser/LexerAdapter.ts\nvar LexerAdapter = class {\n constructor(tokenize) {\n this.tokenize = tokenize;\n this.index = 0;\n this.tokens = [];\n this.input = \"\";\n }\n reset(chunk, _info) {\n this.input = chunk;\n this.index = 0;\n this.tokens = this.tokenize(chunk);\n }\n next() {\n return this.tokens[this.index++];\n }\n save() {\n }\n formatError(token) {\n const { line, col } = lineColFromIndex(this.input, token.start);\n return `Parse error at token: ${token.text} at line ${line} column ${col}`;\n }\n has(name) {\n return name in TokenType;\n }\n};\n\n// src/parser/grammar.ts\nfunction id(d) {\n return d[0];\n}\nvar lexer = new LexerAdapter((chunk) => []);\nvar unwrap = ([[el]]) => el;\nvar toKeywordNode = (token) => ({\n type: \"keyword\" /* keyword */,\n tokenType: token.type,\n text: token.text,\n raw: token.raw\n});\nvar toDataTypeNode = (token) => ({\n type: \"data_type\" /* data_type */,\n text: token.text,\n raw: token.raw\n});\nvar addComments = (node, { leading, trailing }) => {\n if (leading == null ? void 0 : leading.length) {\n node = __spreadProps(__spreadValues({}, node), { leadingComments: leading });\n }\n if (trailing == null ? void 0 : trailing.length) {\n node = __spreadProps(__spreadValues({}, node), { trailingComments: trailing });\n }\n return node;\n};\nvar addCommentsToArray = (nodes, { leading, trailing }) => {\n if (leading == null ? void 0 : leading.length) {\n const [first, ...rest] = nodes;\n nodes = [addComments(first, { leading }), ...rest];\n }\n if (trailing == null ? void 0 : trailing.length) {\n const lead = nodes.slice(0, -1);\n const last2 = nodes[nodes.length - 1];\n nodes = [...lead, addComments(last2, { trailing })];\n }\n return nodes;\n};\nvar grammar = {\n Lexer: lexer,\n ParserRules: [\n { \"name\": \"main$ebnf$1\", \"symbols\": [] },\n { \"name\": \"main$ebnf$1\", \"symbols\": [\"main$ebnf$1\", \"statement\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"main\",\n \"symbols\": [\"main$ebnf$1\"],\n \"postprocess\": ([statements]) => {\n const last2 = statements[statements.length - 1];\n if (last2 && !last2.hasSemicolon) {\n return last2.children.length > 0 ? statements : statements.slice(0, -1);\n } else {\n return statements;\n }\n }\n },\n { \"name\": \"statement$subexpression$1\", \"symbols\": [lexer.has(\"DELIMITER\") ? { type: \"DELIMITER\" } : DELIMITER] },\n { \"name\": \"statement$subexpression$1\", \"symbols\": [lexer.has(\"EOF\") ? { type: \"EOF\" } : EOF] },\n {\n \"name\": \"statement\",\n \"symbols\": [\"expressions_or_clauses\", \"statement$subexpression$1\"],\n \"postprocess\": ([children, [delimiter]]) => ({\n type: \"statement\" /* statement */,\n children,\n hasSemicolon: delimiter.type === \"DELIMITER\" /* DELIMITER */\n })\n },\n { \"name\": \"expressions_or_clauses$ebnf$1\", \"symbols\": [] },\n { \"name\": \"expressions_or_clauses$ebnf$1\", \"symbols\": [\"expressions_or_clauses$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"expressions_or_clauses$ebnf$2\", \"symbols\": [] },\n { \"name\": \"expressions_or_clauses$ebnf$2\", \"symbols\": [\"expressions_or_clauses$ebnf$2\", \"clause\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"expressions_or_clauses\",\n \"symbols\": [\"expressions_or_clauses$ebnf$1\", \"expressions_or_clauses$ebnf$2\"],\n \"postprocess\": ([expressions, clauses]) => [...expressions, ...clauses]\n },\n { \"name\": \"clause$subexpression$1\", \"symbols\": [\"limit_clause\"] },\n { \"name\": \"clause$subexpression$1\", \"symbols\": [\"select_clause\"] },\n { \"name\": \"clause$subexpression$1\", \"symbols\": [\"other_clause\"] },\n { \"name\": \"clause$subexpression$1\", \"symbols\": [\"set_operation\"] },\n { \"name\": \"clause\", \"symbols\": [\"clause$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"limit_clause$ebnf$1$subexpression$1$ebnf$1\", \"symbols\": [\"free_form_sql\"] },\n { \"name\": \"limit_clause$ebnf$1$subexpression$1$ebnf$1\", \"symbols\": [\"limit_clause$ebnf$1$subexpression$1$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"limit_clause$ebnf$1$subexpression$1\", \"symbols\": [lexer.has(\"COMMA\") ? { type: \"COMMA\" } : COMMA, \"limit_clause$ebnf$1$subexpression$1$ebnf$1\"] },\n { \"name\": \"limit_clause$ebnf$1\", \"symbols\": [\"limit_clause$ebnf$1$subexpression$1\"], \"postprocess\": id },\n { \"name\": \"limit_clause$ebnf$1\", \"symbols\": [], \"postprocess\": () => null },\n {\n \"name\": \"limit_clause\",\n \"symbols\": [lexer.has(\"LIMIT\") ? { type: \"LIMIT\" } : LIMIT, \"_\", \"expression_chain_\", \"limit_clause$ebnf$1\"],\n \"postprocess\": ([limitToken, _, exp1, optional]) => {\n if (optional) {\n const [comma, exp2] = optional;\n return {\n type: \"limit_clause\" /* limit_clause */,\n limitKw: addComments(toKeywordNode(limitToken), { trailing: _ }),\n offset: exp1,\n count: exp2\n };\n } else {\n return {\n type: \"limit_clause\" /* limit_clause */,\n limitKw: addComments(toKeywordNode(limitToken), { trailing: _ }),\n count: exp1\n };\n }\n }\n },\n { \"name\": \"select_clause$subexpression$1$ebnf$1\", \"symbols\": [] },\n { \"name\": \"select_clause$subexpression$1$ebnf$1\", \"symbols\": [\"select_clause$subexpression$1$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"select_clause$subexpression$1\", \"symbols\": [\"all_columns_asterisk\", \"select_clause$subexpression$1$ebnf$1\"] },\n { \"name\": \"select_clause$subexpression$1$ebnf$2\", \"symbols\": [] },\n { \"name\": \"select_clause$subexpression$1$ebnf$2\", \"symbols\": [\"select_clause$subexpression$1$ebnf$2\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"select_clause$subexpression$1\", \"symbols\": [\"asteriskless_free_form_sql\", \"select_clause$subexpression$1$ebnf$2\"] },\n {\n \"name\": \"select_clause\",\n \"symbols\": [lexer.has(\"RESERVED_SELECT\") ? { type: \"RESERVED_SELECT\" } : RESERVED_SELECT, \"select_clause$subexpression$1\"],\n \"postprocess\": ([nameToken, [exp, expressions]]) => ({\n type: \"clause\" /* clause */,\n nameKw: toKeywordNode(nameToken),\n children: [exp, ...expressions]\n })\n },\n {\n \"name\": \"select_clause\",\n \"symbols\": [lexer.has(\"RESERVED_SELECT\") ? { type: \"RESERVED_SELECT\" } : RESERVED_SELECT],\n \"postprocess\": ([nameToken]) => ({\n type: \"clause\" /* clause */,\n nameKw: toKeywordNode(nameToken),\n children: []\n })\n },\n {\n \"name\": \"all_columns_asterisk\",\n \"symbols\": [lexer.has(\"ASTERISK\") ? { type: \"ASTERISK\" } : ASTERISK],\n \"postprocess\": () => ({ type: \"all_columns_asterisk\" /* all_columns_asterisk */ })\n },\n { \"name\": \"other_clause$ebnf$1\", \"symbols\": [] },\n { \"name\": \"other_clause$ebnf$1\", \"symbols\": [\"other_clause$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"other_clause\",\n \"symbols\": [lexer.has(\"RESERVED_CLAUSE\") ? { type: \"RESERVED_CLAUSE\" } : RESERVED_CLAUSE, \"other_clause$ebnf$1\"],\n \"postprocess\": ([nameToken, children]) => ({\n type: \"clause\" /* clause */,\n nameKw: toKeywordNode(nameToken),\n children\n })\n },\n { \"name\": \"set_operation$ebnf$1\", \"symbols\": [] },\n { \"name\": \"set_operation$ebnf$1\", \"symbols\": [\"set_operation$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"set_operation\",\n \"symbols\": [lexer.has(\"RESERVED_SET_OPERATION\") ? { type: \"RESERVED_SET_OPERATION\" } : RESERVED_SET_OPERATION, \"set_operation$ebnf$1\"],\n \"postprocess\": ([nameToken, children]) => ({\n type: \"set_operation\" /* set_operation */,\n nameKw: toKeywordNode(nameToken),\n children\n })\n },\n { \"name\": \"expression_chain_$ebnf$1\", \"symbols\": [\"expression_with_comments_\"] },\n { \"name\": \"expression_chain_$ebnf$1\", \"symbols\": [\"expression_chain_$ebnf$1\", \"expression_with_comments_\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"expression_chain_\", \"symbols\": [\"expression_chain_$ebnf$1\"], \"postprocess\": id },\n { \"name\": \"expression_chain$ebnf$1\", \"symbols\": [] },\n { \"name\": \"expression_chain$ebnf$1\", \"symbols\": [\"expression_chain$ebnf$1\", \"_expression_with_comments\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"expression_chain\",\n \"symbols\": [\"expression\", \"expression_chain$ebnf$1\"],\n \"postprocess\": ([expr, chain]) => [expr, ...chain]\n },\n { \"name\": \"andless_expression_chain$ebnf$1\", \"symbols\": [] },\n { \"name\": \"andless_expression_chain$ebnf$1\", \"symbols\": [\"andless_expression_chain$ebnf$1\", \"_andless_expression_with_comments\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"andless_expression_chain\",\n \"symbols\": [\"andless_expression\", \"andless_expression_chain$ebnf$1\"],\n \"postprocess\": ([expr, chain]) => [expr, ...chain]\n },\n {\n \"name\": \"expression_with_comments_\",\n \"symbols\": [\"expression\", \"_\"],\n \"postprocess\": ([expr, _]) => addComments(expr, { trailing: _ })\n },\n {\n \"name\": \"_expression_with_comments\",\n \"symbols\": [\"_\", \"expression\"],\n \"postprocess\": ([_, expr]) => addComments(expr, { leading: _ })\n },\n {\n \"name\": \"_andless_expression_with_comments\",\n \"symbols\": [\"_\", \"andless_expression\"],\n \"postprocess\": ([_, expr]) => addComments(expr, { leading: _ })\n },\n { \"name\": \"free_form_sql$subexpression$1\", \"symbols\": [\"asteriskless_free_form_sql\"] },\n { \"name\": \"free_form_sql$subexpression$1\", \"symbols\": [\"asterisk\"] },\n { \"name\": \"free_form_sql\", \"symbols\": [\"free_form_sql$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"asteriskless_free_form_sql$subexpression$1\", \"symbols\": [\"asteriskless_andless_expression\"] },\n { \"name\": \"asteriskless_free_form_sql$subexpression$1\", \"symbols\": [\"logic_operator\"] },\n { \"name\": \"asteriskless_free_form_sql$subexpression$1\", \"symbols\": [\"comma\"] },\n { \"name\": \"asteriskless_free_form_sql$subexpression$1\", \"symbols\": [\"comment\"] },\n { \"name\": \"asteriskless_free_form_sql$subexpression$1\", \"symbols\": [\"other_keyword\"] },\n { \"name\": \"asteriskless_free_form_sql\", \"symbols\": [\"asteriskless_free_form_sql$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"expression$subexpression$1\", \"symbols\": [\"andless_expression\"] },\n { \"name\": \"expression$subexpression$1\", \"symbols\": [\"logic_operator\"] },\n { \"name\": \"expression\", \"symbols\": [\"expression$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"andless_expression$subexpression$1\", \"symbols\": [\"asteriskless_andless_expression\"] },\n { \"name\": \"andless_expression$subexpression$1\", \"symbols\": [\"asterisk\"] },\n { \"name\": \"andless_expression\", \"symbols\": [\"andless_expression$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"asteriskless_andless_expression$subexpression$1\", \"symbols\": [\"atomic_expression\"] },\n { \"name\": \"asteriskless_andless_expression$subexpression$1\", \"symbols\": [\"between_predicate\"] },\n { \"name\": \"asteriskless_andless_expression$subexpression$1\", \"symbols\": [\"case_expression\"] },\n { \"name\": \"asteriskless_andless_expression\", \"symbols\": [\"asteriskless_andless_expression$subexpression$1\"], \"postprocess\": unwrap },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"array_subscript\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"function_call\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"property_access\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"parenthesis\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"curly_braces\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"square_brackets\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"operator\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"identifier\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"parameter\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"literal\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"data_type\"] },\n { \"name\": \"atomic_expression$subexpression$1\", \"symbols\": [\"keyword\"] },\n { \"name\": \"atomic_expression\", \"symbols\": [\"atomic_expression$subexpression$1\"], \"postprocess\": unwrap },\n {\n \"name\": \"array_subscript\",\n \"symbols\": [lexer.has(\"ARRAY_IDENTIFIER\") ? { type: \"ARRAY_IDENTIFIER\" } : ARRAY_IDENTIFIER, \"_\", \"square_brackets\"],\n \"postprocess\": ([arrayToken, _, brackets]) => ({\n type: \"array_subscript\" /* array_subscript */,\n array: addComments({ type: \"identifier\" /* identifier */, quoted: false, text: arrayToken.text }, { trailing: _ }),\n parenthesis: brackets\n })\n },\n {\n \"name\": \"array_subscript\",\n \"symbols\": [lexer.has(\"ARRAY_KEYWORD\") ? { type: \"ARRAY_KEYWORD\" } : ARRAY_KEYWORD, \"_\", \"square_brackets\"],\n \"postprocess\": ([arrayToken, _, brackets]) => ({\n type: \"array_subscript\" /* array_subscript */,\n array: addComments(toKeywordNode(arrayToken), { trailing: _ }),\n parenthesis: brackets\n })\n },\n {\n \"name\": \"function_call\",\n \"symbols\": [lexer.has(\"RESERVED_FUNCTION_NAME\") ? { type: \"RESERVED_FUNCTION_NAME\" } : RESERVED_FUNCTION_NAME, \"_\", \"parenthesis\"],\n \"postprocess\": ([nameToken, _, parens]) => ({\n type: \"function_call\" /* function_call */,\n nameKw: addComments(toKeywordNode(nameToken), { trailing: _ }),\n parenthesis: parens\n })\n },\n {\n \"name\": \"parenthesis\",\n \"symbols\": [{ \"literal\": \"(\" }, \"expressions_or_clauses\", { \"literal\": \")\" }],\n \"postprocess\": ([open, children, close]) => ({\n type: \"parenthesis\" /* parenthesis */,\n children,\n openParen: \"(\",\n closeParen: \")\"\n })\n },\n { \"name\": \"curly_braces$ebnf$1\", \"symbols\": [] },\n { \"name\": \"curly_braces$ebnf$1\", \"symbols\": [\"curly_braces$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"curly_braces\",\n \"symbols\": [{ \"literal\": \"{\" }, \"curly_braces$ebnf$1\", { \"literal\": \"}\" }],\n \"postprocess\": ([open, children, close]) => ({\n type: \"parenthesis\" /* parenthesis */,\n children,\n openParen: \"{\",\n closeParen: \"}\"\n })\n },\n { \"name\": \"square_brackets$ebnf$1\", \"symbols\": [] },\n { \"name\": \"square_brackets$ebnf$1\", \"symbols\": [\"square_brackets$ebnf$1\", \"free_form_sql\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"square_brackets\",\n \"symbols\": [{ \"literal\": \"[\" }, \"square_brackets$ebnf$1\", { \"literal\": \"]\" }],\n \"postprocess\": ([open, children, close]) => ({\n type: \"parenthesis\" /* parenthesis */,\n children,\n openParen: \"[\",\n closeParen: \"]\"\n })\n },\n { \"name\": \"property_access$subexpression$1\", \"symbols\": [\"identifier\"] },\n { \"name\": \"property_access$subexpression$1\", \"symbols\": [\"array_subscript\"] },\n { \"name\": \"property_access$subexpression$1\", \"symbols\": [\"all_columns_asterisk\"] },\n { \"name\": \"property_access$subexpression$1\", \"symbols\": [\"parameter\"] },\n {\n \"name\": \"property_access\",\n \"symbols\": [\"atomic_expression\", \"_\", lexer.has(\"PROPERTY_ACCESS_OPERATOR\") ? { type: \"PROPERTY_ACCESS_OPERATOR\" } : PROPERTY_ACCESS_OPERATOR, \"_\", \"property_access$subexpression$1\"],\n \"postprocess\": (\n // Allowing property to be is currently a hack.\n // A better way would be to allow on the left side of array_subscript,\n // but we currently can't do that because of another hack that requires\n // %ARRAY_IDENTIFIER on the left side of .\n ([object, _1, dot, _2, [property]]) => {\n return {\n type: \"property_access\" /* property_access */,\n object: addComments(object, { trailing: _1 }),\n operator: dot.text,\n property: addComments(property, { leading: _2 })\n };\n }\n )\n },\n {\n \"name\": \"between_predicate\",\n \"symbols\": [lexer.has(\"BETWEEN\") ? { type: \"BETWEEN\" } : BETWEEN, \"_\", \"andless_expression_chain\", \"_\", lexer.has(\"AND\") ? { type: \"AND\" } : AND, \"_\", \"andless_expression\"],\n \"postprocess\": ([betweenToken, _1, expr1, _2, andToken, _3, expr2]) => ({\n type: \"between_predicate\" /* between_predicate */,\n betweenKw: toKeywordNode(betweenToken),\n expr1: addCommentsToArray(expr1, { leading: _1, trailing: _2 }),\n andKw: toKeywordNode(andToken),\n expr2: [addComments(expr2, { leading: _3 })]\n })\n },\n { \"name\": \"case_expression$ebnf$1\", \"symbols\": [\"expression_chain_\"], \"postprocess\": id },\n { \"name\": \"case_expression$ebnf$1\", \"symbols\": [], \"postprocess\": () => null },\n { \"name\": \"case_expression$ebnf$2\", \"symbols\": [] },\n { \"name\": \"case_expression$ebnf$2\", \"symbols\": [\"case_expression$ebnf$2\", \"case_clause\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n {\n \"name\": \"case_expression\",\n \"symbols\": [lexer.has(\"CASE\") ? { type: \"CASE\" } : CASE, \"_\", \"case_expression$ebnf$1\", \"case_expression$ebnf$2\", lexer.has(\"END\") ? { type: \"END\" } : END],\n \"postprocess\": ([caseToken, _, expr, clauses, endToken]) => ({\n type: \"case_expression\" /* case_expression */,\n caseKw: addComments(toKeywordNode(caseToken), { trailing: _ }),\n endKw: toKeywordNode(endToken),\n expr: expr || [],\n clauses\n })\n },\n {\n \"name\": \"case_clause\",\n \"symbols\": [lexer.has(\"WHEN\") ? { type: \"WHEN\" } : WHEN, \"_\", \"expression_chain_\", lexer.has(\"THEN\") ? { type: \"THEN\" } : THEN, \"_\", \"expression_chain_\"],\n \"postprocess\": ([whenToken, _1, cond, thenToken, _2, expr]) => ({\n type: \"case_when\" /* case_when */,\n whenKw: addComments(toKeywordNode(whenToken), { trailing: _1 }),\n thenKw: addComments(toKeywordNode(thenToken), { trailing: _2 }),\n condition: cond,\n result: expr\n })\n },\n {\n \"name\": \"case_clause\",\n \"symbols\": [lexer.has(\"ELSE\") ? { type: \"ELSE\" } : ELSE, \"_\", \"expression_chain_\"],\n \"postprocess\": ([elseToken, _, expr]) => ({\n type: \"case_else\" /* case_else */,\n elseKw: addComments(toKeywordNode(elseToken), { trailing: _ }),\n result: expr\n })\n },\n { \"name\": \"comma$subexpression$1\", \"symbols\": [lexer.has(\"COMMA\") ? { type: \"COMMA\" } : COMMA] },\n { \"name\": \"comma\", \"symbols\": [\"comma$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"comma\" /* comma */ }) },\n { \"name\": \"asterisk$subexpression$1\", \"symbols\": [lexer.has(\"ASTERISK\") ? { type: \"ASTERISK\" } : ASTERISK] },\n { \"name\": \"asterisk\", \"symbols\": [\"asterisk$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"operator\" /* operator */, text: token.text }) },\n { \"name\": \"operator$subexpression$1\", \"symbols\": [lexer.has(\"OPERATOR\") ? { type: \"OPERATOR\" } : OPERATOR] },\n { \"name\": \"operator\", \"symbols\": [\"operator$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"operator\" /* operator */, text: token.text }) },\n { \"name\": \"identifier$subexpression$1\", \"symbols\": [lexer.has(\"IDENTIFIER\") ? { type: \"IDENTIFIER\" } : IDENTIFIER] },\n { \"name\": \"identifier$subexpression$1\", \"symbols\": [lexer.has(\"QUOTED_IDENTIFIER\") ? { type: \"QUOTED_IDENTIFIER\" } : QUOTED_IDENTIFIER] },\n { \"name\": \"identifier$subexpression$1\", \"symbols\": [lexer.has(\"VARIABLE\") ? { type: \"VARIABLE\" } : VARIABLE] },\n { \"name\": \"identifier\", \"symbols\": [\"identifier$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"identifier\" /* identifier */, quoted: token.type !== \"IDENTIFIER\", text: token.text }) },\n { \"name\": \"parameter$subexpression$1\", \"symbols\": [lexer.has(\"NAMED_PARAMETER\") ? { type: \"NAMED_PARAMETER\" } : NAMED_PARAMETER] },\n { \"name\": \"parameter$subexpression$1\", \"symbols\": [lexer.has(\"QUOTED_PARAMETER\") ? { type: \"QUOTED_PARAMETER\" } : QUOTED_PARAMETER] },\n { \"name\": \"parameter$subexpression$1\", \"symbols\": [lexer.has(\"NUMBERED_PARAMETER\") ? { type: \"NUMBERED_PARAMETER\" } : NUMBERED_PARAMETER] },\n { \"name\": \"parameter$subexpression$1\", \"symbols\": [lexer.has(\"POSITIONAL_PARAMETER\") ? { type: \"POSITIONAL_PARAMETER\" } : POSITIONAL_PARAMETER] },\n { \"name\": \"parameter$subexpression$1\", \"symbols\": [lexer.has(\"CUSTOM_PARAMETER\") ? { type: \"CUSTOM_PARAMETER\" } : CUSTOM_PARAMETER] },\n { \"name\": \"parameter\", \"symbols\": [\"parameter$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"parameter\" /* parameter */, key: token.key, text: token.text }) },\n { \"name\": \"literal$subexpression$1\", \"symbols\": [lexer.has(\"NUMBER\") ? { type: \"NUMBER\" } : NUMBER] },\n { \"name\": \"literal$subexpression$1\", \"symbols\": [lexer.has(\"STRING\") ? { type: \"STRING\" } : STRING] },\n { \"name\": \"literal\", \"symbols\": [\"literal$subexpression$1\"], \"postprocess\": ([[token]]) => ({ type: \"literal\" /* literal */, text: token.text }) },\n { \"name\": \"keyword$subexpression$1\", \"symbols\": [lexer.has(\"RESERVED_KEYWORD\") ? { type: \"RESERVED_KEYWORD\" } : RESERVED_KEYWORD] },\n { \"name\": \"keyword$subexpression$1\", \"symbols\": [lexer.has(\"RESERVED_PHRASE\") ? { type: \"RESERVED_PHRASE\" } : RESERVED_PHRASE] },\n { \"name\": \"keyword$subexpression$1\", \"symbols\": [lexer.has(\"RESERVED_JOIN\") ? { type: \"RESERVED_JOIN\" } : RESERVED_JOIN] },\n {\n \"name\": \"keyword\",\n \"symbols\": [\"keyword$subexpression$1\"],\n \"postprocess\": ([[token]]) => toKeywordNode(token)\n },\n { \"name\": \"data_type$subexpression$1\", \"symbols\": [lexer.has(\"RESERVED_DATA_TYPE\") ? { type: \"RESERVED_DATA_TYPE\" } : RESERVED_DATA_TYPE] },\n {\n \"name\": \"data_type\",\n \"symbols\": [\"data_type$subexpression$1\"],\n \"postprocess\": ([[token]]) => toDataTypeNode(token)\n },\n {\n \"name\": \"data_type\",\n \"symbols\": [lexer.has(\"RESERVED_PARAMETERIZED_DATA_TYPE\") ? { type: \"RESERVED_PARAMETERIZED_DATA_TYPE\" } : RESERVED_PARAMETERIZED_DATA_TYPE, \"_\", \"parenthesis\"],\n \"postprocess\": ([nameToken, _, parens]) => ({\n type: \"parameterized_data_type\" /* parameterized_data_type */,\n dataType: addComments(toDataTypeNode(nameToken), { trailing: _ }),\n parenthesis: parens\n })\n },\n { \"name\": \"logic_operator$subexpression$1\", \"symbols\": [lexer.has(\"AND\") ? { type: \"AND\" } : AND] },\n { \"name\": \"logic_operator$subexpression$1\", \"symbols\": [lexer.has(\"OR\") ? { type: \"OR\" } : OR] },\n { \"name\": \"logic_operator$subexpression$1\", \"symbols\": [lexer.has(\"XOR\") ? { type: \"XOR\" } : XOR] },\n {\n \"name\": \"logic_operator\",\n \"symbols\": [\"logic_operator$subexpression$1\"],\n \"postprocess\": ([[token]]) => toKeywordNode(token)\n },\n { \"name\": \"other_keyword$subexpression$1\", \"symbols\": [lexer.has(\"WHEN\") ? { type: \"WHEN\" } : WHEN] },\n { \"name\": \"other_keyword$subexpression$1\", \"symbols\": [lexer.has(\"THEN\") ? { type: \"THEN\" } : THEN] },\n { \"name\": \"other_keyword$subexpression$1\", \"symbols\": [lexer.has(\"ELSE\") ? { type: \"ELSE\" } : ELSE] },\n { \"name\": \"other_keyword$subexpression$1\", \"symbols\": [lexer.has(\"END\") ? { type: \"END\" } : END] },\n {\n \"name\": \"other_keyword\",\n \"symbols\": [\"other_keyword$subexpression$1\"],\n \"postprocess\": ([[token]]) => toKeywordNode(token)\n },\n { \"name\": \"_$ebnf$1\", \"symbols\": [] },\n { \"name\": \"_$ebnf$1\", \"symbols\": [\"_$ebnf$1\", \"comment\"], \"postprocess\": (d) => d[0].concat([d[1]]) },\n { \"name\": \"_\", \"symbols\": [\"_$ebnf$1\"], \"postprocess\": ([comments]) => comments },\n {\n \"name\": \"comment\",\n \"symbols\": [lexer.has(\"LINE_COMMENT\") ? { type: \"LINE_COMMENT\" } : LINE_COMMENT],\n \"postprocess\": ([token]) => ({\n type: \"line_comment\" /* line_comment */,\n text: token.text,\n precedingWhitespace: token.precedingWhitespace\n })\n },\n {\n \"name\": \"comment\",\n \"symbols\": [lexer.has(\"BLOCK_COMMENT\") ? { type: \"BLOCK_COMMENT\" } : BLOCK_COMMENT],\n \"postprocess\": ([token]) => ({\n type: \"block_comment\" /* block_comment */,\n text: token.text,\n precedingWhitespace: token.precedingWhitespace\n })\n },\n {\n \"name\": \"comment\",\n \"symbols\": [lexer.has(\"DISABLE_COMMENT\") ? { type: \"DISABLE_COMMENT\" } : DISABLE_COMMENT],\n \"postprocess\": ([token]) => ({\n type: \"disable_comment\" /* disable_comment */,\n text: token.text,\n precedingWhitespace: token.precedingWhitespace\n })\n }\n ],\n ParserStart: \"main\"\n};\nvar grammar_default = grammar;\n\n// src/parser/createParser.ts\nvar { Parser: NearleyParser, Grammar } = nearley;\nfunction createParser(tokenizer) {\n let paramTypesOverrides = {};\n const lexer2 = new LexerAdapter((chunk) => [\n ...disambiguateTokens(tokenizer.tokenize(chunk, paramTypesOverrides)),\n createEofToken(chunk.length)\n ]);\n const parser = new NearleyParser(Grammar.fromCompiled(grammar_default), { lexer: lexer2 });\n return {\n parse: (sql2, paramTypes) => {\n paramTypesOverrides = paramTypes;\n const { results } = parser.feed(sql2);\n if (results.length === 1) {\n return results[0];\n } else if (results.length === 0) {\n throw new Error(\"Parse error: Invalid SQL\");\n } else {\n throw new Error(`Parse error: Ambiguous grammar\n${JSON.stringify(results, void 0, 2)}`);\n }\n }\n };\n}\n\n// src/formatter/Layout.ts\nvar Layout = class {\n constructor(indentation) {\n this.indentation = indentation;\n this.items = [];\n }\n /**\n * Appends token strings and whitespace modifications to SQL string.\n */\n add(...items) {\n for (const item of items) {\n switch (item) {\n case 0 /* SPACE */:\n this.items.push(0 /* SPACE */);\n break;\n case 1 /* NO_SPACE */:\n this.trimHorizontalWhitespace();\n break;\n case 2 /* NO_NEWLINE */:\n this.trimWhitespace();\n break;\n case 3 /* NEWLINE */:\n this.trimHorizontalWhitespace();\n this.addNewline(3 /* NEWLINE */);\n break;\n case 4 /* MANDATORY_NEWLINE */:\n this.trimHorizontalWhitespace();\n this.addNewline(4 /* MANDATORY_NEWLINE */);\n break;\n case 5 /* INDENT */:\n this.addIndentation();\n break;\n case 6 /* SINGLE_INDENT */:\n this.items.push(6 /* SINGLE_INDENT */);\n break;\n default:\n this.items.push(item);\n }\n }\n }\n trimHorizontalWhitespace() {\n while (isHorizontalWhitespace(last(this.items))) {\n this.items.pop();\n }\n }\n trimWhitespace() {\n while (isRemovableWhitespace(last(this.items))) {\n this.items.pop();\n }\n }\n addNewline(newline) {\n if (this.items.length > 0) {\n switch (last(this.items)) {\n case 3 /* NEWLINE */:\n this.items.pop();\n this.items.push(newline);\n break;\n case 4 /* MANDATORY_NEWLINE */:\n break;\n default:\n this.items.push(newline);\n break;\n }\n }\n }\n addIndentation() {\n for (let i = 0; i < this.indentation.getLevel(); i++) {\n this.items.push(6 /* SINGLE_INDENT */);\n }\n }\n /**\n * Returns the final SQL string.\n */\n toString() {\n return this.items.map((item) => this.itemToString(item)).join(\"\");\n }\n /**\n * Returns the internal layout data\n */\n getLayoutItems() {\n return this.items;\n }\n itemToString(item) {\n switch (item) {\n case 0 /* SPACE */:\n return \" \";\n case 3 /* NEWLINE */:\n case 4 /* MANDATORY_NEWLINE */:\n return \"\\n\";\n case 6 /* SINGLE_INDENT */:\n return this.indentation.getSingleIndent();\n default:\n return item;\n }\n }\n};\nvar isHorizontalWhitespace = (item) => item === 0 /* SPACE */ || item === 6 /* SINGLE_INDENT */;\nvar isRemovableWhitespace = (item) => item === 0 /* SPACE */ || item === 6 /* SINGLE_INDENT */ || item === 3 /* NEWLINE */;\n\n// src/formatter/tabularStyle.ts\nfunction toTabularFormat(tokenText, indentStyle) {\n if (indentStyle === \"standard\") {\n return tokenText;\n }\n let tail = [];\n if (tokenText.length >= 10 && tokenText.includes(\" \")) {\n [tokenText, ...tail] = tokenText.split(\" \");\n }\n if (indentStyle === \"tabularLeft\") {\n tokenText = tokenText.padEnd(9, \" \");\n } else {\n tokenText = tokenText.padStart(9, \" \");\n }\n return tokenText + [\"\", ...tail].join(\" \");\n}\nfunction isTabularToken(type) {\n return isLogicalOperator(type) || type === \"RESERVED_CLAUSE\" /* RESERVED_CLAUSE */ || type === \"RESERVED_SELECT\" /* RESERVED_SELECT */ || type === \"RESERVED_SET_OPERATION\" /* RESERVED_SET_OPERATION */ || type === \"RESERVED_JOIN\" /* RESERVED_JOIN */ || type === \"LIMIT\" /* LIMIT */;\n}\n\n// src/formatter/Indentation.ts\nvar INDENT_TYPE_TOP_LEVEL = \"top-level\";\nvar INDENT_TYPE_BLOCK_LEVEL = \"block-level\";\nvar Indentation = class {\n /**\n * @param {string} indent A string to indent with\n */\n constructor(indent) {\n this.indent = indent;\n this.indentTypes = [];\n }\n /**\n * Returns indentation string for single indentation step.\n */\n getSingleIndent() {\n return this.indent;\n }\n /**\n * Returns current indentation level\n */\n getLevel() {\n return this.indentTypes.length;\n }\n /**\n * Increases indentation by one top-level indent.\n */\n increaseTopLevel() {\n this.indentTypes.push(INDENT_TYPE_TOP_LEVEL);\n }\n /**\n * Increases indentation by one block-level indent.\n */\n increaseBlockLevel() {\n this.indentTypes.push(INDENT_TYPE_BLOCK_LEVEL);\n }\n /**\n * Decreases indentation by one top-level indent.\n * Does nothing when the previous indent is not top-level.\n */\n decreaseTopLevel() {\n if (this.indentTypes.length > 0 && last(this.indentTypes) === INDENT_TYPE_TOP_LEVEL) {\n this.indentTypes.pop();\n }\n }\n /**\n * Decreases indentation by one block-level indent.\n * If there are top-level indents within the block-level indent,\n * throws away these as well.\n */\n decreaseBlockLevel() {\n while (this.indentTypes.length > 0) {\n const type = this.indentTypes.pop();\n if (type !== INDENT_TYPE_TOP_LEVEL) {\n break;\n }\n }\n }\n};\n\n// src/formatter/InlineLayout.ts\nvar InlineLayout = class extends Layout {\n constructor(expressionWidth) {\n super(new Indentation(\"\"));\n this.expressionWidth = expressionWidth;\n this.length = 0;\n // Keeps track of the trailing whitespace,\n // so that we can decrease length when encountering WS.NO_SPACE,\n // but only when there actually is a space to remove.\n this.trailingSpace = false;\n }\n add(...items) {\n items.forEach((item) => this.addToLength(item));\n if (this.length > this.expressionWidth) {\n throw new InlineLayoutError();\n }\n super.add(...items);\n }\n addToLength(item) {\n if (typeof item === \"string\") {\n this.length += item.length;\n this.trailingSpace = false;\n } else if (item === 4 /* MANDATORY_NEWLINE */ || item === 3 /* NEWLINE */) {\n throw new InlineLayoutError();\n } else if (item === 5 /* INDENT */ || item === 6 /* SINGLE_INDENT */ || item === 0 /* SPACE */) {\n if (!this.trailingSpace) {\n this.length++;\n this.trailingSpace = true;\n }\n } else if (item === 2 /* NO_NEWLINE */ || item === 1 /* NO_SPACE */) {\n if (this.trailingSpace) {\n this.trailingSpace = false;\n this.length--;\n }\n }\n }\n};\nvar InlineLayoutError = class extends Error {\n};\n\n// src/formatter/ExpressionFormatter.ts\nvar ExpressionFormatter = class _ExpressionFormatter {\n constructor({ cfg, dialectCfg, params, layout, inline = false }) {\n this.inline = false;\n this.nodes = [];\n this.index = -1;\n this.cfg = cfg;\n this.dialectCfg = dialectCfg;\n this.inline = inline;\n this.params = params;\n this.layout = layout;\n }\n format(nodes) {\n this.nodes = nodes;\n for (this.index = 0; this.index < this.nodes.length; this.index++) {\n this.formatNode(this.nodes[this.index]);\n }\n return this.layout;\n }\n formatNode(node) {\n this.formatComments(node.leadingComments);\n this.formatNodeWithoutComments(node);\n this.formatComments(node.trailingComments);\n }\n formatNodeWithoutComments(node) {\n switch (node.type) {\n case \"function_call\" /* function_call */:\n return this.formatFunctionCall(node);\n case \"parameterized_data_type\" /* parameterized_data_type */:\n return this.formatParameterizedDataType(node);\n case \"array_subscript\" /* array_subscript */:\n return this.formatArraySubscript(node);\n case \"property_access\" /* property_access */:\n return this.formatPropertyAccess(node);\n case \"parenthesis\" /* parenthesis */:\n return this.formatParenthesis(node);\n case \"between_predicate\" /* between_predicate */:\n return this.formatBetweenPredicate(node);\n case \"case_expression\" /* case_expression */:\n return this.formatCaseExpression(node);\n case \"case_when\" /* case_when */:\n return this.formatCaseWhen(node);\n case \"case_else\" /* case_else */:\n return this.formatCaseElse(node);\n case \"clause\" /* clause */:\n return this.formatClause(node);\n case \"set_operation\" /* set_operation */:\n return this.formatSetOperation(node);\n case \"limit_clause\" /* limit_clause */:\n return this.formatLimitClause(node);\n case \"all_columns_asterisk\" /* all_columns_asterisk */:\n return this.formatAllColumnsAsterisk(node);\n case \"literal\" /* literal */:\n return this.formatLiteral(node);\n case \"identifier\" /* identifier */:\n return this.formatIdentifier(node);\n case \"parameter\" /* parameter */:\n return this.formatParameter(node);\n case \"operator\" /* operator */:\n return this.formatOperator(node);\n case \"comma\" /* comma */:\n return this.formatComma(node);\n case \"line_comment\" /* line_comment */:\n return this.formatLineComment(node);\n case \"block_comment\" /* block_comment */:\n return this.formatBlockComment(node);\n case \"disable_comment\" /* disable_comment */:\n return this.formatBlockComment(node);\n case \"data_type\" /* data_type */:\n return this.formatDataType(node);\n case \"keyword\" /* keyword */:\n return this.formatKeywordNode(node);\n }\n }\n formatFunctionCall(node) {\n this.withComments(node.nameKw, () => {\n this.layout.add(this.showFunctionKw(node.nameKw));\n });\n this.formatNode(node.parenthesis);\n }\n formatParameterizedDataType(node) {\n this.withComments(node.dataType, () => {\n this.layout.add(this.showDataType(node.dataType));\n });\n this.formatNode(node.parenthesis);\n }\n formatArraySubscript(node) {\n let formattedArray;\n switch (node.array.type) {\n case \"data_type\" /* data_type */:\n formattedArray = this.showDataType(node.array);\n break;\n case \"keyword\" /* keyword */:\n formattedArray = this.showKw(node.array);\n break;\n default:\n formattedArray = this.showIdentifier(node.array);\n break;\n }\n this.withComments(node.array, () => {\n this.layout.add(formattedArray);\n });\n this.formatNode(node.parenthesis);\n }\n formatPropertyAccess(node) {\n this.formatNode(node.object);\n this.layout.add(1 /* NO_SPACE */, node.operator);\n this.formatNode(node.property);\n }\n formatParenthesis(node) {\n const inlineLayout = this.formatInlineExpression(node.children);\n if (inlineLayout) {\n this.layout.add(node.openParen);\n this.layout.add(...inlineLayout.getLayoutItems());\n this.layout.add(1 /* NO_SPACE */, node.closeParen, 0 /* SPACE */);\n } else {\n this.layout.add(node.openParen, 3 /* NEWLINE */);\n if (isTabularStyle(this.cfg)) {\n this.layout.add(5 /* INDENT */);\n this.layout = this.formatSubExpression(node.children);\n } else {\n this.layout.indentation.increaseBlockLevel();\n this.layout.add(5 /* INDENT */);\n this.layout = this.formatSubExpression(node.children);\n this.layout.indentation.decreaseBlockLevel();\n }\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, node.closeParen, 0 /* SPACE */);\n }\n }\n formatBetweenPredicate(node) {\n this.layout.add(this.showKw(node.betweenKw), 0 /* SPACE */);\n this.layout = this.formatSubExpression(node.expr1);\n this.layout.add(1 /* NO_SPACE */, 0 /* SPACE */, this.showNonTabularKw(node.andKw), 0 /* SPACE */);\n this.layout = this.formatSubExpression(node.expr2);\n this.layout.add(0 /* SPACE */);\n }\n formatCaseExpression(node) {\n this.formatNode(node.caseKw);\n this.layout.indentation.increaseBlockLevel();\n this.layout = this.formatSubExpression(node.expr);\n this.layout = this.formatSubExpression(node.clauses);\n this.layout.indentation.decreaseBlockLevel();\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */);\n this.formatNode(node.endKw);\n }\n formatCaseWhen(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */);\n this.formatNode(node.whenKw);\n this.layout = this.formatSubExpression(node.condition);\n this.formatNode(node.thenKw);\n this.layout = this.formatSubExpression(node.result);\n }\n formatCaseElse(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */);\n this.formatNode(node.elseKw);\n this.layout = this.formatSubExpression(node.result);\n }\n formatClause(node) {\n if (this.isOnelineClause(node)) {\n this.formatClauseInOnelineStyle(node);\n } else if (isTabularStyle(this.cfg)) {\n this.formatClauseInTabularStyle(node);\n } else {\n this.formatClauseInIndentedStyle(node);\n }\n }\n isOnelineClause(node) {\n if (isTabularStyle(this.cfg)) {\n return this.dialectCfg.tabularOnelineClauses[node.nameKw.text];\n } else {\n return this.dialectCfg.onelineClauses[node.nameKw.text];\n }\n }\n formatClauseInIndentedStyle(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node.nameKw), 3 /* NEWLINE */);\n this.layout.indentation.increaseTopLevel();\n this.layout.add(5 /* INDENT */);\n this.layout = this.formatSubExpression(node.children);\n this.layout.indentation.decreaseTopLevel();\n }\n formatClauseInOnelineStyle(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node.nameKw), 0 /* SPACE */);\n this.layout = this.formatSubExpression(node.children);\n }\n formatClauseInTabularStyle(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node.nameKw), 0 /* SPACE */);\n this.layout.indentation.increaseTopLevel();\n this.layout = this.formatSubExpression(node.children);\n this.layout.indentation.decreaseTopLevel();\n }\n formatSetOperation(node) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node.nameKw), 3 /* NEWLINE */);\n this.layout.add(5 /* INDENT */);\n this.layout = this.formatSubExpression(node.children);\n }\n formatLimitClause(node) {\n this.withComments(node.limitKw, () => {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node.limitKw));\n });\n this.layout.indentation.increaseTopLevel();\n if (isTabularStyle(this.cfg)) {\n this.layout.add(0 /* SPACE */);\n } else {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */);\n }\n if (node.offset) {\n this.layout = this.formatSubExpression(node.offset);\n this.layout.add(1 /* NO_SPACE */, \",\", 0 /* SPACE */);\n this.layout = this.formatSubExpression(node.count);\n } else {\n this.layout = this.formatSubExpression(node.count);\n }\n this.layout.indentation.decreaseTopLevel();\n }\n formatAllColumnsAsterisk(_node) {\n this.layout.add(\"*\", 0 /* SPACE */);\n }\n formatLiteral(node) {\n this.layout.add(node.text, 0 /* SPACE */);\n }\n formatIdentifier(node) {\n this.layout.add(this.showIdentifier(node), 0 /* SPACE */);\n }\n formatParameter(node) {\n this.layout.add(this.params.get(node), 0 /* SPACE */);\n }\n formatOperator({ text }) {\n if (this.cfg.denseOperators || this.dialectCfg.alwaysDenseOperators.includes(text)) {\n this.layout.add(1 /* NO_SPACE */, text);\n } else if (text === \":\") {\n this.layout.add(1 /* NO_SPACE */, text, 0 /* SPACE */);\n } else {\n this.layout.add(text, 0 /* SPACE */);\n }\n }\n formatComma(_node) {\n if (!this.inline) {\n this.layout.add(1 /* NO_SPACE */, \",\", 3 /* NEWLINE */, 5 /* INDENT */);\n } else {\n this.layout.add(1 /* NO_SPACE */, \",\", 0 /* SPACE */);\n }\n }\n withComments(node, fn) {\n this.formatComments(node.leadingComments);\n fn();\n this.formatComments(node.trailingComments);\n }\n formatComments(comments) {\n if (!comments) {\n return;\n }\n comments.forEach((com) => {\n if (com.type === \"line_comment\" /* line_comment */) {\n this.formatLineComment(com);\n } else {\n this.formatBlockComment(com);\n }\n });\n }\n formatLineComment(node) {\n if (isMultiline(node.precedingWhitespace || \"\")) {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, node.text, 4 /* MANDATORY_NEWLINE */, 5 /* INDENT */);\n } else if (this.layout.getLayoutItems().length > 0) {\n this.layout.add(2 /* NO_NEWLINE */, 0 /* SPACE */, node.text, 4 /* MANDATORY_NEWLINE */, 5 /* INDENT */);\n } else {\n this.layout.add(node.text, 4 /* MANDATORY_NEWLINE */, 5 /* INDENT */);\n }\n }\n formatBlockComment(node) {\n if (node.type === \"block_comment\" /* block_comment */ && this.isMultilineBlockComment(node)) {\n this.splitBlockComment(node.text).forEach((line) => {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, line);\n });\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */);\n } else {\n this.layout.add(node.text, 0 /* SPACE */);\n }\n }\n isMultilineBlockComment(node) {\n return isMultiline(node.text) || isMultiline(node.precedingWhitespace || \"\");\n }\n isDocComment(comment) {\n const lines = comment.split(/\\n/);\n return (\n // first line starts with /* or /**\n /^\\/\\*\\*?$/.test(lines[0]) && // intermediate lines start with *\n lines.slice(1, lines.length - 1).every((line) => /^\\s*\\*/.test(line)) && // last line ends with */\n /^\\s*\\*\\/$/.test(last(lines))\n );\n }\n // Breaks up block comment to multiple lines.\n // For example this doc-comment (dots representing leading whitespace):\n //\n // ..../**\n // .....* Some description here\n // .....* and here too\n // .....*/\n //\n // gets broken to this array (note the leading single spaces):\n //\n // [ '/**',\n // '.* Some description here',\n // '.* and here too',\n // '.*/' ]\n //\n // However, a normal comment (non-doc-comment) like this:\n //\n // ..../*\n // ....Some description here\n // ....*/\n //\n // gets broken to this array (no leading spaces):\n //\n // [ '/*',\n // 'Some description here',\n // '*/' ]\n //\n splitBlockComment(comment) {\n if (this.isDocComment(comment)) {\n return comment.split(/\\n/).map((line) => {\n if (/^\\s*\\*/.test(line)) {\n return \" \" + line.replace(/^\\s*/, \"\");\n } else {\n return line;\n }\n });\n } else {\n return comment.split(/\\n/).map((line) => line.replace(/^\\s*/, \"\"));\n }\n }\n formatSubExpression(nodes) {\n return new _ExpressionFormatter({\n cfg: this.cfg,\n dialectCfg: this.dialectCfg,\n params: this.params,\n layout: this.layout,\n inline: this.inline\n }).format(nodes);\n }\n formatInlineExpression(nodes) {\n const oldParamIndex = this.params.getPositionalParameterIndex();\n try {\n return new _ExpressionFormatter({\n cfg: this.cfg,\n dialectCfg: this.dialectCfg,\n params: this.params,\n layout: new InlineLayout(this.cfg.expressionWidth),\n inline: true\n }).format(nodes);\n } catch (e) {\n if (e instanceof InlineLayoutError) {\n this.params.setPositionalParameterIndex(oldParamIndex);\n return void 0;\n } else {\n throw e;\n }\n }\n }\n formatKeywordNode(node) {\n switch (node.tokenType) {\n case \"RESERVED_JOIN\" /* RESERVED_JOIN */:\n return this.formatJoin(node);\n case \"AND\" /* AND */:\n case \"OR\" /* OR */:\n case \"XOR\" /* XOR */:\n return this.formatLogicalOperator(node);\n default:\n return this.formatKeyword(node);\n }\n }\n formatJoin(node) {\n if (isTabularStyle(this.cfg)) {\n this.layout.indentation.decreaseTopLevel();\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node), 0 /* SPACE */);\n this.layout.indentation.increaseTopLevel();\n } else {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node), 0 /* SPACE */);\n }\n }\n formatKeyword(node) {\n this.layout.add(this.showKw(node), 0 /* SPACE */);\n }\n formatLogicalOperator(node) {\n if (this.cfg.logicalOperatorNewline === \"before\") {\n if (isTabularStyle(this.cfg)) {\n this.layout.indentation.decreaseTopLevel();\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node), 0 /* SPACE */);\n this.layout.indentation.increaseTopLevel();\n } else {\n this.layout.add(3 /* NEWLINE */, 5 /* INDENT */, this.showKw(node), 0 /* SPACE */);\n }\n } else {\n this.layout.add(this.showKw(node), 3 /* NEWLINE */, 5 /* INDENT */);\n }\n }\n formatDataType(node) {\n this.layout.add(this.showDataType(node), 0 /* SPACE */);\n }\n showKw(node) {\n if (isTabularToken(node.tokenType)) {\n return toTabularFormat(this.showNonTabularKw(node), this.cfg.indentStyle);\n } else {\n return this.showNonTabularKw(node);\n }\n }\n // Like showKw(), but skips tabular formatting\n showNonTabularKw(node) {\n switch (this.cfg.keywordCase) {\n case \"preserve\":\n return equalizeWhitespace(node.raw);\n case \"upper\":\n return node.text;\n case \"lower\":\n return node.text.toLowerCase();\n }\n }\n showFunctionKw(node) {\n if (isTabularToken(node.tokenType)) {\n return toTabularFormat(this.showNonTabularFunctionKw(node), this.cfg.indentStyle);\n } else {\n return this.showNonTabularFunctionKw(node);\n }\n }\n // Like showFunctionKw(), but skips tabular formatting\n showNonTabularFunctionKw(node) {\n switch (this.cfg.functionCase) {\n case \"preserve\":\n return equalizeWhitespace(node.raw);\n case \"upper\":\n return node.text;\n case \"lower\":\n return node.text.toLowerCase();\n }\n }\n showIdentifier(node) {\n if (node.quoted) {\n return node.text;\n } else {\n switch (this.cfg.identifierCase) {\n case \"preserve\":\n return node.text;\n case \"upper\":\n return node.text.toUpperCase();\n case \"lower\":\n return node.text.toLowerCase();\n }\n }\n }\n showDataType(node) {\n switch (this.cfg.dataTypeCase) {\n case \"preserve\":\n return equalizeWhitespace(node.raw);\n case \"upper\":\n return node.text;\n case \"lower\":\n return node.text.toLowerCase();\n }\n }\n};\n\n// src/formatter/Formatter.ts\nvar Formatter = class {\n constructor(dialect, cfg) {\n this.dialect = dialect;\n this.cfg = cfg;\n this.params = new Params(this.cfg.params);\n }\n /**\n * Formats an SQL query.\n * @param {string} query - The SQL query string to be formatted\n * @return {string} The formatter query\n */\n format(query) {\n const ast = this.parse(query);\n const formattedQuery = this.formatAst(ast);\n return formattedQuery.trimEnd();\n }\n parse(query) {\n return createParser(this.dialect.tokenizer).parse(query, this.cfg.paramTypes || {});\n }\n formatAst(statements) {\n return statements.map((stat) => this.formatStatement(stat)).join(\"\\n\".repeat(this.cfg.linesBetweenQueries + 1));\n }\n formatStatement(statement) {\n const layout = new ExpressionFormatter({\n cfg: this.cfg,\n dialectCfg: this.dialect.formatOptions,\n params: this.params,\n layout: new Layout(new Indentation(indentString(this.cfg)))\n }).format(statement.children);\n if (!statement.hasSemicolon) {\n } else if (this.cfg.newlineBeforeSemicolon) {\n layout.add(3 /* NEWLINE */, \";\");\n } else {\n layout.add(2 /* NO_NEWLINE */, \";\");\n }\n return layout.toString();\n }\n};\n\n// src/validateConfig.ts\nvar ConfigError = class extends Error {\n};\nfunction validateConfig(cfg) {\n const removedOptions = [\n \"multilineLists\",\n \"newlineBeforeOpenParen\",\n \"newlineBeforeCloseParen\",\n \"aliasAs\",\n \"commaPosition\",\n \"tabulateAlias\"\n ];\n for (const optionName of removedOptions) {\n if (optionName in cfg) {\n throw new ConfigError(`${optionName} config is no more supported.`);\n }\n }\n if (cfg.expressionWidth <= 0) {\n throw new ConfigError(\n `expressionWidth config must be positive number. Received ${cfg.expressionWidth} instead.`\n );\n }\n if (cfg.params && !validateParams(cfg.params)) {\n console.warn('WARNING: All \"params\" option values should be strings.');\n }\n return cfg;\n}\nfunction validateParams(params) {\n const paramValues = params instanceof Array ? params : Object.values(params);\n return paramValues.every((p) => typeof p === \"string\");\n}\n\n// src/sqlFormatter.ts\nvar dialectNameMap = {\n bigquery: \"bigquery\",\n db2: \"db2\",\n db2i: \"db2i\",\n hive: \"hive\",\n mariadb: \"mariadb\",\n mysql: \"mysql\",\n n1ql: \"n1ql\",\n plsql: \"plsql\",\n postgresql: \"postgresql\",\n redshift: \"redshift\",\n spark: \"spark\",\n sqlite: \"sqlite\",\n sql: \"sql\",\n tidb: \"tidb\",\n trino: \"trino\",\n transactsql: \"transactsql\",\n tsql: \"transactsql\",\n // alias for transactsq\n singlestoredb: \"singlestoredb\",\n snowflake: \"snowflake\"\n};\nvar supportedDialects = Object.keys(dialectNameMap);\nvar defaultOptions = {\n tabWidth: 2,\n useTabs: false,\n keywordCase: \"preserve\",\n identifierCase: \"preserve\",\n dataTypeCase: \"preserve\",\n functionCase: \"preserve\",\n indentStyle: \"standard\",\n logicalOperatorNewline: \"before\",\n expressionWidth: 50,\n linesBetweenQueries: 1,\n denseOperators: false,\n newlineBeforeSemicolon: false\n};\nvar format = (query, cfg = {}) => {\n if (typeof cfg.language === \"string\" && !supportedDialects.includes(cfg.language)) {\n throw new ConfigError(`Unsupported SQL dialect: ${cfg.language}`);\n }\n const canonicalDialectName = dialectNameMap[cfg.language || \"sql\"];\n return formatDialect(query, __spreadProps(__spreadValues({}, cfg), {\n dialect: allDialects_exports[canonicalDialectName]\n }));\n};\nvar formatDialect = (query, _a) => {\n var _b = _a, { dialect } = _b, cfg = __objRest(_b, [\"dialect\"]);\n if (typeof query !== \"string\") {\n throw new Error(\"Invalid query argument. Expected string, instead got \" + typeof query);\n }\n const options = validateConfig(__spreadValues(__spreadValues({}, defaultOptions), cfg));\n return new Formatter(createDialect(dialect), options).format(query);\n};\nexport {\n ConfigError,\n bigquery,\n db2,\n db2i,\n expandPhrases,\n format,\n formatDialect,\n hive,\n mariadb,\n mysql,\n n1ql,\n plsql,\n postgresql,\n redshift,\n singlestoredb,\n snowflake,\n spark,\n sql,\n sqlite,\n supportedDialects,\n tidb,\n transactsql,\n trino\n};\n//# sourceMappingURL=index.js.map","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditPart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditPart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditPart.vue?vue&type=template&id=7a1d1905&scoped=true&\"\nimport script from \"./EditPart.vue?vue&type=script&lang=js&\"\nexport * from \"./EditPart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditPart.vue?vue&type=style&index=0&id=7a1d1905&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a1d1905\",\n null\n \n)\n\nexport default component.exports","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=be3395e2&scoped=true&\"\nimport script from \"./Console.vue?vue&type=script&lang=js&\"\nexport * from \"./Console.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"be3395e2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SqlResult.vue?vue&type=style&index=0&id=446b2b58&prod&lang=less&scoped=true&\"","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"codemirror\")):\"function\"==typeof define&&define.amd?define([\"codemirror\"],t):\"object\"==typeof exports?exports.VueCodemirror=t(require(\"codemirror\")):e.VueCodemirror=t(e.codemirror)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/\",t(t.s=3)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(r),i=window.CodeMirror||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(e,t){if(null==e)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(e),r=1;r 0) {\n lines.push(' ^ ' + sameDisplayCount + ' more lines identical to this');\n }\n sameDisplayCount = 0;\n lines.push(' ' + display);\n }\n lastDisplay = display;\n }\n };\n\n Parser.prototype.getSymbolDisplay = function(symbol) {\n return getSymbolLongDisplay(symbol);\n };\n\n /*\n Builds a the first state stack. You can think of a state stack as the call stack\n of the recursive-descent parser which the Nearley parse algorithm simulates.\n A state stack is represented as an array of state objects. Within a\n state stack, the first item of the array will be the starting\n state, with each successive item in the array going further back into history.\n\n This function needs to be given a starting state and an empty array representing\n the visited states, and it returns an single state stack.\n\n */\n Parser.prototype.buildFirstStateStack = function(state, visited) {\n if (visited.indexOf(state) !== -1) {\n // Found cycle, return null\n // to eliminate this path from the results, because\n // we don't know how to display it meaningfully\n return null;\n }\n if (state.wantedBy.length === 0) {\n return [state];\n }\n var prevState = state.wantedBy[0];\n var childVisited = [state].concat(visited);\n var childResult = this.buildFirstStateStack(prevState, childVisited);\n if (childResult === null) {\n return null;\n }\n return [state].concat(childResult);\n };\n\n Parser.prototype.save = function() {\n var column = this.table[this.current];\n column.lexerState = this.lexerState;\n return column;\n };\n\n Parser.prototype.restore = function(column) {\n var index = column.index;\n this.current = index;\n this.table[index] = column;\n this.table.splice(index + 1);\n this.lexerState = column.lexerState;\n\n // Incrementally keep track of results\n this.results = this.finish();\n };\n\n // nb. deprecated: use save/restore instead!\n Parser.prototype.rewind = function(index) {\n if (!this.options.keepHistory) {\n throw new Error('set option `keepHistory` to enable rewinding')\n }\n // nb. recall column (table) indicies fall between token indicies.\n // col 0 -- token 0 -- col 1\n this.restore(this.table[index]);\n };\n\n Parser.prototype.finish = function() {\n // Return the possible parsings\n var considerations = [];\n var start = this.grammar.start;\n var column = this.table[this.table.length - 1]\n column.states.forEach(function (t) {\n if (t.rule.name === start\n && t.dot === t.rule.symbols.length\n && t.reference === 0\n && t.data !== Parser.fail) {\n considerations.push(t);\n }\n });\n return considerations.map(function(c) {return c.data; });\n };\n\n function getSymbolLongDisplay(symbol) {\n var type = typeof symbol;\n if (type === \"string\") {\n return symbol;\n } else if (type === \"object\") {\n if (symbol.literal) {\n return JSON.stringify(symbol.literal);\n } else if (symbol instanceof RegExp) {\n return 'character matching ' + symbol;\n } else if (symbol.type) {\n return symbol.type + ' token';\n } else if (symbol.test) {\n return 'token matching ' + String(symbol.test);\n } else {\n throw new Error('Unknown symbol type: ' + symbol);\n }\n }\n }\n\n function getSymbolShortDisplay(symbol) {\n var type = typeof symbol;\n if (type === \"string\") {\n return symbol;\n } else if (type === \"object\") {\n if (symbol.literal) {\n return JSON.stringify(symbol.literal);\n } else if (symbol instanceof RegExp) {\n return symbol.toString();\n } else if (symbol.type) {\n return '%' + symbol.type;\n } else if (symbol.test) {\n return '<' + String(symbol.test) + '>';\n } else {\n throw new Error('Unknown symbol type: ' + symbol);\n }\n }\n }\n\n return {\n Parser: Parser,\n Grammar: Grammar,\n Rule: Rule,\n };\n\n}));\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n var Pos = CodeMirror.Pos\n\n function regexpFlags(regexp) {\n var flags = regexp.flags\n return flags != null ? flags : (regexp.ignoreCase ? \"i\" : \"\")\n + (regexp.global ? \"g\" : \"\")\n + (regexp.multiline ? \"m\" : \"\")\n }\n\n function ensureFlags(regexp, flags) {\n var current = regexpFlags(regexp), target = current\n for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)\n target += flags.charAt(i)\n return current == target ? regexp : new RegExp(regexp.source, target)\n }\n\n function maybeMultiline(regexp) {\n return /\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(regexp.source)\n }\n\n function searchRegexpForward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {\n regexp.lastIndex = ch\n var string = doc.getLine(line), match = regexp.exec(string)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpForwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)\n\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunk = 1\n for (var line = start.line, last = doc.lastLine(); line <= last;) {\n // This grows the search buffer in exponentially-sized chunks\n // between matches, so that nearby matches are fast and don't\n // require concatenating the whole document (in case we're\n // searching for something that has tons of matches), but at the\n // same time, the amount of retries is limited.\n for (var i = 0; i < chunk; i++) {\n if (line > last) break\n var curLine = doc.getLine(line++)\n string = string == null ? curLine : string + \"\\n\" + curLine\n }\n chunk = chunk * 2\n regexp.lastIndex = start.ch\n var match = regexp.exec(string)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n function lastMatchIn(string, regexp, endMargin) {\n var match, from = 0\n while (from <= string.length) {\n regexp.lastIndex = from\n var newMatch = regexp.exec(string)\n if (!newMatch) break\n var end = newMatch.index + newMatch[0].length\n if (end > string.length - endMargin) break\n if (!match || end > match.index + match[0].length)\n match = newMatch\n from = newMatch.index + 1\n }\n return match\n }\n\n function searchRegexpBackward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {\n var string = doc.getLine(line)\n var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpBackwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start)\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunkSize = 1, endMargin = doc.getLine(start.line).length - start.ch\n for (var line = start.line, first = doc.firstLine(); line >= first;) {\n for (var i = 0; i < chunkSize && line >= first; i++) {\n var curLine = doc.getLine(line--)\n string = string == null ? curLine : curLine + \"\\n\" + string\n }\n chunkSize *= 2\n\n var match = lastMatchIn(string, regexp, endMargin)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = line + before.length, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n var doFold, noFold\n if (String.prototype.normalize) {\n doFold = function(str) { return str.normalize(\"NFD\").toLowerCase() }\n noFold = function(str) { return str.normalize(\"NFD\") }\n } else {\n doFold = function(str) { return str.toLowerCase() }\n noFold = function(str) { return str }\n }\n\n // Maps a position in a case-folded line back to a position in the original line\n // (compensating for codepoints increasing in number during folding)\n function adjustPos(orig, folded, pos, foldFunc) {\n if (orig.length == folded.length) return pos\n for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {\n if (min == max) return min\n var mid = (min + max) >> 1\n var len = foldFunc(orig.slice(0, mid)).length\n if (len == pos) return mid\n else if (len > pos) max = mid\n else min = mid + 1\n }\n }\n\n function searchStringForward(doc, query, start, caseFold) {\n // Empty string would match anything and never progress, so we\n // define it to match nothing instead.\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {\n var orig = doc.getLine(line).slice(ch), string = fold(orig)\n if (lines.length == 1) {\n var found = string.indexOf(lines[0])\n if (found == -1) continue search\n var start = adjustPos(orig, string, found, fold) + ch\n return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}\n } else {\n var cutFrom = string.length - lines[0].length\n if (string.slice(cutFrom) != lines[0]) continue search\n for (var i = 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(line + i)) != lines[i]) continue search\n var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]\n if (endString.slice(0, lastLine.length) != lastLine) continue search\n return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),\n to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}\n }\n }\n }\n\n function searchStringBackward(doc, query, start, caseFold) {\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {\n var orig = doc.getLine(line)\n if (ch > -1) orig = orig.slice(0, ch)\n var string = fold(orig)\n if (lines.length == 1) {\n var found = string.lastIndexOf(lines[0])\n if (found == -1) continue search\n return {from: Pos(line, adjustPos(orig, string, found, fold)),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}\n } else {\n var lastLine = lines[lines.length - 1]\n if (string.slice(0, lastLine.length) != lastLine) continue search\n for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(start + i)) != lines[i]) continue search\n var top = doc.getLine(line + 1 - lines.length), topString = fold(top)\n if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search\n return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),\n to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}\n }\n }\n }\n\n function SearchCursor(doc, query, pos, options) {\n this.atOccurrence = false\n this.afterEmptyMatch = false\n this.doc = doc\n pos = pos ? doc.clipPos(pos) : Pos(0, 0)\n this.pos = {from: pos, to: pos}\n\n var caseFold\n if (typeof options == \"object\") {\n caseFold = options.caseFold\n } else { // Backwards compat for when caseFold was the 4th argument\n caseFold = options\n options = null\n }\n\n if (typeof query == \"string\") {\n if (caseFold == null) caseFold = false\n this.matches = function(reverse, pos) {\n return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)\n }\n } else {\n query = ensureFlags(query, \"gm\")\n if (!options || options.multiline !== false)\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)\n }\n else\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)\n }\n }\n }\n\n SearchCursor.prototype = {\n findNext: function() {return this.find(false)},\n findPrevious: function() {return this.find(true)},\n\n find: function(reverse) {\n var head = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);\n if (this.afterEmptyMatch && this.atOccurrence) {\n // do not return the same 0 width match twice\n head = Pos(head.line, head.ch)\n if (reverse) {\n head.ch--;\n if (head.ch < 0) {\n head.line--;\n head.ch = (this.doc.getLine(head.line) || \"\").length;\n }\n } else {\n head.ch++;\n if (head.ch > (this.doc.getLine(head.line) || \"\").length) {\n head.ch = 0;\n head.line++;\n }\n }\n if (CodeMirror.cmpPos(head, this.doc.clipPos(head)) != 0) {\n return this.atOccurrence = false\n }\n }\n var result = this.matches(reverse, head)\n this.afterEmptyMatch = result && CodeMirror.cmpPos(result.from, result.to) == 0\n\n if (result) {\n this.pos = result\n this.atOccurrence = true\n return this.pos.match || true\n } else {\n var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)\n this.pos = {from: end, to: end}\n return this.atOccurrence = false\n }\n },\n\n from: function() {if (this.atOccurrence) return this.pos.from},\n to: function() {if (this.atOccurrence) return this.pos.to},\n\n replace: function(newText, origin) {\n if (!this.atOccurrence) return\n var lines = CodeMirror.splitLines(newText)\n this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)\n this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))\n }\n }\n\n CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this.doc, query, pos, caseFold)\n })\n CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this, query, pos, caseFold)\n })\n\n CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n var ranges = []\n var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold)\n while (cur.findNext()) {\n if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break\n ranges.push({anchor: cur.from(), head: cur.to()})\n }\n if (ranges.length)\n this.setSelections(ranges, 0)\n })\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditPart.vue?vue&type=style&index=0&id=7a1d1905&prod&lang=less&scoped=true&\"","import request from '@/utils/request'\n\nconst sessionApi = {\n sessions: '/api/sessions',\n sessionSqls: '/api/sessions/sqls',\n allSessionSqls: '/api/sessions/sqls/all',\n rerunSessionSqls: '/api/sessions/rerun',\n resetSession: '/api/sessions/reset',\n dbSchema: '/api/yasdbs/users/current',\n}\n\nexport function sessionsApi(params) {\n return request({\n url: sessionApi.sessions,\n method: 'get',\n params: params\n })\n}\n\nexport function sessionSqlsApi(params) {\n return request({\n url: sessionApi.sessionSqls,\n method: 'get',\n params: params\n })\n}\n\nexport function allSessionSqlsApi(params) {\n return request({\n url: sessionApi.allSessionSqls,\n method: 'get',\n params: params\n })\n}\n\nexport function delSessionSqlsApi(params) {\n return request({\n url: sessionApi.sessions,\n method: 'delete',\n data: params\n })\n}\n\nexport function rerunSessionSqlsApi(params) {\n return request({\n url: sessionApi.rerunSessionSqls,\n method: 'post',\n data: params\n })\n}\n\nexport function resetSession(params) {\n return request({\n url: sessionApi.resetSession,\n method: 'post',\n data: params\n })\n}\n\nexport function currentSchema(params) {\n return request({\n url: sessionApi.dbSchema,\n method: 'get'\n })\n}\n\n\nexport function swapSchema(params) {\n return request({\n url: sessionApi.dbSchema,\n method: 'post',\n data: params\n })\n}\n\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n\n CodeMirror.defineOption(\"autoRefresh\", false, function(cm, val) {\n if (cm.state.autoRefresh) {\n stopListening(cm, cm.state.autoRefresh)\n cm.state.autoRefresh = null\n }\n if (val && cm.display.wrapper.offsetHeight == 0)\n startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})\n })\n\n function startListening(cm, state) {\n function check() {\n if (cm.display.wrapper.offsetHeight) {\n stopListening(cm, state)\n if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)\n cm.refresh()\n } else {\n state.timeout = setTimeout(check, state.delay)\n }\n }\n state.timeout = setTimeout(check, state.delay)\n state.hurry = function() {\n clearTimeout(state.timeout)\n state.timeout = setTimeout(check, 50)\n }\n CodeMirror.on(window, \"mouseup\", state.hurry)\n CodeMirror.on(window, \"keyup\", state.hurry)\n }\n\n function stopListening(_cm, state) {\n clearTimeout(state.timeout)\n CodeMirror.off(window, \"mouseup\", state.hurry)\n CodeMirror.off(window, \"keyup\", state.hurry)\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n var client = parserConfig.client || {},\n atoms = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n builtin = parserConfig.builtin || set(defaultBuiltin),\n keywords = parserConfig.keywords || set(sqlKeywords),\n operatorChars = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^\\/]/,\n support = parserConfig.support || {},\n hooks = parserConfig.hooks || {},\n dateSQL = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true},\n backslashStringEscapes = parserConfig.backslashStringEscapes !== false,\n brackets = parserConfig.brackets || /^[\\{}\\(\\)\\[\\]]/,\n punctuation = parserConfig.punctuation || /^[;.,:]/\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n\n // call hooks from the mime type\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n\n if (support.hexNumber &&\n ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n // hex\n // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n return \"number\";\n } else if (support.binaryNumber &&\n (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n // bitstring\n // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n return \"number\";\n } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n // numbers\n // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n stream.match(/^[0-9]*(\\.[0-9]+)?([eE][-+]?[0-9]+)?/);\n support.decimallessFloat && stream.match(/^\\.(?!\\.)/);\n return \"number\";\n } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n // placeholders\n return \"variable-3\";\n } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n // strings\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n state.tokenize = tokenLiteral(ch);\n return state.tokenize(stream, state);\n } else if ((((support.nCharCast && (ch == \"n\" || ch == \"N\"))\n || (support.charsetCast && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n // charset casting: _utf8'str', N'str', n'str'\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n return \"keyword\";\n } else if (support.escapeConstant && (ch == \"e\" || ch == \"E\")\n && (stream.peek() == \"'\" || (stream.peek() == '\"' && support.doubleQuote))) {\n // escape constant: E'str', e'str'\n // ref: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE\n state.tokenize = function(stream, state) {\n return (state.tokenize = tokenLiteral(stream.next(), true))(stream, state);\n }\n return \"keyword\";\n } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n // 1-line comment\n stream.skipToEnd();\n return \"comment\";\n } else if ((support.commentHash && ch == \"#\")\n || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n // 1-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n // multi-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n state.tokenize = tokenComment(1);\n return state.tokenize(stream, state);\n } else if (ch == \".\") {\n // .1 for 0.1\n if (support.zerolessFloat && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i))\n return \"number\";\n if (stream.match(/^\\.+/))\n return null\n // .table_name (ODBC)\n // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n if (support.ODBCdotTable && stream.match(/^[\\w\\d_$#]+/))\n return \"variable-2\";\n } else if (operatorChars.test(ch)) {\n // operators\n stream.eatWhile(operatorChars);\n return \"operator\";\n } else if (brackets.test(ch)) {\n // brackets\n return \"bracket\";\n } else if (punctuation.test(ch)) {\n // punctuation\n stream.eatWhile(punctuation);\n return \"punctuation\";\n } else if (ch == '{' &&\n (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n // dates (weird ODBC syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n return \"number\";\n } else {\n stream.eatWhile(/^[_\\w\\d]/);\n var word = stream.current().toLowerCase();\n // dates (standard SQL syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n return \"number\";\n if (atoms.hasOwnProperty(word)) return \"atom\";\n if (builtin.hasOwnProperty(word)) return \"type\";\n if (keywords.hasOwnProperty(word)) return \"keyword\";\n if (client.hasOwnProperty(word)) return \"builtin\";\n return null;\n }\n }\n\n // 'string', with char specified in quote escaped by '\\'\n function tokenLiteral(quote, backslashEscapes) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = (backslashStringEscapes || backslashEscapes) && !escaped && ch == \"\\\\\";\n }\n return \"string\";\n };\n }\n function tokenComment(depth) {\n return function(stream, state) {\n var m = stream.match(/^.*?(\\/\\*|\\*\\/)/)\n if (!m) stream.skipToEnd()\n else if (m[1] == \"/*\") state.tokenize = tokenComment(depth + 1)\n else if (depth > 1) state.tokenize = tokenComment(depth - 1)\n else state.tokenize = tokenBase\n return \"comment\"\n }\n }\n\n function pushContext(stream, state, type) {\n state.context = {\n prev: state.context,\n indent: stream.indentation(),\n col: stream.column(),\n type: type\n };\n }\n\n function popContext(state) {\n state.indent = state.context.indent;\n state.context = state.context.prev;\n }\n\n return {\n startState: function() {\n return {tokenize: tokenBase, context: null};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (state.context && state.context.align == null)\n state.context.align = false;\n }\n if (state.tokenize == tokenBase && stream.eatSpace()) return null;\n\n var style = state.tokenize(stream, state);\n if (style == \"comment\") return style;\n\n if (state.context && state.context.align == null)\n state.context.align = true;\n\n var tok = stream.current();\n if (tok == \"(\")\n pushContext(stream, state, \")\");\n else if (tok == \"[\")\n pushContext(stream, state, \"]\");\n else if (state.context && state.context.type == tok)\n popContext(state);\n return style;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context;\n if (!cx) return CodeMirror.Pass;\n var closing = textAfter.charAt(0) == cx.type;\n if (cx.align) return cx.col + (closing ? 0 : 1);\n else return cx.indent + (closing ? 0 : config.indentUnit);\n },\n\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : \"--\",\n closeBrackets: \"()[]{}''\\\"\\\"``\"\n };\n});\n\n // `identifier`\n function hookIdentifier(stream) {\n // MySQL/MariaDB identifiers\n // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // \"identifier\"\n function hookIdentifierDoublequote(stream) {\n // Standard SQL /SQLite identifiers\n // ref: http://web.archive.org/web/20160813185132/http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier\n // ref: http://sqlite.org/lang_keywords.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"\\\"\" && !stream.eat(\"\\\"\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // variable token\n function hookVar(stream) {\n // variables\n // @@prefix.varName @varName\n // varName can be quoted with ` or ' or \"\n // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n if (stream.eat(\"@\")) {\n stream.match('session.');\n stream.match('local.');\n stream.match('global.');\n }\n\n if (stream.eat(\"'\")) {\n stream.match(/^.*'/);\n return \"variable-2\";\n } else if (stream.eat('\"')) {\n stream.match(/^.*\"/);\n return \"variable-2\";\n } else if (stream.eat(\"`\")) {\n stream.match(/^.*`/);\n return \"variable-2\";\n } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n return \"variable-2\";\n }\n return null;\n };\n\n // short client keyword token\n function hookClient(stream) {\n // \\N means NULL\n // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n if (stream.eat(\"N\")) {\n return \"atom\";\n }\n // \\g, etc\n // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n }\n\n // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit \";\n\n // turn a space-separated list into an array\n function set(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n\n var defaultBuiltin = \"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"\n\n // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n CodeMirror.defineMIME(\"text/x-sql\", {\n name: \"sql\",\n keywords: set(sqlKeywords + \"begin\"),\n builtin: set(defaultBuiltin),\n atoms: set(\"false true null unknown\"),\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-mssql\", {\n name: \"sql\",\n client: set(\"$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id\"),\n keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with\"),\n builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n atoms: set(\"is not null like and or in left right between inner outer join all any some cross unpivot pivot exists\"),\n operatorChars: /^[*+\\-%<>!=^\\&|\\/]/,\n brackets: /^[\\{}\\(\\)]/,\n punctuation: /^[;.,:/]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n hooks: {\n \"@\": hookVar\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mysql\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mariadb\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n // provided by the phpLiteAdmin project - phpliteadmin.org\n CodeMirror.defineMIME(\"text/x-sqlite\", {\n name: \"sql\",\n // commands of the official SQLite client, ref: https://www.sqlite.org/cli.html#dotcmd\n client: set(\"auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width\"),\n // ref: http://sqlite.org/lang_keywords.html\n keywords: set(sqlKeywords + \"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without\"),\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real\"),\n // ref: http://sqlite.org/syntax/literal-value.html\n atoms: set(\"null current_date current_time current_timestamp\"),\n // ref: http://sqlite.org/lang_expr.html#binaryops\n operatorChars: /^[*+\\-%<>!=&|/~]/,\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n dateSQL: set(\"date time timestamp datetime\"),\n support: set(\"decimallessFloat zerolessFloat\"),\n identifierQuote: \"\\\"\", //ref: http://sqlite.org/lang_keywords.html\n hooks: {\n // bind-parameters ref:http://sqlite.org/lang_expr.html#varparam\n \"@\": hookVar,\n \":\": hookVar,\n \"?\": hookVar,\n \"$\": hookVar,\n // The preferred way to escape Identifiers is using double quotes, ref: http://sqlite.org/lang_keywords.html\n \"\\\"\": hookIdentifierDoublequote,\n // there is also support for backticks, ref: http://sqlite.org/lang_keywords.html\n \"`\": hookIdentifier\n }\n });\n\n // the query language used by Apache Cassandra is called CQL, but this mime type\n // is called Cassandra to avoid confusion with Contextual Query Language\n CodeMirror.defineMIME(\"text/x-cassandra\", {\n name: \"sql\",\n client: { },\n keywords: set(\"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime\"),\n builtin: set(\"ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint\"),\n atoms: set(\"false true infinity NaN\"),\n operatorChars: /^[<>=]/,\n dateSQL: { },\n support: set(\"commentSlashSlash decimallessFloat\"),\n hooks: { }\n });\n\n // this is based on Peter Raganitsch's 'plsql' mode\n CodeMirror.defineMIME(\"text/x-plsql\", {\n name: \"sql\",\n client: set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n keywords: set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n builtin: set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n operatorChars: /^[*\\/+\\-%<>!=~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n });\n\n // Created to support specific hive keywords\n CodeMirror.defineMIME(\"text/x-hive\", {\n name: \"sql\",\n keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year\"),\n builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=]/,\n dateSQL: set(\"date timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-pgsql\", {\n name: \"sql\",\n client: set(\"source\"),\n // For PostgreSQL - https://www.postgresql.org/docs/11/sql-keywords-appendix.html\n // For pl/pgsql lang - https://github.com/postgres/postgres/blob/REL_11_2/src/pl/plpgsql/src/pl_scanner.c\n keywords: set(sqlKeywords + \"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone\"),\n // https://www.postgresql.org/docs/11/datatype.html\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*\\/+\\-%<>!=&|^\\/#@?~]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant\")\n });\n\n // Google's SQL-like query language, GQL\n CodeMirror.defineMIME(\"text/x-gql\", {\n name: \"sql\",\n keywords: set(\"ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where\"),\n atoms: set(\"false true\"),\n builtin: set(\"blob datetime first key __key__ string integer double boolean null\"),\n operatorChars: /^[*+\\-%<>!=]/\n });\n\n // Greenplum\n CodeMirror.defineMIME(\"text/x-gpsql\", {\n name: \"sql\",\n client: set(\"source\"),\n //https://github.com/greenplum-db/gpdb/blob/master/src/include/parser/kwlist.h\n keywords: set(\"abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone\"),\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast\")\n });\n\n // Spark SQL\n CodeMirror.defineMIME(\"text/x-sparksql\", {\n name: \"sql\",\n keywords: set(\"add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with\"),\n builtin: set(\"abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with\"),\n atoms: set(\"false true null\"),\n operatorChars: /^[*\\/+\\-%<>!=~&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote zerolessFloat\")\n });\n\n // Esper\n CodeMirror.defineMIME(\"text/x-esper\", {\n name: \"sql\",\n client: set(\"source\"),\n // http://www.espertech.com/esper/release-5.5.0/esper-reference/html/appendix_keywords.html\n keywords: set(\"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window\"),\n builtin: {},\n atoms: set(\"false true null\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"time\"),\n support: set(\"decimallessFloat zerolessFloat binaryNumber hexNumber\")\n });\n});\n\n/*\n How Properties of Mime Types are used by SQL Mode\n =================================================\n\n keywords:\n A list of keywords you want to be highlighted.\n builtin:\n A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n operatorChars:\n All characters that must be handled as operators.\n client:\n Commands parsed and executed by the client (not the server).\n support:\n A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n * ODBCdotTable: .tableName\n * zerolessFloat: .1\n * doubleQuote\n * nCharCast: N'string'\n * charsetCast: _utf8'string'\n * commentHash: use # char for comments\n * commentSlashSlash: use // for comments\n * commentSpaceRequired: require a space after -- for comments\n atoms:\n Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n UNKNOWN, INFINITY, UNDERFLOW, NaN...\n dateSQL:\n Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n"],"sourceRoot":""}