:{match:`(?x)\\\\ ( \\\\ | [abefnprtv'"?] | [0-3][0-7]{,2} | [4-7]\\d? | x[a-fA-F0-9]{,2} | u[a-fA-F0-9]{,4} | U[a-fA-F0-9]{,8} )`,name:"constant.character.escape"},block:{begin:"{",end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.cuda-cpp"}},name:"meta.block.cuda-cpp",patterns:[{include:"#function_body_context"}]},block_comment:{begin:"\\s*+(\\/\\*)",end:"\\*\\/",beginCaptures:{1:{name:"punctuation.definition.comment.begin.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.comment.end.cuda-cpp"}},name:"comment.block.cuda-cpp"},builtin_storage_type_initilizer:{begin:"(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.class.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.class.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.class.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cuda-cpp"}},name:"meta.head.class.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cuda-cpp"}},name:"meta.body.class.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cuda-cpp",patterns:[{include:"$self"}]}]},class_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.class.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},comma:{match:",",name:"punctuation.separator.delimiter.comma.cuda-cpp"},comma_in_template_argument:{match:",",name:"punctuation.separator.delimiter.comma.template.argument.cuda-cpp"},comments:{patterns:[{begin:"^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",end:"(?<=\\n)(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.italic.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.bold.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.inline.raw.string.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cuda-cpp"}]},3:{name:"variable.parameter.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cuda-cpp"}]},{match:"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",captures:{1:{name:"punctuation.definition.comment.begin.documentation.cuda-cpp"},2:{patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.italic.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.bold.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.inline.raw.string.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cuda-cpp"}]},3:{name:"variable.parameter.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cuda-cpp"}]},3:{name:"punctuation.definition.comment.end.documentation.cuda-cpp"}},name:"comment.block.documentation.cuda-cpp"},{begin:"(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",end:"[!*]*\\*\\/",beginCaptures:{0:{name:"punctuation.definition.comment.begin.documentation.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.comment.end.documentation.cuda-cpp"}},name:"comment.block.documentation.cuda-cpp",patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.italic.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.bold.doxygen.cuda-cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{name:"markup.inline.raw.string.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{1:{name:"storage.type.class.doxygen.cuda-cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cuda-cpp"}]},3:{name:"variable.parameter.cuda-cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cuda-cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cuda-cpp"}]},{include:"#emacs_file_banner"},{include:"#block_comment"},{include:"#line_comment"},{include:"#invalid_comment_end"}]},constructor_inline:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:__forceinline__)|(?:__noinline__)|(?:__global__)|(?:__device__)|(?:constexpr)|(?:explicit)|(?:__host__)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.constructor.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#functional_specifiers_pre_parameters"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"storage.type.modifier.calling-convention.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},17:{name:"comment.block.cuda-cpp"},18:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},19:{name:"entity.name.function.constructor.cuda-cpp entity.name.function.definition.special.constructor.cuda-cpp"}},endCaptures:{},name:"meta.function.definition.special.constructor.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cuda-cpp"}},name:"meta.head.function.definition.special.constructor.cuda-cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{1:{name:"keyword.operator.assignment.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"keyword.other.default.constructor.cuda-cpp"},7:{name:"keyword.other.delete.constructor.cuda-cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{0:{name:"punctuation.separator.initializers.cuda-cpp"}},endCaptures:{},patterns:[{begin:`((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()`,end:"\\)",beginCaptures:{1:{name:"entity.name.function.call.initializer.cuda-cpp"},2:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"}},name:"meta.body.function.definition.special.constructor.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cuda-cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:`\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())`,end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.constructor.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"storage.type.modifier.calling-convention.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.constructor.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{1:{name:"keyword.operator.assignment.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"keyword.other.default.constructor.cuda-cpp"},7:{name:"keyword.other.delete.constructor.cuda-cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{0:{name:"punctuation.separator.initializers.cuda-cpp"}},endCaptures:{},patterns:[{begin:`((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()`,end:"\\)",beginCaptures:{1:{name:"entity.name.function.call.initializer.cuda-cpp"},2:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"}},name:"meta.body.function.definition.special.constructor.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cuda-cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.control.$3.cuda-cpp"}}},cpp_attributes:{begin:"\\[\\[",end:"\\]\\]",beginCaptures:{0:{name:"punctuation.section.attribute.begin.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.attribute.end.cuda-cpp"}},name:"support.other.attribute.cuda-cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)`,end:"\\}",beginCaptures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((import))(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\")[^\\"]*((?:\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))(?:(?:\\s)+)?(;?)',captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.control.directive.import.cuda-cpp"},5:{name:"string.quoted.other.lt-gt.include.cuda-cpp"},6:{name:"punctuation.definition.string.begin.cuda-cpp"},7:{name:"punctuation.definition.string.end.cuda-cpp"},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{name:"string.quoted.double.include.cuda-cpp"},11:{name:"punctuation.definition.string.begin.cuda-cpp"},12:{name:"punctuation.definition.string.end.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},15:{name:"entity.name.other.preprocessor.macro.include.cuda-cpp"},16:{patterns:[{include:"#inline_comment"}]},17:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},18:{patterns:[{include:"#inline_comment"}]},19:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},20:{patterns:[{include:"#inline_comment"}]},21:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},22:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.preprocessor.import.cuda-cpp"},d9bc4796b0b_preprocessor_number_literal:{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.other.decltype.cuda-cpp storage.type.decltype.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.decltype.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.decltype.cuda-cpp"}},contentName:"meta.arguments.decltype",patterns:[{include:"#evaluation_context"}]},decltype_specifier:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.other.decltype.cuda-cpp storage.type.decltype.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.decltype.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.decltype.cuda-cpp"}},contentName:"meta.arguments.decltype",patterns:[{include:"#evaluation_context"}]},default_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:__forceinline__)|(?:__noinline__)|(?:__global__)|(?:__device__)|(?:constexpr)|(?:explicit)|(?:__host__)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.member.destructor.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},9:{name:"storage.type.modifier.calling-convention.cuda-cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{patterns:[{include:"#functional_specifiers_pre_parameters"}]},15:{patterns:[{include:"#inline_comment"}]},16:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},17:{name:"comment.block.cuda-cpp"},18:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},19:{name:"entity.name.function.destructor.cuda-cpp entity.name.function.definition.special.member.destructor.cuda-cpp"}},endCaptures:{},name:"meta.function.definition.special.member.destructor.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cuda-cpp"}},name:"meta.head.function.definition.special.member.destructor.cuda-cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{1:{name:"keyword.operator.assignment.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"keyword.other.default.constructor.cuda-cpp"},7:{name:"keyword.other.delete.constructor.cuda-cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cuda-cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{match:"((?:(?:final)|(?:override)))+",captures:{1:{name:"keyword.operator.wordlike.cuda-cpp keyword.operator.$1.cuda-cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cuda-cpp"}},name:"meta.body.function.definition.special.member.destructor.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cuda-cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:`((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())`,end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.member.destructor.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"storage.type.modifier.calling-convention.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.destructor.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{1:{name:"keyword.operator.assignment.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"keyword.other.default.constructor.cuda-cpp"},7:{name:"keyword.other.delete.constructor.cuda-cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cuda-cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{match:"((?:(?:final)|(?:override)))+",captures:{1:{name:"keyword.operator.wordlike.cuda-cpp keyword.operator.$1.cuda-cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cuda-cpp"}},name:"meta.body.function.definition.special.member.destructor.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cuda-cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",end:"(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.enum.cuda-cpp"},1:{name:"storage.type.enum.cuda-cpp"},2:{name:"storage.type.enum.enum-key.$2.cuda-cpp"},3:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},4:{name:"entity.name.type.enum.cuda-cpp"},5:{name:"punctuation.separator.colon.type-specifier.cuda-cpp"},6:{patterns:[{include:"#scope_resolution_inner_generated"}]},7:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},8:{patterns:[{include:"#template_call_range"}]},9:{},10:{name:"entity.name.scope-resolution.cuda-cpp"},11:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},12:{},13:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},14:{name:"storage.type.integral.$14.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.enum.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.enum.cuda-cpp"}},name:"meta.head.enum.cuda-cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.enum.cuda-cpp"}},name:"meta.body.enum.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.enum.cuda-cpp",patterns:[{include:"$self"}]}]},enum_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.enum.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},enumerator_list:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.control.exception.$3.cuda-cpp"}}},extern_block:{begin:'((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\")',end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.extern.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"storage.type.extern.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.extern.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.extern.cuda-cpp"}},name:"meta.head.extern.cuda-cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.extern.cuda-cpp"}},name:"meta.body.extern.cuda-cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.extern.cuda-cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()`,end:"\\)",beginCaptures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.function.call.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},11:{},12:{name:"punctuation.section.arguments.begin.bracket.round.function.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:`(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()`,end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"storage.type.template.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.modifier.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"storage.modifier.$12.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},15:{name:"comment.block.cuda-cpp"},16:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},17:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},18:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},19:{patterns:[{include:"#inline_comment"}]},20:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},21:{name:"comment.block.cuda-cpp"},22:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},23:{patterns:[{include:"#inline_comment"}]},24:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},25:{name:"comment.block.cuda-cpp"},26:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},27:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},36:{patterns:[{include:"#inline_comment"}]},37:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},38:{name:"comment.block.cuda-cpp"},39:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},40:{patterns:[{include:"#inline_comment"}]},41:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},42:{name:"comment.block.cuda-cpp"},43:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},44:{patterns:[{include:"#inline_comment"}]},45:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},46:{name:"comment.block.cuda-cpp"},47:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},48:{patterns:[{include:"#inline_comment"}]},49:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},50:{name:"comment.block.cuda-cpp"},51:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},52:{name:"storage.type.modifier.calling-convention.cuda-cpp"},53:{patterns:[{include:"#inline_comment"}]},54:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},55:{name:"comment.block.cuda-cpp"},56:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},57:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},58:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"},59:{patterns:[{include:"#template_call_range"}]},60:{},61:{name:"entity.name.function.definition.cuda-cpp"},62:{patterns:[{include:"#inline_comment"}]},63:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},64:{name:"comment.block.cuda-cpp"},65:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{},name:"meta.function.definition.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.cuda-cpp"}},name:"meta.head.function.definition.cuda-cpp",patterns:[{include:"#ever_present_context"},{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.cuda-cpp"}},contentName:"meta.function.definition.parameters",patterns:[{include:"#ever_present_context"},{include:"#parameter_or_maybe_value"},{include:"#comma"},{include:"#evaluation_context"}]},{match:`(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))`,captures:{1:{name:"punctuation.definition.function.return-type.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},10:{name:"comment.block.cuda-cpp"},11:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.cuda-cpp"}},name:"meta.body.function.definition.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.cuda-cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()`,end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"},33:{name:"punctuation.definition.function.pointer.dereference.cuda-cpp"},34:{name:"variable.other.definition.pointer.function.cuda-cpp"},35:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},36:{patterns:[{include:"#evaluation_context"}]},37:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},38:{name:"punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"},39:{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"}},endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},patterns:[{include:"#function_parameter_context"}]},function_pointer_parameter:{begin:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()`,end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"},33:{name:"punctuation.definition.function.pointer.dereference.cuda-cpp"},34:{name:"variable.parameter.pointer.function.cuda-cpp"},35:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},36:{patterns:[{include:"#evaluation_context"}]},37:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},38:{name:"punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"},39:{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"}},endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},patterns:[{include:"#function_parameter_context"}]},functional_specifiers_pre_parameters:{match:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)",captures:{1:{name:"keyword.control.goto.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.label.call.cuda-cpp"}}},identifier:{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*"},include:{match:'^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((#)(?:(?:\\s)+)?((?:include|include_next))\\b)(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\")[^\\"]*((?:\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))',captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.control.directive.$5.cuda-cpp"},4:{name:"punctuation.definition.directive.cuda-cpp"},6:{name:"string.quoted.other.lt-gt.include.cuda-cpp"},7:{name:"punctuation.definition.string.begin.cuda-cpp"},8:{name:"punctuation.definition.string.end.cuda-cpp"},9:{patterns:[{include:"#inline_comment"}]},10:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},11:{name:"string.quoted.double.include.cuda-cpp"},12:{name:"punctuation.definition.string.begin.cuda-cpp"},13:{name:"punctuation.definition.string.end.cuda-cpp"},14:{patterns:[{include:"#inline_comment"}]},15:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},16:{name:"entity.name.other.preprocessor.macro.include.cuda-cpp"},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},21:{patterns:[{include:"#inline_comment"}]},22:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}},name:"meta.preprocessor.include.cuda-cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cuda-cpp"},{match:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))`,captures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{}}}]},inline_builtin_storage_type:{match:"(?:\\s)*+(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"entity.name.label.cuda-cpp"},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{name:"punctuation.separator.label.cuda-cpp"}}},lambdas:{begin:'(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))',end:"(?<=[;}])",beginCaptures:{1:{name:"punctuation.definition.capture.begin.lambda.cuda-cpp"},2:{name:"meta.lambda.capture.cuda-cpp",patterns:[{include:"#the_this_keyword"},{match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",captures:{1:{name:"variable.parameter.capture.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.separator.delimiter.comma.cuda-cpp"},7:{name:"keyword.operator.assignment.cuda-cpp"}}},{include:"#evaluation_context"}]},3:{},4:{name:"punctuation.definition.capture.end.lambda.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{},patterns:[{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.lambda.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.parameters.end.lambda.cuda-cpp"}},name:"meta.function.definition.parameters.lambda.cuda-cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?)((?:.+?(?=\\{|$))?)",captures:{1:{name:"punctuation.definition.lambda.return-type.cuda-cpp"},2:{name:"storage.type.return-type.lambda.cuda-cpp"}}},{begin:"\\{",end:"\\}",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.lambda.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.lambda.cuda-cpp"}},name:"meta.function.definition.body.lambda.cuda-cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",end:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(\\b(?!uint_least16_t[^Pattern.new( match: \\/\\w\\/, )]|uint_least32_t[^Pattern.new( match: \\/\\w\\/, )]|uint_least64_t[^Pattern.new( match: \\/\\w\\/, )]|int_least16_t[^Pattern.new( match: \\/\\w\\/, )]|int_least32_t[^Pattern.new( match: \\/\\w\\/, )]|int_least64_t[^Pattern.new( match: \\/\\w\\/, )]|uint_least8_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast16_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast32_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast64_t[^Pattern.new( match: \\/\\w\\/, )]|int_least8_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast16_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast32_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast64_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast8_t[^Pattern.new( match: \\/\\w\\/, )]|suseconds_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast8_t[^Pattern.new( match: \\/\\w\\/, )]|useconds_t[^Pattern.new( match: \\/\\w\\/, )]|ulonglong1[^Pattern.new( match: \\/\\w\\/, )]|ulonglong2[^Pattern.new( match: \\/\\w\\/, )]|ulonglong3[^Pattern.new( match: \\/\\w\\/, )]|ulonglong4[^Pattern.new( match: \\/\\w\\/, )]|blksize_t[^Pattern.new( match: \\/\\w\\/, )]|in_addr_t[^Pattern.new( match: \\/\\w\\/, )]|in_port_t[^Pattern.new( match: \\/\\w\\/, )]|uintptr_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|longlong1[^Pattern.new( match: \\/\\w\\/, )]|longlong2[^Pattern.new( match: \\/\\w\\/, )]|longlong3[^Pattern.new( match: \\/\\w\\/, )]|longlong4[^Pattern.new( match: \\/\\w\\/, )]|unsigned[^Pattern.new( match: \\/\\w\\/, )]|u_quad_t[^Pattern.new( match: \\/\\w\\/, )]|blkcnt_t[^Pattern.new( match: \\/\\w\\/, )]|uint16_t[^Pattern.new( match: \\/\\w\\/, )]|uint32_t[^Pattern.new( match: \\/\\w\\/, )]|uint64_t[^Pattern.new( match: \\/\\w\\/, )]|intptr_t[^Pattern.new( match: \\/\\w\\/, )]|intmax_t[^Pattern.new( match: \\/\\w\\/, )]|intmax_t[^Pattern.new( match: \\/\\w\\/, )]|wchar_t[^Pattern.new( match: \\/\\w\\/, )]|u_short[^Pattern.new( match: \\/\\w\\/, )]|qaddr_t[^Pattern.new( match: \\/\\w\\/, )]|caddr_t[^Pattern.new( match: \\/\\w\\/, )]|daddr_t[^Pattern.new( match: \\/\\w\\/, )]|fixpt_t[^Pattern.new( match: \\/\\w\\/, )]|nlink_t[^Pattern.new( match: \\/\\w\\/, )]|segsz_t[^Pattern.new( match: \\/\\w\\/, )]|swblk_t[^Pattern.new( match: \\/\\w\\/, )]|clock_t[^Pattern.new( match: \\/\\w\\/, )]|ssize_t[^Pattern.new( match: \\/\\w\\/, )]|int16_t[^Pattern.new( match: \\/\\w\\/, )]|int32_t[^Pattern.new( match: \\/\\w\\/, )]|int64_t[^Pattern.new( match: \\/\\w\\/, )]|uint8_t[^Pattern.new( match: \\/\\w\\/, )]|ushort1[^Pattern.new( match: \\/\\w\\/, )]|ushort2[^Pattern.new( match: \\/\\w\\/, )]|ushort3[^Pattern.new( match: \\/\\w\\/, )]|ushort4[^Pattern.new( match: \\/\\w\\/, )]|double1[^Pattern.new( match: \\/\\w\\/, )]|double2[^Pattern.new( match: \\/\\w\\/, )]|double3[^Pattern.new( match: \\/\\w\\/, )]|double4[^Pattern.new( match: \\/\\w\\/, )]|signed[^Pattern.new( match: \\/\\w\\/, )]|double[^Pattern.new( match: \\/\\w\\/, )]|u_char[^Pattern.new( match: \\/\\w\\/, )]|u_long[^Pattern.new( match: \\/\\w\\/, )]|ushort[^Pattern.new( match: \\/\\w\\/, )]|quad_t[^Pattern.new( match: \\/\\w\\/, )]|mode_t[^Pattern.new( match: \\/\\w\\/, )]|size_t[^Pattern.new( match: \\/\\w\\/, )]|time_t[^Pattern.new( match: \\/\\w\\/, )]|int8_t[^Pattern.new( match: \\/\\w\\/, )]|uchar1[^Pattern.new( match: \\/\\w\\/, )]|uchar2[^Pattern.new( match: \\/\\w\\/, )]|uchar3[^Pattern.new( match: \\/\\w\\/, )]|uchar4[^Pattern.new( match: \\/\\w\\/, )]|short1[^Pattern.new( match: \\/\\w\\/, )]|short2[^Pattern.new( match: \\/\\w\\/, )]|short3[^Pattern.new( match: \\/\\w\\/, )]|short4[^Pattern.new( match: \\/\\w\\/, )]|ulong4[^Pattern.new( match: \\/\\w\\/, )]|ulong1[^Pattern.new( match: \\/\\w\\/, )]|ulong2[^Pattern.new( match: \\/\\w\\/, )]|ulong3[^Pattern.new( match: \\/\\w\\/, )]|ulong4[^Pattern.new( match: \\/\\w\\/, )]|float1[^Pattern.new( match: \\/\\w\\/, )]|float2[^Pattern.new( match: \\/\\w\\/, )]|float3[^Pattern.new( match: \\/\\w\\/, )]|float4[^Pattern.new( match: \\/\\w\\/, )]|short[^Pattern.new( match: \\/\\w\\/, )]|float[^Pattern.new( match: \\/\\w\\/, )]|u_int[^Pattern.new( match: \\/\\w\\/, )]|div_t[^Pattern.new( match: \\/\\w\\/, )]|dev_t[^Pattern.new( match: \\/\\w\\/, )]|gid_t[^Pattern.new( match: \\/\\w\\/, )]|ino_t[^Pattern.new( match: \\/\\w\\/, )]|key_t[^Pattern.new( match: \\/\\w\\/, )]|pid_t[^Pattern.new( match: \\/\\w\\/, )]|off_t[^Pattern.new( match: \\/\\w\\/, )]|uid_t[^Pattern.new( match: \\/\\w\\/, )]|char1[^Pattern.new( match: \\/\\w\\/, )]|char2[^Pattern.new( match: \\/\\w\\/, )]|char3[^Pattern.new( match: \\/\\w\\/, )]|char4[^Pattern.new( match: \\/\\w\\/, )]|uint1[^Pattern.new( match: \\/\\w\\/, )]|uint2[^Pattern.new( match: \\/\\w\\/, )]|uint3[^Pattern.new( match: \\/\\w\\/, )]|uint4[^Pattern.new( match: \\/\\w\\/, )]|long1[^Pattern.new( match: \\/\\w\\/, )]|long2[^Pattern.new( match: \\/\\w\\/, )]|long3[^Pattern.new( match: \\/\\w\\/, )]|auto[^Pattern.new( match: \\/\\w\\/, )]|void[^Pattern.new( match: \\/\\w\\/, )]|char[^Pattern.new( match: \\/\\w\\/, )]|long[^Pattern.new( match: \\/\\w\\/, )]|bool[^Pattern.new( match: \\/\\w\\/, )]|uint[^Pattern.new( match: \\/\\w\\/, )]|id_t[^Pattern.new( match: \\/\\w\\/, )]|id_t[^Pattern.new( match: \\/\\w\\/, )]|int1[^Pattern.new( match: \\/\\w\\/, )]|int2[^Pattern.new( match: \\/\\w\\/, )]|int3[^Pattern.new( match: \\/\\w\\/, )]|int4[^Pattern.new( match: \\/\\w\\/, )]|dim3[^Pattern.new( match: \\/\\w\\/, )]|int[^Pattern.new( match: \\/\\w\\/, )])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())`,captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"variable.language.this.cuda-cpp"},4:{name:"variable.other.object.access.cuda-cpp"},5:{name:"punctuation.separator.dot-access.cuda-cpp"},6:{name:"punctuation.separator.pointer-access.cuda-cpp"},7:{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.property.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{include:"#member_access"},{include:"#method_access"}]},8:{name:"variable.other.property.cuda-cpp"}}},memory_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.operator.wordlike.cuda-cpp"},4:{name:"keyword.operator.delete.array.cuda-cpp"},5:{name:"keyword.operator.delete.array.bracket.cuda-cpp"},6:{name:"keyword.operator.delete.cuda-cpp"},7:{name:"keyword.operator.new.cuda-cpp"}}},method_access:{begin:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"},9:{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.property.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{include:"#member_access"},{include:"#method_access"}]},10:{name:"entity.name.function.member.cuda-cpp"},11:{name:"punctuation.section.arguments.begin.bracket.round.function.member.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.other.$3.cuda-cpp"}}},ms_attributes:{begin:"__declspec\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.attribute.begin.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.attribute.end.cuda-cpp"}},name:"support.other.attribute.cuda-cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.namespace.cuda-cpp"},1:{name:"keyword.other.namespace.definition.cuda-cpp storage.type.namespace.definition.cuda-cpp"}},endCaptures:{},name:"meta.block.namespace.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.namespace.cuda-cpp"}},name:"meta.head.namespace.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.namespace.cuda-cpp"}},name:"meta.body.namespace.cuda-cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.namespace.cuda-cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},number_literal:{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:new)|(?:\\->\\*)|(?:<<=)|(?:>>=)|(?:<=>)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:\\-\\-)|(?:<<)|(?:>>)|(?:<=)|(?:>=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|(?:\\/=)|(?:%=)|(?:&=)|(?:\\^=)|(?:\\|=)|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=|,))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|("")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()`,end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.operator-overload.cuda-cpp"},1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{patterns:[{include:"#inline_comment"}]},33:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},34:{name:"comment.block.cuda-cpp"},35:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},36:{name:"storage.type.modifier.calling-convention.cuda-cpp"},37:{patterns:[{include:"#inline_comment"}]},38:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},39:{name:"comment.block.cuda-cpp"},40:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},41:{patterns:[{include:"#inline_comment"}]},42:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},43:{name:"comment.block.cuda-cpp"},44:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},45:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.operator.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"entity.name.operator.type.reference.cuda-cpp"}]},59:{patterns:[{include:"#inline_comment"}]},60:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},61:{name:"comment.block.cuda-cpp"},62:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},63:{patterns:[{include:"#inline_comment"}]},64:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},65:{name:"comment.block.cuda-cpp"},66:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},67:{patterns:[{include:"#inline_comment"}]},68:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},69:{name:"comment.block.cuda-cpp"},70:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},71:{name:"entity.name.operator.type.array.cuda-cpp"},72:{name:"entity.name.operator.custom-literal.cuda-cpp"},73:{patterns:[{include:"#inline_comment"}]},74:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},75:{name:"comment.block.cuda-cpp"},76:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},77:{name:"entity.name.operator.custom-literal.cuda-cpp"},78:{patterns:[{include:"#inline_comment"}]},79:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},80:{name:"comment.block.cuda-cpp"},81:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{},name:"meta.function.definition.special.operator-overload.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cuda-cpp"}},name:"meta.head.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.operator-overload.cuda-cpp"}},contentName:"meta.function.definition.parameters.special.operator-overload",patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cuda-cpp"}},name:"meta.body.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.alignof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.alignof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.alignof.cuda-cpp"}},contentName:"meta.arguments.operator.alignof",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.alignas.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.alignas.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.alignas.cuda-cpp"}},contentName:"meta.arguments.operator.alignas",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},{match:"--",name:"keyword.operator.decrement.cuda-cpp"},{match:"\\+\\+",name:"keyword.operator.increment.cuda-cpp"},{match:"%=|\\+=|-=|\\*=|(?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cuda-cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cuda-cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cuda-cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cuda-cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.cuda-cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.cuda-cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{match:"(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.struct.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.enum.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.union.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.class.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}}]},parameter:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},name:"meta.parameter.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{1:{patterns:[{include:"#storage_types"}]},2:{name:"storage.modifier.specifier.parameter.cuda-cpp"},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{name:"storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"},12:{name:"storage.type.cuda-cpp storage.type.built-in.cuda-cpp"},13:{name:"support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"},14:{name:"support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"},15:{name:"entity.name.type.parameter.cuda-cpp"},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#storage_types"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cuda-cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"\\=",name:"keyword.operator.assignment.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.parameter.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.array.type.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.end.bracket.square.array.type.cuda-cpp"}},name:"meta.bracket.square.array.cuda-cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{0:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},parameter_class:{match:"(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.class.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_enum:{match:"(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.enum.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_or_maybe_value:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},name:"meta.parameter.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#memory_operators"},{include:"#builtin_storage_type_initilizer"},{include:"#curly_initializer"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{1:{patterns:[{include:"#storage_types"}]},2:{name:"storage.modifier.specifier.parameter.cuda-cpp"},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{name:"storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"},12:{name:"storage.type.cuda-cpp storage.type.built-in.cuda-cpp"},13:{name:"support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"},14:{name:"support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"},15:{name:"entity.name.type.parameter.cuda-cpp"},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#storage_types"},{include:"#function_call"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cuda-cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.parameter.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.array.type.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.end.bracket.square.array.type.cuda-cpp"}},name:"meta.bracket.square.array.cuda-cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{0:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#evaluation_context"}]},parameter_struct:{match:"(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.struct.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_union:{match:"(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.union.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parentheses:{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.cuda-cpp"}},name:"meta.parens.cuda-cpp",patterns:[{include:"#over_qualified_types"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",end:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",captures:{1:{name:"keyword.control.directive.pragma.pragma-mark.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"punctuation.definition.directive.cuda-cpp"},5:{name:"entity.name.tag.pragma-mark.cuda-cpp"}},name:"meta.preprocessor.pragma.cuda-cpp"},predefined_macros:{patterns:[{match:"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b",captures:{1:{name:"entity.name.other.preprocessor.macro.predefined.$1.cuda-cpp"}}},{match:"\\b__([A-Z_]+)__\\b",name:"entity.name.other.preprocessor.macro.predefined.probably.$1.cuda-cpp"}]},preprocessor_conditional_context:{patterns:[{include:"#preprocessor_conditional_defined"},{include:"#comments"},{include:"#language_constants"},{include:"#string_context"},{include:"#d9bc4796b0b_preprocessor_number_literal"},{include:"#operators"},{include:"#predefined_macros"},{include:"#macro_name"},{include:"#line_continuation_character"}]},preprocessor_conditional_defined:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",end:"^(?!\\s*+#\\s*(?:else|endif))",beginCaptures:{0:{name:"keyword.control.directive.conditional.$6.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"punctuation.definition.directive.cuda-cpp"},6:{}},endCaptures:{},patterns:[{begin:"\\G(?<=ifndef|ifdef|if)",end:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"punctuation.definition.directive.cuda-cpp"}},name:"keyword.control.directive.$4.cuda-cpp"},preprocessor_context:{patterns:[{include:"#pragma_mark"},{include:"#pragma"},{include:"#include"},{include:"#line"},{include:"#diagnostic"},{include:"#undef"},{include:"#preprocessor_conditional_range"},{include:"#single_line_macro"},{include:"#macro"},{include:"#preprocessor_conditional_standalone"},{include:"#macro_argument"}]},qualified_type:{match:`\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])`,captures:{0:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},1:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}},name:"meta.qualified_type.cuda-cpp"},qualifiers_and_specifiers_post_parameters:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.modifier.specifier.functional.post-parameters.$3.cuda-cpp"},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},scope_resolution:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.call.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"}}},scope_resolution_function_definition:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"}}},scope_resolution_function_definition_operator_overload:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_operator_overload_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.operator-overload.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"}}},scope_resolution_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"}}},scope_resolution_namespace_alias:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_alias_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.alias.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"}}},scope_resolution_namespace_block:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_block_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.block.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"}}},scope_resolution_namespace_using:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_using_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.using.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"}}},scope_resolution_parameter:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_parameter_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.parameter.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"}}},scope_resolution_template_call:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_call_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.call.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"}}},scope_resolution_template_definition:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_definition_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.definition.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"}}},semicolon:{match:";",name:"punctuation.terminator.statement.cuda-cpp"},simple_type:{match:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?`,captures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{},13:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},14:{patterns:[{include:"#inline_comment"}]},15:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},16:{patterns:[{include:"#inline_comment"}]},17:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},single_line_macro:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},sizeof_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},sizeof_variadic_operator:{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},square_brackets:{name:"meta.bracket.square.access",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.other.object"},2:{name:"punctuation.definition.begin.bracket.square"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square"}},patterns:[{include:"#evaluation_context"}]},standard_declares:{patterns:[{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.struct.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.union.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.enum.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.class.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}}]},static_assert:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"keyword.other.static_assert.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{name:"punctuation.section.arguments.begin.bracket.round.static_assert.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.static_assert.cuda-cpp"}},patterns:[{begin:'(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\")?)',end:"(?=\\))",beginCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},endCaptures:{},name:"meta.static_assert.message.cuda-cpp",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},std_space:{match:"(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",captures:{0:{patterns:[{include:"#inline_comment"}]},1:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},storage_specifiers:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.modifier.specifier.$3.cuda-cpp"}}},storage_types:{patterns:[{include:"#storage_specifiers"},{include:"#inline_builtin_storage_type"},{include:"#decltype"},{include:"#typename"}]},string_context:{patterns:[{begin:'((?:u|u8|U|L)?)"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cuda-cpp"},1:{name:"meta.encoding.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.string.end.cuda-cpp"}},name:"string.quoted.double.cuda-cpp",patterns:[{match:"(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",name:"constant.character.escape.cuda-cpp"},{match:`\\\\['"?\\\\abfnrtv]`,name:"constant.character.escape.cuda-cpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.cuda-cpp"},{match:"(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",captures:{1:{name:"constant.character.escape.cuda-cpp"},2:{name:"invalid.illegal.unknown-escape.cuda-cpp"}}},{include:"#string_escapes_context_c"}]},{begin:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.struct.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.struct.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.struct.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"}},name:"meta.head.struct.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cuda-cpp"}},name:"meta.body.struct.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cuda-cpp",patterns:[{include:"$self"}]}]},struct_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.struct.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},switch_conditional_parentheses:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.cuda-cpp"}},name:"meta.conditional.switch.cuda-cpp",patterns:[{include:"#evaluation_context"},{include:"#c_conditional_context"}]},switch_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.switch.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"keyword.control.switch.cuda-cpp"}},endCaptures:{},name:"meta.block.switch.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.switch.cuda-cpp"}},name:"meta.head.switch.cuda-cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.switch.cuda-cpp"}},name:"meta.body.switch.cuda-cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"},{include:"#block_innards"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.switch.cuda-cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{match:"(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])",captures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"entity.name.type.template.cuda-cpp"},3:{name:"keyword.operator.assignment.cuda-cpp"}}},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{match:`((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+`,captures:{0:{patterns:[{include:"#template_call_range"}]}},name:"meta.template.call.cuda-cpp"},template_call_range:{begin:"<",end:">",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",beginCaptures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.definition.cuda-cpp"}},name:"meta.template.definition.cuda-cpp",patterns:[{begin:"(?<=\\w)(?:(?:\\s)+)?<",end:">",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\.\\.\\.)(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))(?:(?:\\s)+)?(?:(,)|(?=>|$))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.type.template.argument.$3.cuda-cpp"},4:{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cuda-cpp"}]},5:{name:"entity.name.type.template.cuda-cpp"},6:{name:"storage.type.template.cuda-cpp"},7:{name:"punctuation.vararg-ellipses.template.definition.cuda-cpp"},8:{name:"entity.name.type.template.cuda-cpp"},9:{name:"punctuation.separator.delimiter.comma.template.argument.cuda-cpp"}}},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_isolated_definition:{match:"(?(?:(?:\\s)+)?$)",captures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.cuda-cpp"},3:{name:"meta.template.definition.cuda-cpp",patterns:[{include:"#template_definition_context"}]},4:{name:"punctuation.section.angle-brackets.end.template.definition.cuda-cpp"}}},ternary_operator:{begin:"\\?",end:":",beginCaptures:{0:{name:"keyword.operator.ternary.cuda-cpp"}},endCaptures:{0:{name:"keyword.operator.ternary.cuda-cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}],applyEndPatternLast:!0},the_this_keyword:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"variable.language.this.cuda-cpp"}}},type_alias:{match:`(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))|(.*(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)`,captures:{1:{name:"keyword.other.using.directive.cuda-cpp"},2:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},3:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"keyword.operator.assignment.cuda-cpp"},15:{name:"keyword.other.typename.cuda-cpp"},16:{patterns:[{include:"#storage_specifiers"}]},17:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},18:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},19:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},20:{patterns:[{include:"#inline_comment"}]},21:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},22:{patterns:[{include:"#inline_comment"}]},23:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},24:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},30:{name:"meta.declaration.type.alias.value.unknown.cuda-cpp",patterns:[{include:"#evaluation_context"}]},31:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},32:{patterns:[{include:"#inline_comment"}]},33:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},34:{patterns:[{include:"#inline_comment"}]},35:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},36:{patterns:[{include:"#inline_comment"}]},37:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},38:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},39:{patterns:[{include:"#evaluation_context"}]},40:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},41:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.declaration.type.alias.cuda-cpp"},type_casting_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.operator.wordlike.cuda-cpp keyword.operator.cast.$3.cuda-cpp"}}},typedef_class:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.class.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.class.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.class.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cuda-cpp"}},name:"meta.head.class.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cuda-cpp"}},name:"meta.body.class.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typedef_function_pointer:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()`,end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"},33:{name:"punctuation.definition.function.pointer.dereference.cuda-cpp"},34:{name:"entity.name.type.alias.cuda-cpp entity.name.type.pointer.function.cuda-cpp"},35:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},36:{patterns:[{include:"#evaluation_context"}]},37:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},38:{name:"punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"},39:{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"}},endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},patterns:[{include:"#function_parameter_context"}]}]},typedef_struct:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.struct.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.struct.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.struct.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"}},name:"meta.head.struct.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cuda-cpp"}},name:"meta.body.struct.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typedef_union:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.union.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.union.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.union.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cuda-cpp"}},name:"meta.head.union.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cuda-cpp"}},name:"meta.body.union.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typeid_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},typename:{match:`(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))`,captures:{1:{name:"storage.modifier.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{}}},undef:{match:"(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"punctuation.definition.directive.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{name:"entity.name.function.preprocessor.cuda-cpp"}},name:"meta.preprocessor.undef.cuda-cpp"},union_block:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.union.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.union.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.union.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cuda-cpp"}},name:"meta.head.union.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cuda-cpp"}},name:"meta.body.union.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cuda-cpp",patterns:[{include:"$self"}]}]},union_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.union.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},using_name:{match:"(using)(?:\\s)+(?!namespace\\b)",captures:{1:{name:"keyword.other.using.directive.cuda-cpp"}}},using_namespace:{begin:`(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"meta.definition.property.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.optional.js.jsx"},3:{name:"keyword.operator.definiteassignment.js.jsx"}}},{name:"meta.definition.property.js.jsx variable.object.property.js.jsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.js.jsx",match:"\\?"},{name:"keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"keyword.operator.new.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.js.jsx",begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.property.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.js.jsx",begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?)",captures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"variable.parameter.js.jsx"}}},{name:"meta.arrow.js.jsx",begin:`(?x) (?: (? is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) ) )`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.js.jsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.js.jsx",begin:"(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.js.jsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:`(?x)(?=(\\b(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{0:{name:"meta.object-literal.key.js.jsx"},1:{name:"entity.name.function.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.js.jsx"}}},{name:"meta.object.member.js.jsx",begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{1:{name:"variable.other.readwrite.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.js.jsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx",match:"\\?\\."},{name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.js.jsx",match:"(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.js.jsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.js.jsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.js.jsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.logical.js.jsx"},2:{name:"keyword.operator.assignment.compound.js.jsx"},3:{name:"keyword.operator.arithmetic.js.jsx"}}},{name:"keyword.operator.logical.js.jsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.js.jsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.js.jsx",match:"\\="},{name:"keyword.operator.decrement.js.jsx",match:"--"},{name:"keyword.operator.increment.js.jsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.js.jsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}}}]},"typeof-operator":{begin:"(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.js.jsx",begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.js.jsx",match:"\\b(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) | (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"support.variable.property.js.jsx"},4:{name:"support.constant.js.jsx"}}},{match:"(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) ))`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"entity.name.function.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.property.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.property.js.jsx"}}},{name:"variable.other.constant.js.jsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: (\\#?[[:upper:]][_$[:digit:][:upper:]]*) | (\\#?[_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.object.property.js.jsx"},4:{name:"variable.other.object.property.js.jsx"}}},{match:`(?x)(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"variable.other.constant.object.js.jsx"},2:{name:"variable.other.object.js.jsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.js.jsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.js.jsx",begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.js.jsx",match:"(?)"}]},"type-arguments":{name:"meta.type.parameters.js.jsx",begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.js.jsx",begin:"(?) )) ) ) )`,end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.js.jsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.js.jsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.js.jsx",match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js.jsx"},2:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}}},{name:"entity.name.type.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.js.jsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.js.jsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.js.jsx",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.js.jsx",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.js.jsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.js.jsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.js.jsx"},regex:{patterns:[{name:"string.regexp.js.jsx",begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.js.jsx",begin:"((?",captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.js.jsx",begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.js.jsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"},2:{name:"storage.type.internaldeclaration.js.jsx"},3:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=$)",contentName:"comment.line.double-slash.js.jsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=^)",contentName:"comment.line.double-slash.js.jsx"},directives:{name:"comment.line.triple-slash.directive.js.jsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",patterns:[{name:"meta.tag.js.jsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js.jsx"},2:{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js.jsx"}},patterns:[{name:"entity.other.attribute-name.directive.js.jsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.js.jsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:`(?x) ((@)(?:access|api)) \\s+ (private|protected|public) \\b`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}}},{match:`(?x) ((@)author) \\s+ ( [^@\\s<>*/] (?:[^@<>*/]|\\*[^/])* ) (?: \\s* (<) ([^>\\s]+) (>) )?`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:`(?x) ((@)borrows) \\s+ ((?:[^@\\s*/]|\\*[^/])+) # \\s+ (as) \\s+ # as ((?:[^@\\s*/]|\\*[^/])+) # `,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{0:{name:"source.embedded.js.jsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}}},{match:`(?x) ((@)see) \\s+ (?: # URL ( (?=https?://) (?:[^\\s*]|\\*[^/])+ ) | # JSDoc namepath ( (?! # Avoid matching bare URIs (also acceptable as links) https?:// | # Avoid matching {@inline tags}; we match those below (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag} {@(?:link|linkcode|linkplain|tutorial)\\b ) # Matched namepath (?:[^@\\s*/]|\\*[^/])+ ) )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}}},{match:`(?x) ((@)template) \\s+ # One or more valid identifiers ( [A-Za-z_$] # First character: non-numeric word character [\\w$.\\[\\]]* # Rest of identifier (?: # Possible list of additional identifiers \\s* , \\s* [A-Za-z_$] [\\w$.\\[\\]]* )* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:`(?x) ( (@) (?:arg|argument|const|constant|member|namespace|param|var) ) \\s+ ( [A-Za-z_$] [\\w$.\\[\\]]* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:`(?x) (\\[)\\s* [\\w$]+ (?: (?:\\[\\])? # Foo[ ].bar properties within an array \\. # Foo.Bar namespaced parameter [\\w$]+ )* (?: \\s* (=) # [foo=bar] Default parameter value \\s* ( # The inner regexes are to stop the match early at */ and to not stop at escaped quotes (?> "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | # [foo="bar"] Double-quoted '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else )* ) )? \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js.jsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:`(?x) ( (@) (?:define|enum|exception|export|extends|lends|implements|modifies |namespace|private|protected|returns?|satisfies|suppress|this|throws|type |yields?) ) \\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:`(?x) ( (@) (?:alias|augments|callback|constructs|emits|event|fires|exports? |extends|external|function|func|host|lends|listens|interface|memberof!? |method|module|mixes|mixin|name|requires|see|this|typedef|uses) ) \\s+ ( (?: [^{}@\\s*] | \\*[^/] )+ )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.js.jsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",end:"()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},endCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:`(?x) (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.js.jsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"},2:{name:"punctuation.definition.tag.begin.js.jsx"},3:{name:"entity.name.tag.namespace.js.jsx"},4:{name:"punctuation.separator.namespace.js.jsx"},5:{name:"entity.name.tag.js.jsx"},6:{name:"support.class.component.js.jsx"},7:{name:"punctuation.definition.tag.end.js.jsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"}},end:"(?=)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:`(?x) \\s* (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))? ([_$[:alpha:]][-_$[:alnum:]]*) (?=\\s|=|/?>|/\\*|//)`,captures:{1:{name:"entity.other.attribute-name.namespace.js.jsx"},2:{name:"punctuation.separator.namespace.js.jsx"},3:{name:"entity.other.attribute-name.js.jsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.js.jsx",match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`},"jsx-string-double-quoted":{name:"string.quoted.double.js.jsx",begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.js.jsx",begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.js.jsx",match:"\\S+"}}};u();var XCe={name:"markdown_latex_combined",scopeName:"text.tex.markdown_latex_combined",patterns:[{include:"text.tex.latex"},{include:"#frontMatter"},{include:"#block"}],repository:{$self:{},$base:{},block:{patterns:[{include:"#separator"},{include:"#heading"},{include:"#blockquote"},{include:"#lists"},{include:"#fenced_code_block"},{include:"#raw_block"},{include:"#link-def"},{include:"#html"},{include:"#paragraph"}]},blockquote:{begin:"(^|\\G)[ ]{0,3}(>) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},fenced_code_block_css:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.css",patterns:[{include:"source.css"}]}]},fenced_code_block_basic:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.html",patterns:[{include:"text.html.basic"}]}]},fenced_code_block_ini:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ini",patterns:[{include:"source.ini"}]}]},fenced_code_block_java:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.java",patterns:[{include:"source.java"}]}]},fenced_code_block_lua:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}]}]},fenced_code_block_makefile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.makefile",patterns:[{include:"source.makefile"}]}]},fenced_code_block_perl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl",patterns:[{include:"source.perl"}]}]},fenced_code_block_r:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.r",patterns:[{include:"source.r"}]}]},fenced_code_block_ruby:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ruby",patterns:[{include:"source.ruby"}]}]},fenced_code_block_php:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.php",patterns:[{include:"text.html.basic"},{include:"source.php"}]}]},fenced_code_block_sql:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.sql",patterns:[{include:"source.sql"}]}]},fenced_code_block_vs_net:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.vs_net",patterns:[{include:"source.asp.vb.net"}]}]},fenced_code_block_xml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xml",patterns:[{include:"text.xml"}]}]},fenced_code_block_xsl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xsl",patterns:[{include:"text.xml.xsl"}]}]},fenced_code_block_yaml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.yaml",patterns:[{include:"source.yaml"}]}]},fenced_code_block_dosbatch:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dosbatch",patterns:[{include:"source.batchfile"}]}]},fenced_code_block_clojure:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.clojure",patterns:[{include:"source.clojure"}]}]},fenced_code_block_coffee:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.coffee",patterns:[{include:"source.coffee"}]}]},fenced_code_block_c:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.c",patterns:[{include:"source.c"}]}]},fenced_code_block_cpp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.cpp source.cpp",patterns:[{include:"source.cpp"}]}]},fenced_code_block_diff:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.diff",patterns:[{include:"source.diff"}]}]},fenced_code_block_dockerfile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dockerfile",patterns:[{include:"source.dockerfile"}]}]},fenced_code_block_git_commit:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_commit",patterns:[{include:"text.git-commit"}]}]},fenced_code_block_git_rebase:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_rebase",patterns:[{include:"text.git-rebase"}]}]},fenced_code_block_go:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.go",patterns:[{include:"source.go"}]}]},fenced_code_block_groovy:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.groovy",patterns:[{include:"source.groovy"}]}]},fenced_code_block_pug:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.pug",patterns:[{include:"text.pug"}]}]},fenced_code_block_js:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.javascript",patterns:[{include:"source.js"}]}]},fenced_code_block_js_regexp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.js_regexp",patterns:[{include:"source.js.regexp"}]}]},fenced_code_block_json:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.json",patterns:[{include:"source.json"}]}]},fenced_code_block_jsonc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.jsonc",patterns:[{include:"source.json.comments"}]}]},fenced_code_block_less:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.less",patterns:[{include:"source.css.less"}]}]},fenced_code_block_objc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.objc",patterns:[{include:"source.objc"}]}]},fenced_code_block_swift:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.swift",patterns:[{include:"source.swift"}]}]},fenced_code_block_scss:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scss",patterns:[{include:"source.css.scss"}]}]},fenced_code_block_perl6:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl6",patterns:[{include:"source.perl.6"}]}]},fenced_code_block_powershell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.powershell",patterns:[{include:"source.powershell"}]}]},fenced_code_block_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.python",patterns:[{include:"source.python"}]}]},fenced_code_block_julia:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.julia",patterns:[{include:"source.julia"}]}]},fenced_code_block_regexp_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.regexp_python",patterns:[{include:"source.regexp.python"}]}]},fenced_code_block_rust:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.rust",patterns:[{include:"source.rust"}]}]},fenced_code_block_scala:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scala",patterns:[{include:"source.scala"}]}]},fenced_code_block_shell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.shellscript",patterns:[{include:"source.shell"}]}]},fenced_code_block_ts:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescript",patterns:[{include:"source.ts"}]}]},fenced_code_block_tsx:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescriptreact",patterns:[{include:"source.tsx"}]}]},fenced_code_block_csharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.csharp",patterns:[{include:"source.cs"}]}]},fenced_code_block_fsharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.fsharp",patterns:[{include:"source.fsharp"}]}]},fenced_code_block_dart:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dart",patterns:[{include:"source.dart"}]}]},fenced_code_block_handlebars:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.handlebars",patterns:[{include:"text.html.handlebars"}]}]},fenced_code_block_markdown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.markdown",patterns:[{include:"text.html.markdown"}]}]},fenced_code_block_log:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.log",patterns:[{include:"text.log"}]}]},fenced_code_block_erlang:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.erlang",patterns:[{include:"source.erlang"}]}]},fenced_code_block_elixir:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.elixir",patterns:[{include:"source.elixir"}]}]},fenced_code_block_latex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.latex",patterns:[{include:"text.tex.latex"}]}]},fenced_code_block_bibtex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.bibtex",patterns:[{include:"text.bibtex"}]}]},fenced_code_block:{patterns:[{include:"#fenced_code_block_css"},{include:"#fenced_code_block_basic"},{include:"#fenced_code_block_ini"},{include:"#fenced_code_block_java"},{include:"#fenced_code_block_lua"},{include:"#fenced_code_block_makefile"},{include:"#fenced_code_block_perl"},{include:"#fenced_code_block_r"},{include:"#fenced_code_block_ruby"},{include:"#fenced_code_block_php"},{include:"#fenced_code_block_sql"},{include:"#fenced_code_block_vs_net"},{include:"#fenced_code_block_xml"},{include:"#fenced_code_block_xsl"},{include:"#fenced_code_block_yaml"},{include:"#fenced_code_block_dosbatch"},{include:"#fenced_code_block_clojure"},{include:"#fenced_code_block_coffee"},{include:"#fenced_code_block_c"},{include:"#fenced_code_block_cpp"},{include:"#fenced_code_block_diff"},{include:"#fenced_code_block_dockerfile"},{include:"#fenced_code_block_git_commit"},{include:"#fenced_code_block_git_rebase"},{include:"#fenced_code_block_go"},{include:"#fenced_code_block_groovy"},{include:"#fenced_code_block_pug"},{include:"#fenced_code_block_js"},{include:"#fenced_code_block_js_regexp"},{include:"#fenced_code_block_json"},{include:"#fenced_code_block_jsonc"},{include:"#fenced_code_block_less"},{include:"#fenced_code_block_objc"},{include:"#fenced_code_block_swift"},{include:"#fenced_code_block_scss"},{include:"#fenced_code_block_perl6"},{include:"#fenced_code_block_powershell"},{include:"#fenced_code_block_python"},{include:"#fenced_code_block_julia"},{include:"#fenced_code_block_regexp_python"},{include:"#fenced_code_block_rust"},{include:"#fenced_code_block_scala"},{include:"#fenced_code_block_shell"},{include:"#fenced_code_block_ts"},{include:"#fenced_code_block_tsx"},{include:"#fenced_code_block_csharp"},{include:"#fenced_code_block_fsharp"},{include:"#fenced_code_block_dart"},{include:"#fenced_code_block_handlebars"},{include:"#fenced_code_block_markdown"},{include:"#fenced_code_block_log"},{include:"#fenced_code_block_erlang"},{include:"#fenced_code_block_elixir"},{include:"#fenced_code_block_latex"},{include:"#fenced_code_block_bibtex"},{include:"#fenced_code_block_unknown"}]},fenced_code_block_unknown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown"},heading:{match:"(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",captures:{1:{patterns:[{match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}}]}},name:"markup.heading.markdown",patterns:[{include:"#inline"}]},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},html:{patterns:[{begin:"(^|\\G)\\s*()",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?))",end:"(?i)(.*)(())",endCaptures:{1:{patterns:[{include:"text.html.derivative"}]},2:{name:"meta.tag.structure.$4.end.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],while:"(?i)^(?!.*)"}]},{begin:"(?i)(^|\\G)\\s*(?=))",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|)\\s*$)",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"}]},"link-def":{captures:{1:{name:"punctuation.definition.constant.markdown"},2:{name:"constant.other.reference.link.markdown"},3:{name:"punctuation.definition.constant.markdown"},4:{name:"punctuation.separator.key-value.markdown"},5:{name:"punctuation.definition.link.markdown"},6:{name:"markup.underline.link.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.begin.markdown"},11:{name:"punctuation.definition.string.end.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"}},match:`(?x) \\s* # Leading whitespace (\\[)([^]]+?)(\\])(:) # Reference name [ \\t]* # Optional whitespace (?:(<)([^\\>]+?)(>)|(\\S+?)) # The url [ \\t]* # Optional whitespace (?: ((\\().+?(\\))) # Match title in parens\u2026 | ((").+?(")) # or in double quotes\u2026 | ((').+?(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace $ `,name:"meta.link.reference.def.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})([0-9]+\\.)([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=\\S)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown",while:"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},frontMatter:{begin:"\\A-{3}\\s*$",contentName:"meta.embedded.block.frontmatter",patterns:[{include:"source.yaml"}],end:"(^|\\G)-{3}|\\.{3}\\s*$"},inline:{patterns:[{include:"text.tex.latex"},{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},ampersand:{match:"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",name:"meta.other.valid-ampersand.markdown"},bold:{begin:`(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags | (?\`+)([^\`]|(?!(?(?!\`))\`)*+\\k # Raw | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes | \\[ ( (? # Named group [^\\[\\]\\\\] # Match most chars | \\\\. # Escaped chars | \\[ \\g*+ \\] # Nested brackets )*+ \\] ( ( # Reference Link [ ]? # Optional space \\[[^\\]]*+\\] # Ref name ) | ( # Inline Link \\( # Opening paren [ \\t]*+ # Optional whitespace ? # URL [ \\t]*+ # Optional whitespace ( # Optional Title (?['"]) (.*?) \\k<title> )? \\) ) ) ) | (?!(?<=\\S)\\k<open>). # Everything besides # style closer )++ (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close ) `,captures:{1:{name:"punctuation.definition.bold.markdown"}},end:"(?<=\\S)(\\1)",name:"markup.bold.markdown",patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},bracket:{match:"<(?![a-zA-Z/?\\$!])",name:"meta.other.valid-bracket.markdown"},escape:{match:"\\\\[-`*_#+.!(){}\\[\\]\\\\>]",name:"constant.character.escape.markdown"},"image-inline":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},6:{name:"punctuation.definition.link.markdown"},7:{name:"markup.underline.link.image.markdown"},8:{name:"punctuation.definition.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.markdown"},11:{name:"punctuation.definition.string.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.markdown"},14:{name:"punctuation.definition.string.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.markdown"},17:{name:"punctuation.definition.string.markdown"},18:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text. (\\() # Opening paren for url (<?)(\\S+?)(>?) # The url [ \\t]* # Optional whitespace (?: ((\\().+?(\\))) # Match title in parens\u2026 | ((").+?(")) # or in double quotes\u2026 | ((').+?(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace (\\)) `,name:"meta.image.inline.markdown"},"image-ref":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.constant.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},italic:{begin:`(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open (?= ( <[^>]*+> # HTML tags | (?<raw>\`+)([^\`]|(?!(?<!\`)\\k<raw>(?!\`))\`)*+\\k<raw> # Raw | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes | \\[ ( (?<square> # Named group [^\\[\\]\\\\] # Match most chars | \\\\. # Escaped chars | \\[ \\g<square>*+ \\] # Nested brackets )*+ \\] ( ( # Reference Link [ ]? # Optional space \\[[^\\]]*+\\] # Ref name ) | ( # Inline Link \\( # Opening paren [ \\t]*+ # Optional whtiespace <?(.*?)>? # URL [ \\t]*+ # Optional whtiespace ( # Optional Title (?<title>['"]) (.*?) \\k<title> )? \\) ) ) ) | \\k<open>\\k<open> # Must be bold closer | (?!(?<=\\S)\\k<open>). # Everything besides # style closer )++ (?<=\\S)(?=_\\b|\\*)\\k<open> # Close ) `,captures:{1:{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-email":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},4:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},3:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text. (\\() # Opening paren for url # The url [ \\t]* ( (<)([^<>\\n]*)(>) | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*) ) [ \\t]* # The title (?: ((\\()[^()]*(\\))) # Match title in parens\u2026 | ((")[^"]*(")) # or in double quotes\u2026 | ((')[^']*(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace (\\)) `,name:"meta.link.inline.markdown"},"link-ref":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)(\\S+?)(\\])",name:"meta.link.reference.markdown"},raw:{captures:{1:{name:"punctuation.definition.raw.markdown"},3:{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},strikethrough:{captures:{1:{name:"punctuation.definition.strikethrough.markdown"},2:{patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},3:{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"}}};u();var e_e={name:"markdown-math",scopeName:"text.html.markdown.math",patterns:[{include:"#math"}],repository:{$self:{},$base:{},math:{patterns:[{name:"comment.line.math.tex",match:"((?<!\\\\)%)(.+)$",captures:{1:{name:"punctuation.definition.comment.math.tex"}}},{name:"line.separator.math.tex",match:"(\\\\\\\\)$",captures:{1:{name:"punctuation.line.separator.math.tex"}}},{name:"meta.function.math.tex",begin:"((\\\\)([a-zA-Z_]+))\\s*(\\{)",beginCaptures:{1:{name:"storage.type.function.math.tex"},2:{name:"punctuation.definition.function.math.tex"},3:{name:"entity.name.function.math.tex"},4:{name:"punctuation.definition.arguments.begin.math.tex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.math.tex"}},patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)([a-zA-Z_]+)\\b",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\*\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly"},{match:"\\(",name:"punctuation.math.begin.bracket.round"},{match:"\\)",name:"punctuation.math.end.bracket.round"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.latex"}]}}};u();var t_e={scopeName:"source.rst",name:"restructuredtext",patterns:[{include:"#body"}],repository:{$self:{},$base:{},body:{patterns:[{include:"#title"},{include:"#inline-markup"},{include:"#anchor"},{include:"#line-block"},{include:"#replace-include"},{include:"#footnote"},{include:"#substitution"},{include:"#blocks"},{include:"#table"},{include:"#simple-table"},{include:"#options-list"}]},title:{match:"^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",name:"markup.heading"},"inline-markup":{patterns:[{include:"#escaped"},{include:"#ignore"},{include:"#ref"},{include:"#literal"},{include:"#monospaced"},{include:"#citation"},{include:"#bold"},{include:"#italic"},{include:"#list"},{include:"#macro"},{include:"#reference"},{include:"#footnote-ref"}]},ignore:{patterns:[{match:"'[`*]+'"},{match:"<[`*]+>"},{match:"{[`*]+}"},{match:"\\([`*]+\\)"},{match:"\\[[`*]+\\]"},{match:'"[`*]+"'}]},table:{begin:"^\\s*\\+[=+-]+\\+\\s*$",end:"^(?![+|])",beginCaptures:{0:{name:"keyword.control.table"}},patterns:[{match:"[=+|-]",name:"keyword.control.table"}]},"simple-table":{match:"^[=\\s]+$",name:"keyword.control.table"},ref:{begin:"(:ref:)`",end:"`|^\\s*$",name:"entity.name.tag",beginCaptures:{1:{name:"keyword.control"}},patterns:[{match:"<.*?>",name:"markup.underline.link"}]},reference:{match:"[\\w-]*[a-zA-Z\\d-]__?\\b",name:"entity.name.tag"},macro:{match:"\\|[^\\|]+\\|",name:"entity.name.tag"},literal:{match:"(:\\S+:)(`.*?`\\\\?)",captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"}}},monospaced:{begin:"(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",end:"``|^\\s*$",name:"string.interpolated"},citation:{begin:"(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",end:"`_{,2}|^\\s*$",name:"entity.name.tag",applyEndPatternLast:!1},bold:{begin:`(?<=[\\s"'(\\[{<]|^)\\*{2}[^\\s*]`,end:"\\*{2}|^\\s*$",name:"markup.bold"},italic:{begin:`(?<=[\\s"'(\\[{<]|^)\\*[^\\s*]`,end:"\\*|^\\s*$",name:"markup.italic"},escaped:{match:"\\\\.",name:"constant.character.escape"},list:{match:"^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",name:"keyword.control"},"line-block":{match:"^\\|\\s+",name:"keyword.control"},"raw-html":{begin:"^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable.parameter.html"}},patterns:[{include:"#block-param"},{include:"text.html.derivative"}]},anchor:{match:"^\\.{2}\\s+(_[^:]+:)\\s*",name:"entity.name.tag.anchor"},"replace-include":{match:"^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)",captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"},3:{name:"keyword.control"}}},footnote:{match:"^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",name:"entity.name.tag"},"footnote-ref":{match:"\\[(?:[\\w\\.-]+|[#*])\\]_",name:"entity.name.tag"},substitution:{match:"^\\.{2}\\s*\\|([^|]+)\\|",name:"entity.name.tag"},"options-list":{match:"^((?:-\\w|--[\\w-]+|/\\w+)(?:,? ?[\\w-]+)*)(?: |\\t|$)",name:"variable.parameter"},blocks:{patterns:[{include:"#domains"},{include:"#doctest"},{include:"#code-block-cpp"},{include:"#code-block-py"},{include:"#code-block-console"},{include:"#code-block-javascript"},{include:"#code-block-yaml"},{include:"#code-block-cmake"},{include:"#code-block-kconfig"},{include:"#code-block-ruby"},{include:"#code-block-dts"},{include:"#code-block"},{include:"#doctest-block"},{include:"#raw-html"},{include:"#block"},{include:"#literal-block"},{include:"#block-comment"}]},"block-comment":{begin:"^(\\s*)\\.{2}",while:"^\\1(?=\\s)|^\\s*$",name:"comment.block"},"literal-block":{begin:"^(\\s*)(.*)(::)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{patterns:[{include:"#inline-markup"}]},3:{name:"keyword.control"}}},block:{begin:"^(\\s*)(\\.{2}\\s+\\S+::)(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable"}},patterns:[{include:"#block-param"},{include:"#body"}]},"block-param":{patterns:[{match:"(:param\\s+(.+?):)(?:\\s|$)",captures:{1:{name:"keyword.control"},2:{name:"variable.parameter"}}},{match:"(:.+?:)(?:$|\\s+(.*))",captures:{1:{name:"keyword.control"},2:{patterns:[{match:"\\b(0x[a-fA-F\\d]+|\\d+)\\b",name:"constant.numeric"},{include:"#inline-markup"}]}}}]},domains:{patterns:[{include:"#domain-cpp"},{include:"#domain-py"},{include:"#domain-auto"},{include:"#domain-js"}]},"domain-cpp":{begin:"^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"entity.name.tag"},4:{patterns:[{include:"source.cpp"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-py":{begin:"^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-auto":{begin:"^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control.py"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-js":{begin:"^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",end:"^(?!\\1[ \\t]|$)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.js"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},doctest:{begin:"^(>>>)\\s*(.*)",end:"^\\s*$",beginCaptures:{1:{name:"keyword.control"},2:{patterns:[{include:"source.python"}]}}},"code-block-cpp":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cpp"}},patterns:[{include:"#block-param"},{include:"source.cpp"}]},"code-block-console":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.console"}},patterns:[{include:"#block-param"},{include:"source.shell"}]},"code-block-py":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.py"}},patterns:[{include:"#block-param"},{include:"source.python"}]},"code-block-javascript":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.js"}},patterns:[{include:"#block-param"},{include:"source.js"}]},"code-block-yaml":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.yaml"}},patterns:[{include:"#block-param"},{include:"source.yaml"}]},"code-block-cmake":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cmake"}},patterns:[{include:"#block-param"},{include:"source.cmake"}]},"code-block-kconfig":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.kconfig"}},patterns:[{include:"#block-param"},{include:"source.kconfig"}]},"code-block-ruby":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.ruby"}},patterns:[{include:"#block-param"},{include:"source.ruby"}]},"code-block-dts":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.dts"}},patterns:[{include:"#block-param"},{include:"source.dts"}]},"code-block":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"}]},"doctest-block":{begin:"^(\\s*)(\\.{2}\\s+doctest::)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"},{include:"source.python"}]}}};u();var n_e={name:"search-result",scopeName:"text.searchResult",patterns:[{begin:"^(# Query): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"(\\\\n)|(\\\\\\\\)",name:"entity.other.attribute-value string.unquoted constant.character.escape"},{match:"\\\\.|\\\\$",name:"entity.other.attribute-value string.unquoted invalid.illegal"},{match:`[^\\\\\\ ]+`,name:"entity.other.attribute-value string.unquoted"}]},{begin:"^(# Flags): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"(RegExp|CaseSensitive|IgnoreExcludeSettings|WordMatch)",name:"entity.other.attribute-value string.unquoted keyword.other"},{match:"."}]},{begin:"^(# ContextLines): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"\\d",name:"entity.other.attribute-value string.unquoted constant.numeric.integer"},{match:".",name:"invalid.illegal"}]},{match:"^(# (?:Including|Excluding)): (.*)$",name:"meta.header.search keyword.operator.word.search",captures:{1:{name:"entity.other.attribute-name"},2:{name:"entity.other.attribute-value string.unquoted"}}},{include:"#bat"},{include:"#c"},{include:"#clj"},{include:"#coffee"},{include:"#cpp"},{include:"#cs"},{include:"#cshtml"},{include:"#css"},{include:"#dart"},{include:"#diff"},{include:"#dockerfile"},{include:"#fs"},{include:"#go"},{include:"#groovy"},{include:"#h"},{include:"#handlebars"},{include:"#hlsl"},{include:"#hpp"},{include:"#html"},{include:"#ini"},{include:"#java"},{include:"#jl"},{include:"#js"},{include:"#json"},{include:"#jsx"},{include:"#less"},{include:"#log"},{include:"#lua"},{include:"#m"},{include:"#makefile"},{include:"#md"},{include:"#mm"},{include:"#p6"},{include:"#perl"},{include:"#php"},{include:"#ps1"},{include:"#pug"},{include:"#py"},{include:"#r"},{include:"#rb"},{include:"#rs"},{include:"#scala"},{include:"#scss"},{include:"#sh"},{include:"#sql"},{include:"#swift"},{include:"#ts"},{include:"#tsx"},{include:"#vb"},{include:"#xml"},{include:"#yaml"},{match:"^(?!\\s)(.*?)([^\\\\\\/\\n]*)(:)$",name:"meta.resultBlock.search string meta.path.search",captures:{1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}}},{match:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+)( ))(.*))",name:"meta.resultBlock.search meta.resultLine.search",captures:{1:{name:"constant.numeric.integer meta.resultLinePrefix.search meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"constant.numeric.integer meta.resultLinePrefix.search meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}}},{match:"\u27EA [0-9]+ characters skipped \u27EB",name:"meta.resultBlock.search comment meta.resultLine.elision"}],repository:{$self:{},$base:{},bat:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.bat)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.batchfile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.batchfile"}]}]},c:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.c)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.c"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.c"}]}]},clj:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.clj)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.clojure"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.clojure"}]}]},coffee:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.coffee)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.coffee"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.coffee"}]}]},cpp:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:cpp|c\\+\\+|cc|cxx|hxx|h\\+\\+|hh))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.cpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.cpp"}]}]},cs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.cs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.cs"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.cs"}]}]},cshtml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.cshtml)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.cshtml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.cshtml"}]}]},css:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.css)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css"}]}]},dart:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.dart)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.dart"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.dart"}]}]},diff:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.diff)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.diff"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.diff"}]}]},dockerfile:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*(?:dockerfile|Dockerfile|containerfile|Containerfile))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.dockerfile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.dockerfile"}]}]},fs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.fs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.fsharp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.fsharp"}]}]},go:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.go)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.go"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.go"}]}]},groovy:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.groovy)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.groovy"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.groovy"}]}]},h:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.h)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objc"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objc"}]}]},handlebars:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:handlebars|hbs))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.handlebars"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.handlebars"}]}]},hlsl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.hlsl)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.hlsl"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.hlsl"}]}]},hpp:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.hpp)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objcpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objcpp"}]}]},html:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.html)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.basic"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.basic"}]}]},ini:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ini)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ini"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ini"}]}]},java:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.java)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.java"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.java"}]}]},jl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.jl)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.julia"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.julia"}]}]},js:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.js)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.js"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.js"}]}]},json:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.json)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.json.comments"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.json.comments"}]}]},jsx:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.jsx)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.js.jsx"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.js.jsx"}]}]},less:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.less)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css.less"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css.less"}]}]},log:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.log)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.log"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.log"}]}]},lua:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.lua)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.lua"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.lua"}]}]},m:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.m)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objc"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objc"}]}]},makefile:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*(?:makefile|Makefile)(?:\\..*)?)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.makefile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.makefile"}]}]},md:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.md)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.markdown"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.markdown"}]}]},mm:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.mm)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objcpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objcpp"}]}]},p6:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.p6)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.perl.6"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.perl.6"}]}]},perl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:perl|pl|pm))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.perl"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.perl"}]}]},php:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.php)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.php"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.php"}]}]},ps1:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ps1)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.powershell"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.powershell"}]}]},pug:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.pug)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.pug"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.pug"}]}]},py:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.py)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.python"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.python"}]}]},r:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.r)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.r"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.r"}]}]},rb:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.rb)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ruby"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ruby"}]}]},rs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.rs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.rust"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.rust"}]}]},scala:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.scala)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.scala"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.scala"}]}]},scss:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.scss)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css.scss"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css.scss"}]}]},sh:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.sh)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.shell"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.shell"}]}]},sql:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.sql)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.sql"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.sql"}]}]},swift:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.swift)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.swift"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.swift"}]}]},ts:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ts)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ts"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ts"}]}]},tsx:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.tsx)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.tsx"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.tsx"}]}]},vb:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.vb)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.asp.vb.net"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.asp.vb.net"}]}]},xml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.xml)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.xml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.xml"}]}]},yaml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:ya?ml))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.yaml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.yaml"}]}]}}};u();var a_e={name:"typescriptreact",scopeName:"source.tsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{$self:{},$base:{},shebang:{name:"comment.line.shebang.tsx",match:"\\A(#!).*(?=$)",captures:{1:{name:"punctuation.definition.comment.tsx"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{name:"keyword.control.trycatch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.control.loop.tsx"},2:{name:"entity.name.label.tsx"}}},{name:"keyword.control.loop.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},{name:"keyword.control.switch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#if-statement"},{name:"keyword.control.conditional.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.with.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.other.debugger.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)",captures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}}}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",patterns:[{include:"#expression"}]},"var-expr":{patterns:[{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-variable":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.tsx entity.name.function.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-const":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"destructuring-variable":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-const":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"variable.object.property.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"destructuring-variable-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}}},"destructuring-variable-rest-const":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}}},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"parameter-name":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{1:{name:"storage.modifier.tsx"}}},{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}}]},"destructuring-parameter":{patterns:[{name:"meta.parameter.object-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},{name:"meta.paramter.array-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"destructuring-parameter-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"variable.parameter.tsx"}}},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"field-declaration":{name:"meta.field.declaration.tsx",begin:`(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`,beginCaptures:{1:{name:"storage.modifier.tsx"}},end:`(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`,patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{match:`(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"meta.definition.property.tsx entity.name.function.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"keyword.operator.definiteassignment.tsx"}}},{name:"meta.definition.property.tsx variable.object.property.tsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"},{name:"keyword.operator.definiteassignment.tsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]},"function-declaration":{name:"meta.function.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.async.tsx"},4:{name:"storage.type.function.tsx"},5:{name:"keyword.generator.asterisk.tsx"},6:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|(?<=\\})",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{name:"meta.function.expression.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.function.tsx"},3:{name:"keyword.generator.asterisk.tsx"},4:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{name:"meta.definition.function.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{name:"keyword.generator.asterisk.tsx",match:"\\*"}]},"method-declaration":{patterns:[{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"keyword.operator.new.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.property.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.tsx",begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`,end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"meta.definition.method.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"}]},"arrow-function":{patterns:[{name:"meta.arrow.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",captures:{1:{name:"storage.modifier.async.tsx"},2:{name:"variable.parameter.tsx"}}},{name:"meta.arrow.tsx",begin:`(?x) (?: (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync) )? ((?<![})!\\]])\\s* (?= # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) ) )`,beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.tsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"meta.brace.square.tsx"},3:{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.optional.tsx"}},patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{name:"meta.indexer.mappedtype.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"meta.brace.square.tsx"},4:{name:"entity.name.type.tsx"},5:{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.type.modifier.tsx"},3:{name:"keyword.operator.optional.tsx"}},patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",captures:{1:{name:"keyword.control.as.tsx"}}},{include:"#type"}]},"function-parameters":{name:"meta.parameters.tsx",begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.tsx"}},patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","}]},"class-declaration":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-expression":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{0:{name:"entity.name.type.class.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"interface-declaration":{name:"meta.interface.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.interface.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{0:{name:"entity.name.type.interface.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{match:"([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"entity.other.inherited-class.tsx"}}},{include:"#expressionPunctuations"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"access-modifier":{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"property-accessor":{name:"storage.type.property.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"async-modifier":{name:"storage.modifier.async.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"enum-declaration":{name:"meta.enum.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.enum.tsx"},5:{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"namespace-declaration":{name:"meta.namespace.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#comment"},{include:"#string"},{name:"entity.name.type.module.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"type-alias-declaration":{name:"meta.type.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.type.tsx"},4:{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"},2:{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]}]},"import-equals-declaration":{patterns:[{name:"meta.import-equals.external.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"},7:{name:"keyword.control.require.tsx"},8:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.import-equals.internal.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{name:"variable.other.readwrite.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{name:"meta.import.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"export-declaration":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.as.tsx"},3:{name:"storage.type.namespace.tsx"},4:{name:"entity.name.type.module.tsx"}}},{name:"meta.export.default.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"},3:{name:"keyword.operator.assignment.tsx"},4:{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{name:"meta.export.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#import-export-declaration"}]}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{name:"keyword.control.from.tsx",match:"\\bfrom\\b"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.assert.tsx"},2:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{name:"meta.object-literal.key.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)"},{name:"punctuation.separator.key-value.tsx",match:":"}]},"import-export-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))",captures:{1:{name:"keyword.control.type.tsx"},2:{name:"keyword.control.default.tsx"},3:{name:"constant.language.import-export-all.tsx"},4:{name:"variable.other.readwrite.tsx"},5:{name:"keyword.control.as.tsx"},6:{name:"keyword.control.default.tsx"},7:{name:"variable.other.readwrite.alias.tsx"}}},{include:"#punctuation-comma"},{name:"constant.language.import-export-all.tsx",match:"\\*"},{name:"keyword.control.default.tsx",match:"\\b(default)\\b"},{match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.control.type.tsx"},2:{name:"variable.other.readwrite.alias.tsx"}}}]},"switch-statement":{name:"switch-statement.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{name:"switch-expression.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"switch-block.expr.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",patterns:[{name:"case-clause.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.tsx"}},end:"(?=:)",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},2:{name:"meta.block.tsx punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",patterns:[{include:"#statements"}]},{match:"(:)",captures:{0:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}}},{include:"#statements"}]}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{name:"keyword.control.loop.tsx",match:"await"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"string.regexp.tsx",begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"decl-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},"after-operator-block-as-object-literal":{name:"meta.objectliteral.tsx",begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:`(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$)))`,end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{name:"meta.method.declaration.tsx",begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#function-body"}]},{name:"meta.object.member.tsx",match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"constant.numeric.decimal.tsx"}}},{name:"meta.object.member.tsx",match:`(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"entity.name.function.tsx"}}},{name:"meta.object.member.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.tsx"}}},{name:"meta.object.member.tsx",begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{1:{name:"variable.other.readwrite.tsx"}}},{name:"meta.object.member.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}}},{name:"meta.object.member.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",patterns:[{include:"#type"}]},{name:"meta.object.member.tsx",begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",begin:":",beginCaptures:{0:{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.tsx punctuation.accessor.optional.tsx",match:"\\?\\."},{name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"}]},"new-expr":{name:"new.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#expression"}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{1:{name:"storage.modifier.tsx"}}},{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},cast:{patterns:[{include:"#jsx"}]},"expression-operators":{patterns:[{name:"keyword.control.flow.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?",captures:{1:{name:"keyword.control.flow.tsx"},2:{name:"keyword.generator.asterisk.tsx"}}},{name:"keyword.operator.expression.delete.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.in.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.of.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.instanceof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.new.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#typeof-operator"},{name:"keyword.operator.expression.void.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))",captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}}},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{name:"keyword.operator.spread.tsx",match:"\\.\\.\\."},{name:"keyword.operator.assignment.compound.tsx",match:"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{name:"keyword.operator.assignment.compound.bitwise.tsx",match:"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.tsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.tsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.tsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.logical.tsx"},2:{name:"keyword.operator.assignment.compound.tsx"},3:{name:"keyword.operator.arithmetic.tsx"}}},{name:"keyword.operator.logical.tsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.tsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.tsx",match:"\\="},{name:"keyword.operator.decrement.tsx",match:"--"},{name:"keyword.operator.increment.tsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.tsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}}}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.tsx",begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.tsx",match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.binary.tsx",match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.octal.tsx",match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{match:`(?x) (?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$)`,captures:{0:{name:"constant.numeric.decimal.tsx"},1:{name:"meta.delimiter.decimal.period.tsx"},2:{name:"storage.type.numeric.bigint.tsx"},3:{name:"meta.delimiter.decimal.period.tsx"},4:{name:"storage.type.numeric.bigint.tsx"},5:{name:"meta.delimiter.decimal.period.tsx"},6:{name:"storage.type.numeric.bigint.tsx"},7:{name:"storage.type.numeric.bigint.tsx"},8:{name:"meta.delimiter.decimal.period.tsx"},9:{name:"storage.type.numeric.bigint.tsx"},10:{name:"meta.delimiter.decimal.period.tsx"},11:{name:"storage.type.numeric.bigint.tsx"},12:{name:"meta.delimiter.decimal.period.tsx"},13:{name:"storage.type.numeric.bigint.tsx"},14:{name:"storage.type.numeric.bigint.tsx"}}}]},"boolean-literal":{patterns:[{name:"constant.language.boolean.true.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.boolean.false.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"null-literal":{name:"constant.language.null.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"this-literal":{name:"variable.language.this.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)"},"super-literal":{name:"variable.language.super.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)"},"undefined-literal":{name:"constant.language.undefined.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"numericConstant-literal":{patterns:[{name:"constant.language.nan.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.infinity.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"support-objects":{patterns:[{name:"variable.language.arguments.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)"},{name:"support.class.promise.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)",captures:{1:{name:"keyword.control.import.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.importmeta.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)",captures:{1:{name:"keyword.operator.new.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.target.tsx"}}},{match:`(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?: (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) | (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"support.variable.property.tsx"},4:{name:"support.constant.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)",captures:{1:{name:"support.type.object.module.tsx"},2:{name:"support.type.object.module.tsx"},3:{name:"punctuation.accessor.tsx"},4:{name:"punctuation.accessor.optional.tsx"},5:{name:"support.type.object.module.tsx"}}}]},identifiers:{patterns:[{include:"#object-identifiers"},{match:`(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) ))`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"entity.name.function.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.property.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.property.tsx"}}},{name:"variable.other.constant.tsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: (\\#?[[:upper:]][_$[:digit:][:upper:]]*) | (\\#?[_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.object.property.tsx"},4:{name:"variable.other.object.property.tsx"}}},{match:`(?x)(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"variable.other.constant.object.tsx"},2:{name:"variable.other.object.tsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",patterns:[{include:"#return-type-core"}]},{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"arrow-return-type":{name:"meta.return.type.arrow.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.tsx",begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"},{name:"keyword.operator.assignment.tsx",match:"(=)(?!>)"}]},"type-arguments":{name:"meta.type.parameters.tsx",begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{0:{name:"keyword.operator.type.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",captures:{1:{name:"storage.modifier.tsx"}}},{include:"#type-name"}]},"type-primitive":{name:"support.type.primitive.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-builtin-literals":{name:"support.type.builtin.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-tuple":{name:"meta.type.tuple.tsx",begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},patterns:[{name:"keyword.operator.rest.tsx",match:"\\.\\.\\."},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)",captures:{1:{name:"entity.name.label.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"punctuation.separator.label.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},"type-object":{name:"meta.object.type.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-paren-or-function-parameters":{name:"meta.type.paren.cover.tsx",begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#type"}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.tsx storage.modifier.tsx"},2:{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.control.new.tsx"}},end:"(?<=\\))",patterns:[{include:"#function-parameters"}]},{name:"meta.type.function.tsx",begin:`(?x)( (?= [(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ) ) )`,end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.tsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.tsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.ternary.tsx",match:"(\\?|\\:)"},{name:"keyword.operator.expression.import.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()"}]},"type-infer":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx",captures:{1:{name:"keyword.operator.expression.infer.tsx"},2:{name:"entity.name.type.tsx"},3:{name:"keyword.operator.expression.extends.tsx"}}}]},"type-predicate-operator":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"},4:{name:"keyword.operator.expression.is.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"}}},{name:"keyword.operator.type.asserts.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.is.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.tsx"},2:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{name:"entity.name.type.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.tsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.tsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.tsx",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.tsx",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.tsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.tsx"},regex:{patterns:[{name:"string.regexp.tsx",begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.tsx",begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]}]},regexp:{patterns:[{name:"keyword.control.anchor.regexp",match:"\\\\[bB]|\\^|\\$"},{match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>",captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"meta.group.regexp",begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.tsx",begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.tsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"},2:{name:"storage.type.internaldeclaration.tsx"},3:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=$)",contentName:"comment.line.double-slash.tsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=^)",contentName:"comment.line.double-slash.tsx"},directives:{name:"comment.line.triple-slash.directive.tsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",patterns:[{name:"meta.tag.tsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.tsx"},2:{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.tsx"}},patterns:[{name:"entity.other.attribute-name.directive.tsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.tsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:`(?x) ((@)(?:access|api)) \\s+ (private|protected|public) \\b`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}}},{match:`(?x) ((@)author) \\s+ ( [^@\\s<>*/] (?:[^@<>*/]|\\*[^/])* ) (?: \\s* (<) ([^>\\s]+) (>) )?`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:`(?x) ((@)borrows) \\s+ ((?:[^@\\s*/]|\\*[^/])+) # <that namepath> \\s+ (as) \\s+ # as ((?:[^@\\s*/]|\\*[^/])+) # <this namepath>`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{0:{name:"source.embedded.tsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}}},{match:`(?x) ((@)see) \\s+ (?: # URL ( (?=https?://) (?:[^\\s*]|\\*[^/])+ ) | # JSDoc namepath ( (?! # Avoid matching bare URIs (also acceptable as links) https?:// | # Avoid matching {@inline tags}; we match those below (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag} {@(?:link|linkcode|linkplain|tutorial)\\b ) # Matched namepath (?:[^@\\s*/]|\\*[^/])+ ) )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}}},{match:`(?x) ((@)template) \\s+ # One or more valid identifiers ( [A-Za-z_$] # First character: non-numeric word character [\\w$.\\[\\]]* # Rest of identifier (?: # Possible list of additional identifiers \\s* , \\s* [A-Za-z_$] [\\w$.\\[\\]]* )* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:`(?x) ( (@) (?:arg|argument|const|constant|member|namespace|param|var) ) \\s+ ( [A-Za-z_$] [\\w$.\\[\\]]* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:`(?x) (\\[)\\s* [\\w$]+ (?: (?:\\[\\])? # Foo[ ].bar properties within an array \\. # Foo.Bar namespaced parameter [\\w$]+ )* (?: \\s* (=) # [foo=bar] Default parameter value \\s* ( # The inner regexes are to stop the match early at */ and to not stop at escaped quotes (?> "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | # [foo="bar"] Double-quoted '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else )* ) )? \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.tsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:`(?x) ( (@) (?:define|enum|exception|export|extends|lends|implements|modifies |namespace|private|protected|returns?|satisfies|suppress|this|throws|type |yields?) ) \\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:`(?x) ( (@) (?:alias|augments|callback|constructs|emits|event|fires|exports? |extends|external|function|func|host|lends|listens|interface|memberof!? |method|module|mixes|mixin|name|requires|see|this|typedef|uses) ) \\s+ ( (?: [^{}@\\s*] | \\*[^/] )+ )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.tsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",end:"(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},endCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:`(?x) (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.tsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"},2:{name:"punctuation.definition.tag.begin.tsx"},3:{name:"entity.name.tag.namespace.tsx"},4:{name:"punctuation.separator.namespace.tsx"},5:{name:"entity.name.tag.tsx"},6:{name:"support.class.component.tsx"},7:{name:"punctuation.definition.tag.end.tsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},end:"(?=</)",contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-evaluated-code":{contentName:"meta.embedded.expression.tsx",begin:"\\{",end:"\\}",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tsx"}},endCaptures:{0:{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-entities":{patterns:[{name:"constant.character.entity.tsx",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{1:{name:"punctuation.definition.entity.tsx"},3:{name:"punctuation.definition.entity.tsx"}}}]},"jsx-tag-attributes":{name:"meta.tag.attributes.tsx",begin:"\\s+",end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:`(?x) \\s* (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))? ([_$[:alpha:]][-_$[:alnum:]]*) (?=\\s|=|/?>|/\\*|//)`,captures:{1:{name:"entity.other.attribute-name.namespace.tsx"},2:{name:"punctuation.separator.namespace.tsx"},3:{name:"entity.other.attribute-name.tsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.tsx",match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`},"jsx-string-double-quoted":{name:"string.quoted.double.tsx",begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.tsx",begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.tsx",match:"\\S+"}}};u();u();var r_e=Object.freeze({colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007ACC","checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editor.selectionHighlightBackground":"#ADD6FF26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#A6A6A6","list.activeSelectionIconForeground":"#FFF","list.dropBackground":"#383B3D","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","sideBarTitle.foreground":"#BBBBBB","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#ccc3","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"},displayName:"Dark Plus",name:"dark-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#DCDCAA",newOperator:"#C586C0",numberLiteral:"#b5cea8",stringLiteral:"#ce9178"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{scope:"variable.language",settings:{foreground:"#569cd6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],type:"dark"});u();var i_e=Object.freeze({colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007ACC","checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editor.selectionHighlightBackground":"#ADD6FF80","editorIndentGuide.activeBackground":"#939393","editorIndentGuide.background":"#D3D3D3","editorSuggestWidget.background":"#F3F3F3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6F6F6F","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},displayName:"Light Plus",name:"light-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#795E26",newOperator:"#AF00DB",numberLiteral:"#098658",stringLiteral:"#a31515"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000ff"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],type:"light"});u();var o_e=Object.freeze({colors:{"activityBar.background":"#272822","activityBar.foreground":"#f8f8f2","badge.background":"#75715E","badge.foreground":"#f8f8f2","button.background":"#75715E","debugToolBar.background":"#1e1f1c","diffEditor.insertedTextBackground":"#4b661680","diffEditor.removedTextBackground":"#90274A70","dropdown.background":"#414339","dropdown.listBackground":"#1e1f1c","editor.background":"#272822","editor.foreground":"#f8f8f2","editor.lineHighlightBackground":"#3e3d32","editor.selectionBackground":"#878b9180","editor.selectionHighlightBackground":"#575b6180","editor.wordHighlightBackground":"#4a4a7680","editor.wordHighlightStrongBackground":"#6a6a9680","editorCursor.foreground":"#f8f8f0","editorGroup.border":"#34352f","editorGroup.dropBackground":"#41433980","editorGroupHeader.tabsBackground":"#1e1f1c","editorHoverWidget.background":"#414339","editorHoverWidget.border":"#75715E","editorIndentGuide.activeBackground":"#767771","editorIndentGuide.background":"#464741","editorLineNumber.activeForeground":"#c2c2bf","editorLineNumber.foreground":"#90908a","editorSuggestWidget.background":"#272822","editorSuggestWidget.border":"#75715E","editorWhitespace.foreground":"#464741","editorWidget.background":"#1e1f1c",focusBorder:"#99947c","input.background":"#414339","inputOption.activeBorder":"#75715E","inputValidation.errorBackground":"#90274A","inputValidation.errorBorder":"#f92672","inputValidation.infoBackground":"#546190","inputValidation.infoBorder":"#819aff","inputValidation.warningBackground":"#848528","inputValidation.warningBorder":"#e2e22e","list.activeSelectionBackground":"#75715E","list.dropBackground":"#414339","list.highlightForeground":"#f8f8f2","list.hoverBackground":"#3e3d32","list.inactiveSelectionBackground":"#414339","menu.background":"#1e1f1c","menu.foreground":"#cccccc","minimap.selectionHighlight":"#878b9180","panel.border":"#414339","panelTitle.activeBorder":"#75715E","panelTitle.activeForeground":"#f8f8f2","panelTitle.inactiveForeground":"#75715E","peekView.border":"#75715E","peekViewEditor.background":"#272822","peekViewEditor.matchHighlightBackground":"#75715E","peekViewResult.background":"#1e1f1c","peekViewResult.matchHighlightBackground":"#75715E","peekViewResult.selectionBackground":"#414339","peekViewTitle.background":"#1e1f1c","pickerGroup.foreground":"#75715E","ports.iconRunningProcessForeground":"#ccccc7","progressBar.background":"#75715E","quickInputList.focusBackground":"#414339","selection.background":"#878b9180","settings.focusedRowBackground":"#4143395A","sideBar.background":"#1e1f1c","sideBarSectionHeader.background":"#272822","statusBar.background":"#414339","statusBar.debuggingBackground":"#75715E","statusBar.noFolderBackground":"#414339","statusBarItem.remoteBackground":"#AC6218","tab.border":"#1e1f1c","tab.inactiveBackground":"#34352f","tab.inactiveForeground":"#ccccc7","tab.lastPinnedBorder":"#414339","terminal.ansiBlack":"#333333","terminal.ansiBlue":"#6A7EC8","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightCyan":"#66D9EF","terminal.ansiBrightGreen":"#A6E22E","terminal.ansiBrightMagenta":"#AE81FF","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightWhite":"#f8f8f2","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiCyan":"#56ADBC","terminal.ansiGreen":"#86B42B","terminal.ansiMagenta":"#8C6BC8","terminal.ansiRed":"#C4265E","terminal.ansiWhite":"#e3e3dd","terminal.ansiYellow":"#B3B42B","titleBar.activeBackground":"#1e1f1c","widget.shadow":"#00000098"},displayName:"Monokai",name:"monokai",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#F8F8F2"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F2"}},{scope:"comment",settings:{foreground:"#88846f"}},{scope:"string",settings:{foreground:"#E6DB74"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded"],settings:{foreground:"#F92672"}},{scope:["meta.template.expression"],settings:{foreground:"#F8F8F2"}},{scope:"constant.numeric",settings:{foreground:"#AE81FF"}},{scope:"constant.language",settings:{foreground:"#AE81FF"}},{scope:"constant.character, constant.other",settings:{foreground:"#AE81FF"}},{scope:"variable",settings:{fontStyle:"",foreground:"#F8F8F2"}},{scope:"keyword",settings:{foreground:"#F92672"}},{scope:"storage",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"storage.type",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",settings:{fontStyle:"underline",foreground:"#A6E22E"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"italic underline",foreground:"#A6E22E"}},{scope:"entity.name.function",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"variable.parameter",settings:{fontStyle:"italic",foreground:"#FD971F"}},{scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"entity.other.attribute-name",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"support.function",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.constant",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.type, support.class",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"support.other.variable",settings:{fontStyle:""}},{scope:"invalid",settings:{fontStyle:"",foreground:"#F44747"}},{scope:"invalid.deprecated",settings:{foreground:"#F44747"}},{scope:"meta.structure.dictionary.json string.quoted.double.json",settings:{foreground:"#CFCFC2"}},{scope:"meta.diff, meta.diff.header",settings:{foreground:"#75715E"}},{scope:"markup.deleted",settings:{foreground:"#F92672"}},{scope:"markup.inserted",settings:{foreground:"#A6E22E"}},{scope:"markup.changed",settings:{foreground:"#E6DB74"}},{scope:"constant.numeric.line-number.find-in-files - match",settings:{foreground:"#AE81FFA0"}},{scope:"entity.name.filename.find-in-files",settings:{foreground:"#E6DB74"}},{scope:"markup.quote",settings:{foreground:"#F92672"}},{scope:"markup.list",settings:{foreground:"#E6DB74"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#66D9EF"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#FD971F"}},{scope:"markup.heading",settings:{foreground:"#A6E22E"}},{scope:"markup.heading.setext",settings:{fontStyle:"bold",foreground:"#A6E22E"}},{scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#75715E"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#E6DB74"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{foreground:"#f8f8f2"}},{scope:["punctuation.definition.list.begin.markdown"],settings:{foreground:"#A6E22E"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{scope:"variable.language",settings:{foreground:"#FD971F"}}],type:"dark"});u();var s_e=Object.freeze({colors:{"activityBar.background":"#003847","badge.background":"#047aa6","button.background":"#2AA19899","debugExceptionWidget.background":"#00212B","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#00212B","dropdown.background":"#00212B","dropdown.border":"#2AA19899","editor.background":"#002B36","editor.foreground":"#839496","editor.lineHighlightBackground":"#073642","editor.selectionBackground":"#274642","editor.selectionHighlightBackground":"#005A6FAA","editor.wordHighlightBackground":"#004454AA","editor.wordHighlightStrongBackground":"#005A6FAA","editorBracketHighlight.foreground1":"#cdcdcdff","editorBracketHighlight.foreground2":"#b58900ff","editorBracketHighlight.foreground3":"#d33682ff","editorCursor.foreground":"#D30102","editorGroup.border":"#00212B","editorGroup.dropBackground":"#2AA19844","editorGroupHeader.tabsBackground":"#004052","editorHoverWidget.background":"#004052","editorIndentGuide.activeBackground":"#C3E1E180","editorIndentGuide.background":"#93A1A180","editorLineNumber.activeForeground":"#949494","editorMarkerNavigationError.background":"#AB395B","editorMarkerNavigationWarning.background":"#5B7E7A","editorWhitespace.foreground":"#93A1A180","editorWidget.background":"#00212B",errorForeground:"#ffeaea",focusBorder:"#2AA19899","input.background":"#003847","input.foreground":"#93A1A1","input.placeholderForeground":"#93A1A1AA","inputOption.activeBorder":"#2AA19899","inputValidation.errorBackground":"#571b26","inputValidation.errorBorder":"#a92049","inputValidation.infoBackground":"#052730","inputValidation.infoBorder":"#363b5f","inputValidation.warningBackground":"#5d5938","inputValidation.warningBorder":"#9d8a5e","list.activeSelectionBackground":"#005A6F","list.dropBackground":"#00445488","list.highlightForeground":"#1ebcc5","list.hoverBackground":"#004454AA","list.inactiveSelectionBackground":"#00445488","minimap.selectionHighlight":"#274642","panel.border":"#2b2b4a","peekView.border":"#2b2b4a","peekViewEditor.background":"#10192c","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#00212B","peekViewTitle.background":"#00212B","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#047aa6","quickInputList.focusBackground":"#005A6F","selection.background":"#2AA19899","sideBar.background":"#00212B","sideBarTitle.foreground":"#93A1A1","statusBar.background":"#00212B","statusBar.debuggingBackground":"#00212B","statusBar.foreground":"#93A1A1","statusBar.noFolderBackground":"#00212B","statusBarItem.prominentBackground":"#003847","statusBarItem.prominentHoverBackground":"#003847","statusBarItem.remoteBackground":"#2AA19899","tab.activeBackground":"#002B37","tab.activeForeground":"#d6dbdb","tab.border":"#003847","tab.inactiveBackground":"#004052","tab.inactiveForeground":"#93A1A1","tab.lastPinnedBorder":"#2AA19844","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","titleBar.activeBackground":"#002C39"},displayName:"Solarized Dark",name:"solarized-dark",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#839496"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#839496"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#586E75"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#93A1A1"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#586E75"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"dark"});u();var c_e=Object.freeze({colors:{"activityBar.background":"#DDD6C1","activityBar.foreground":"#584c27","activityBarBadge.background":"#B58900","badge.background":"#B58900AA","button.background":"#AC9D57","debugExceptionWidget.background":"#DDD6C1","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#DDD6C1","dropdown.background":"#EEE8D5","dropdown.border":"#D3AF86","editor.background":"#FDF6E3","editor.foreground":"#657B83","editor.lineHighlightBackground":"#EEE8D5","editor.selectionBackground":"#EEE8D5","editorCursor.foreground":"#657B83","editorGroup.border":"#DDD6C1","editorGroup.dropBackground":"#DDD6C1AA","editorGroupHeader.tabsBackground":"#D9D2C2","editorHoverWidget.background":"#CCC4B0","editorIndentGuide.activeBackground":"#081E2580","editorIndentGuide.background":"#586E7580","editorLineNumber.activeForeground":"#567983","editorWhitespace.foreground":"#586E7580","editorWidget.background":"#EEE8D5","extensionButton.prominentBackground":"#b58900","extensionButton.prominentHoverBackground":"#584c27aa",focusBorder:"#b49471","input.background":"#DDD6C1","input.foreground":"#586E75","input.placeholderForeground":"#586E75AA","inputOption.activeBorder":"#D3AF86","list.activeSelectionBackground":"#DFCA88","list.activeSelectionForeground":"#6C6C6C","list.highlightForeground":"#B58900","list.hoverBackground":"#DFCA8844","list.inactiveSelectionBackground":"#D1CBB8","minimap.selectionHighlight":"#EEE8D5","notebook.cellEditorBackground":"#F7F0E0","panel.border":"#DDD6C1","peekView.border":"#B58900","peekViewEditor.background":"#FFFBF2","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#EEE8D5","peekViewTitle.background":"#EEE8D5","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#2AA19899","progressBar.background":"#B58900","quickInputList.focusBackground":"#DFCA8866","selection.background":"#878b9180","sideBar.background":"#EEE8D5","sideBarTitle.foreground":"#586E75","statusBar.background":"#EEE8D5","statusBar.debuggingBackground":"#EEE8D5","statusBar.foreground":"#586E75","statusBar.noFolderBackground":"#EEE8D5","statusBarItem.prominentBackground":"#DDD6C1","statusBarItem.prominentHoverBackground":"#DDD6C199","statusBarItem.remoteBackground":"#AC9D57","tab.activeBackground":"#FDF6E3","tab.activeModifiedBorder":"#cb4b16","tab.border":"#DDD6C1","tab.inactiveBackground":"#D3CBB7","tab.inactiveForeground":"#586E75","tab.lastPinnedBorder":"#FDF6E3","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","terminal.background":"#FDF6E3","titleBar.activeBackground":"#EEE8D5","walkThrough.embeddedEditorBackground":"#00000014"},displayName:"Solarized Light",name:"solarized-light",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#657B83"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#657B83"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#93A1A1"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#586E75"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#93A1A1"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"light"});u();var l_e={type:"dark",colors:{"activityBar.background":"#051336","badge.background":"#0063a5","button.background":"#2b3c5d","debugExceptionWidget.background":"#051336","debugExceptionWidget.border":"#ab395b","debugToolBar.background":"#051336","diffEditor.insertedTextBackground":"#31958a55","diffEditor.removedTextBackground":"#892f4688","dropdown.background":"#181f2f","editor.background":"#000c18","editor.findMatchHighlightBackground":"#eeeeee44","editor.foreground":"#6688cc","editor.lineHighlightBackground":"#082050","editor.selectionBackground":"#770811","editorCursor.foreground":"#ddbb88","editorGroup.border":"#2b2b4a","editorGroup.dropBackground":"#25375daa","editorGroupHeader.tabsBackground":"#1c1c2a","editorHoverWidget.background":"#000c38","editorHoverWidget.border":"#004c18","editorIndentGuide.activeBackground":"#204972","editorIndentGuide.background":"#002952","editorLineNumber.activeForeground":"#80a2c2","editorLineNumber.foreground":"#406385","editorLink.activeForeground":"#0063a5","editorMarkerNavigation.background":"#060621","editorMarkerNavigationError.background":"#ab395b","editorMarkerNavigationWarning.background":"#5b7e7a","editorWhitespace.foreground":"#103050","editorWidget.background":"#262641","extensionButton.prominentBackground":"#5f8b3b","extensionButton.prominentHoverBackground":"#5f8b3bbb",focusBorder:"#596f99","input.background":"#181f2f","inputOption.activeBorder":"#1d4a87","inputValidation.errorBackground":"#a22d44","inputValidation.errorBorder":"#ab395b","inputValidation.infoBackground":"#051336","inputValidation.infoBorder":"#384078","inputValidation.warningBackground":"#5b7e7a","inputValidation.warningBorder":"#5b7e7a","list.activeSelectionBackground":"#08286b","list.dropBackground":"#041d52","list.highlightForeground":"#0063a5","list.hoverBackground":"#061940","list.inactiveSelectionBackground":"#152037","minimap.selectionHighlight":"#750000","panel.border":"#2b2b4a","peekView.border":"#2b2b4a","peekViewEditor.background":"#10192c","peekViewEditor.matchHighlightBackground":"#eeeeee33","peekViewResult.background":"#060621","peekViewResult.matchHighlightBackground":"#eeeeee44","peekViewTitle.background":"#10192c","pickerGroup.border":"#596f99","pickerGroup.foreground":"#596f99","ports.iconRunningProcessForeground":"#80a2c2","progressBar.background":"#0063a5","quickInputList.focusBackground":"#08286b","scrollbar.shadow":"#515e91aa","scrollbarSlider.activeBackground":"#3b3f5188","scrollbarSlider.background":"#1f2230aa","scrollbarSlider.hoverBackground":"#3b3f5188","sideBar.background":"#060621","sideBarSectionHeader.background":"#10192c","statusBar.background":"#10192c","statusBar.debuggingBackground":"#10192c","statusBar.noFolderBackground":"#10192c","statusBarItem.prominentBackground":"#0063a5","statusBarItem.prominentHoverBackground":"#0063a5dd","statusBarItem.remoteBackground":"#0063a5","tab.border":"#2b2b4a","tab.inactiveBackground":"#10192c","tab.lastPinnedBorder":"#2b3c5d","terminal.ansiBlack":"#111111","terminal.ansiBlue":"#bbdaff","terminal.ansiBrightBlack":"#333333","terminal.ansiBrightBlue":"#80baff","terminal.ansiBrightCyan":"#78ffff","terminal.ansiBrightGreen":"#b8f171","terminal.ansiBrightMagenta":"#d778ff","terminal.ansiBrightRed":"#ff7882","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffe580","terminal.ansiCyan":"#99ffff","terminal.ansiGreen":"#d1f1a9","terminal.ansiMagenta":"#ebbbff","terminal.ansiRed":"#ff9da4","terminal.ansiWhite":"#cccccc","terminal.ansiYellow":"#ffeead","titleBar.activeBackground":"#10192c"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#6688CC"}},{scope:"comment",settings:{foreground:"#384887"}},{scope:"string",settings:{foreground:"#22AA44"}},{scope:"constant.numeric",settings:{foreground:"#F280D0"}},{scope:"constant.language",settings:{foreground:"#F280D0"}},{scope:["constant.character","constant.other"],settings:{foreground:"#F280D0"}},{scope:"variable",settings:{fontStyle:""}},{scope:"keyword",settings:{foreground:"#225588"}},{scope:"storage",settings:{foreground:"#225588",fontStyle:""}},{scope:"storage.type",settings:{foreground:"#9966B8",fontStyle:"italic"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{foreground:"#FFEEBB",fontStyle:"underline"}},{scope:"entity.other.inherited-class",settings:{foreground:"#DDBB88",fontStyle:"italic underline"}},{scope:"entity.name.function",settings:{foreground:"#DDBB88",fontStyle:""}},{scope:"variable.parameter",settings:{foreground:"#2277FF",fontStyle:"italic"}},{scope:"entity.name.tag",settings:{foreground:"#225588",fontStyle:""}},{scope:"entity.other.attribute-name",settings:{foreground:"#DDBB88",fontStyle:""}},{scope:"support.function",settings:{foreground:"#9966B8",fontStyle:""}},{scope:"support.constant",settings:{foreground:"#9966B8",fontStyle:""}},{scope:["support.type","support.class"],settings:{foreground:"#9966B8",fontStyle:"italic"}},{scope:"support.other.variable",settings:{fontStyle:""}},{scope:"invalid",settings:{foreground:"#A22D44",fontStyle:""}},{scope:"invalid.deprecated",settings:{foreground:"#A22D44"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#E0EDDD",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#DC322F",fontStyle:""}},{scope:"markup.changed",settings:{foreground:"#CB4B16",fontStyle:""}},{scope:"markup.inserted",settings:{foreground:"#219186"}},{scope:"markup.quote",settings:{foreground:"#22AA44"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#22AA44"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#9966B8",fontStyle:""}},{scope:["markup.heading","markup.heading.setext"],settings:{foreground:"#6688CC",fontStyle:"bold"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var OJ={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","editor.background":"#000000","editor.foreground":"#ffffff","editor.selectionBackground":"#ffffff","editorIndentGuide.activeBackground1":"#ffffff","editorIndentGuide.background1":"#ffffff","editorWhitespace.foreground":"#7c7c7c","ports.iconRunningProcessForeground":"#ffffff","selection.background":"#008000","sideBarTitle.foreground":"#ffffff","statusBarItem.remoteBackground":"#00000000"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#FFFFFF"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#7CA668"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#B46695"}},{scope:"constant.character",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#6796E6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#808080"}},{scope:"meta.preprocessor",settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:"storage.modifier",settings:{foreground:"#569CD6"}},{scope:"string",settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#FFFFFF"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#D4D4D4"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.logical.python"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:"support.function.git-rebase",settings:{foreground:"#D4D4D4"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language.this",settings:{foreground:"#569CD6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.name.scope-resolution","entity.name.class","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable"],settings:{foreground:"#9CDCFE"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:"meta.resultLinePrefix.contextLinePrefix.search",settings:{foreground:"#CBEDCB"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#008000"}},{scope:"token.error-token",settings:{foreground:"#FF0000"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var UJ={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","activityBar.activeBorder":"#0078d4","activityBar.background":"#181818","activityBar.border":"#2b2b2b","activityBar.foreground":"#d7d7d7","activityBar.inactiveForeground":"#868686","activityBarBadge.background":"#0078d4","activityBarBadge.foreground":"#ffffff","badge.background":"#616161","badge.foreground":"#f8f8f8","button.background":"#0078d4","button.border":"#ffffff12","button.foreground":"#ffffff","button.hoverBackground":"#026ec1","button.secondaryBackground":"#313131","button.secondaryForeground":"#cccccc","button.secondaryHoverBackground":"#3c3c3c","chat.slashCommandBackground":"#34414b","chat.slashCommandForeground":"#40a6ff","checkbox.background":"#313131","checkbox.border":"#3c3c3c","debugToolBar.background":"#181818",descriptionForeground:"#9d9d9d","dropdown.background":"#313131","dropdown.border":"#3c3c3c","dropdown.foreground":"#cccccc","dropdown.listBackground":"#1f1f1f","editor.background":"#1f1f1f","editor.findMatchBackground":"#9e6a03","editor.foreground":"#cccccc","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorGroup.border":"#ffffff17","editorGroupHeader.tabsBackground":"#181818","editorGroupHeader.tabsBorder":"#2b2b2b","editorGutter.addedBackground":"#2ea043","editorGutter.deletedBackground":"#f85149","editorGutter.modifiedBackground":"#0078d4","editorIndentGuide.activeBackground1":"#707070","editorIndentGuide.background1":"#404040","editorLineNumber.activeForeground":"#cccccc","editorLineNumber.foreground":"#6e7681","editorOverviewRuler.border":"#010409","editorWidget.background":"#202020",errorForeground:"#f85149",focusBorder:"#0078d4",foreground:"#cccccc","icon.foreground":"#cccccc","input.background":"#313131","input.border":"#3c3c3c","input.foreground":"#cccccc","input.placeholderForeground":"#818181","inputOption.activeBackground":"#2489db82","inputOption.activeBorder":"#2488db","keybindingLabel.foreground":"#cccccc","list.activeSelectionIconForeground":"#ffffff","list.dropBackground":"#383b3d","menu.background":"#1f1f1f","menu.border":"#454545","menu.foreground":"#cccccc","menu.separatorBackground":"#454545","notificationCenterHeader.background":"#1f1f1f","notificationCenterHeader.foreground":"#cccccc","notifications.background":"#1f1f1f","notifications.border":"#2b2b2b","notifications.foreground":"#cccccc","panel.background":"#181818","panel.border":"#2b2b2b","panelInput.border":"#2b2b2b","panelTitle.activeBorder":"#0078d4","panelTitle.activeForeground":"#cccccc","panelTitle.inactiveForeground":"#9d9d9d","peekViewEditor.background":"#1f1f1f","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.background":"#1f1f1f","peekViewResult.matchHighlightBackground":"#bb800966","pickerGroup.border":"#3c3c3c","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#0078d4","quickInput.background":"#222222","quickInput.foreground":"#cccccc","settings.dropdownBackground":"#313131","settings.dropdownBorder":"#3c3c3c","settings.headerForeground":"#ffffff","settings.modifiedItemIndicator":"#bb800966","sideBar.background":"#181818","sideBar.border":"#2b2b2b","sideBar.foreground":"#cccccc","sideBarSectionHeader.background":"#181818","sideBarSectionHeader.border":"#2b2b2b","sideBarSectionHeader.foreground":"#cccccc","sideBarTitle.foreground":"#cccccc","statusBar.background":"#181818","statusBar.border":"#2b2b2b","statusBar.debuggingBackground":"#0078d4","statusBar.debuggingForeground":"#ffffff","statusBar.focusBorder":"#0078d4","statusBar.foreground":"#cccccc","statusBar.noFolderBackground":"#1f1f1f","statusBarItem.focusBorder":"#0078d4","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteBackground":"#0078d4","statusBarItem.remoteForeground":"#ffffff","tab.activeBackground":"#1f1f1f","tab.activeBorder":"#1f1f1f","tab.activeBorderTop":"#0078d4","tab.activeForeground":"#ffffff","tab.border":"#2b2b2b","tab.hoverBackground":"#1f1f1f","tab.inactiveBackground":"#181818","tab.inactiveForeground":"#9d9d9d","tab.lastPinnedBorder":"#cccccc33","tab.unfocusedActiveBorder":"#1f1f1f","tab.unfocusedActiveBorderTop":"#2b2b2b","tab.unfocusedHoverBackground":"#1f1f1f","terminal.foreground":"#cccccc","terminal.inactiveSelectionBackground":"#3a3d41","terminal.tab.activeBorder":"#0078d4","textBlockQuote.background":"#2b2b2b","textBlockQuote.border":"#616161","textCodeBlock.background":"#2b2b2b","textLink.activeForeground":"#4daafc","textLink.foreground":"#4daafc","textPreformat.background":"#3c3c3c","textPreformat.foreground":"#d0d0d0","textSeparator.foreground":"#21262d","titleBar.activeBackground":"#181818","titleBar.activeForeground":"#cccccc","titleBar.border":"#2b2b2b","titleBar.inactiveBackground":"#1f1f1f","titleBar.inactiveForeground":"#9d9d9d","welcomePage.progress.foreground":"#0078d4","welcomePage.tileBackground":"#2b2b2b","widget.border":"#313131"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796E6"}},{scope:"markup.inline.raw",settings:{foreground:"#CE9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"meta.diff.header",settings:{foreground:"#569CD6"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569CD6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#D4D4D4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9CDCFE"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569CD6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9CDCFE"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language",settings:{foreground:"#569CD6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#D16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#D7BA7D"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569CD6"}},{scope:"constant.character.escape",settings:{foreground:"#D7BA7D"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var A_e={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#221a0f","activityBar.foreground":"#d3af86","badge.background":"#7f5d38","button.background":"#6e583b","dropdown.background":"#51412c","editor.background":"#221a0f","editor.foreground":"#d3af86","editor.lineHighlightBackground":"#5e452b","editor.selectionBackground":"#84613daa","editorCursor.foreground":"#d3af86","editorGroupHeader.tabsBackground":"#131510","editorHoverWidget.background":"#221a14","editorLineNumber.activeForeground":"#adadad","editorWhitespace.foreground":"#a57a4c","editorWidget.background":"#131510",focusBorder:"#a57a4c","input.background":"#51412c","inputOption.activeBorder":"#a57a4c","inputValidation.errorBackground":"#5f0d0d","inputValidation.errorBorder":"#9d2f23","inputValidation.infoBackground":"#2b2a42","inputValidation.infoBorder":"#1b60a5","inputValidation.warningBackground":"#51412c","list.activeSelectionBackground":"#7c5021","list.highlightForeground":"#e3b583","list.hoverBackground":"#7c502166","list.inactiveSelectionBackground":"#645342","menu.background":"#362712","menu.foreground":"#cccccc","minimap.selectionHighlight":"#84613daa","peekView.border":"#5e452b","peekViewEditor.background":"#221a14","peekViewEditor.matchHighlightBackground":"#84613daa","peekViewResult.background":"#362712","peekViewTitle.background":"#362712","pickerGroup.border":"#e3b583","pickerGroup.foreground":"#e3b583","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#7f5d38","quickInputList.focusBackground":"#7c5021aa","selection.background":"#84613daa","sideBar.background":"#362712","statusBar.background":"#423523","statusBar.debuggingBackground":"#423523","statusBar.noFolderBackground":"#423523","statusBarItem.remoteBackground":"#6e583b","tab.inactiveBackground":"#131510","tab.lastPinnedBorder":"#51412c","titleBar.activeBackground":"#423523"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D3AF86"}},{scope:"variable.parameter.function",settings:{foreground:"#D3AF86"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#A57A4C"}},{scope:["punctuation.definition.string","punctuation.definition.variable","punctuation.definition.string","punctuation.definition.parameters","punctuation.definition.string","punctuation.definition.array"],settings:{foreground:"#D3AF86"}},{scope:"none",settings:{foreground:"#D3AF86"}},{scope:"keyword.operator",settings:{foreground:"#D3AF86"}},{scope:["keyword","keyword.control","keyword.operator.new.cpp","keyword.operator.delete.cpp","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#98676A"}},{scope:"variable",settings:{foreground:"#DC3958"}},{scope:["entity.name.function","meta.require","support.function.any-method"],settings:{foreground:"#8AB1B0"}},{scope:["support.class","entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{foreground:"#F06431"}},{scope:"keyword.other.special-method",settings:{foreground:"#8AB1B0"}},{scope:"storage",settings:{foreground:"#98676A"}},{scope:"support.function",settings:{foreground:"#7E602C"}},{scope:["string","constant.other.symbol","entity.other.inherited-class"],settings:{foreground:"#889B4A"}},{scope:"constant.numeric",settings:{foreground:"#F79A32"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:"constant",settings:{foreground:"#F79A32"}},{scope:"entity.name.tag",settings:{foreground:"#DC3958"}},{scope:"entity.other.attribute-name",settings:{foreground:"#F79A32"}},{scope:["entity.other.attribute-name.id","punctuation.definition.entity"],settings:{foreground:"#8AB1B0"}},{scope:"meta.selector",settings:{foreground:"#98676A"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:["markup.heading","markup.heading.setext","punctuation.definition.heading","entity.name.section"],settings:{foreground:"#8AB1B0",fontStyle:"bold"}},{scope:"keyword.other.unit",settings:{foreground:"#F79A32"}},{scope:["markup.bold","punctuation.definition.bold"],settings:{foreground:"#F06431",fontStyle:"bold"}},{scope:["markup.italic","punctuation.definition.italic"],settings:{foreground:"#98676A",fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#889B4A"}},{scope:"string.other.link",settings:{foreground:"#DC3958"}},{scope:"meta.link",settings:{foreground:"#F79A32"}},{scope:"markup.list",settings:{foreground:"#DC3958"}},{scope:"markup.quote",settings:{foreground:"#F79A32"}},{scope:"meta.separator",settings:{foreground:"#D3AF86"}},{scope:"markup.inserted",settings:{foreground:"#889B4A"}},{scope:"markup.deleted",settings:{foreground:"#DC3958"}},{scope:"markup.changed",settings:{foreground:"#98676A"}},{scope:"constant.other.color",settings:{foreground:"#7E602C"}},{scope:"string.regexp",settings:{foreground:"#7E602C"}},{scope:"constant.character.escape",settings:{foreground:"#7E602C"}},{scope:["punctuation.section.embedded","variable.interpolation"],settings:{foreground:"#088649"}},{scope:"invalid",settings:{foreground:"#DC3958"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var qJ={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","variable.legacy.builtin.python"],settings:{foreground:"#292929"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#062F4A"}},{scope:"comment",settings:{foreground:"#515151"}},{scope:"constant.language",settings:{foreground:"#0F4A85"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#096D48"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#0F4A85"}},{scope:"entity.name.selector",settings:{foreground:"#0F4A85"}},{scope:"entity.other.attribute-name",settings:{foreground:"#264F78"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#0F4A85"}},{scope:"invalid",settings:{foreground:"#B5200D"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#0F4A85",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#096D48"}},{scope:"markup.deleted",settings:{foreground:"#5A5A5A"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#0F4A85"}},{scope:"punctuation.definition.tag",settings:{foreground:"#0F4A85"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0F4A85"}},{scope:"meta.preprocessor.string",settings:{foreground:"#B5200D"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#096D48"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0F4A85"}},{scope:"storage.type",settings:{foreground:"#0F4A85"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0F4A85"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#0F4A85"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0F4A85"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0F4A85"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#264F78"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0F4A85"}},{scope:"keyword.control",settings:{foreground:"#0F4A85"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0F4A85"}},{scope:"keyword.other.unit",settings:{foreground:"#096D48"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#0F4A85"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#096D48"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0F4A85"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#5E2CBC"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#185E73"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#185E73"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#B5200D"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#02715D"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#D16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811F3F"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:"constant.character",settings:{foreground:"#0F4A85"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}}]};u();var jJ={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd","activityBar.activeBorder":"#005fb8","activityBar.background":"#f8f8f8","activityBar.border":"#e5e5e5","activityBar.foreground":"#1f1f1f","activityBar.inactiveForeground":"#616161","activityBarBadge.background":"#005fb8","activityBarBadge.foreground":"#ffffff","badge.background":"#cccccc","badge.foreground":"#3b3b3b","button.background":"#005fb8","button.border":"#0000001a","button.foreground":"#ffffff","button.hoverBackground":"#0258a8","button.secondaryBackground":"#e5e5e5","button.secondaryForeground":"#3b3b3b","button.secondaryHoverBackground":"#cccccc","chat.slashCommandBackground":"#d2ecff","chat.slashCommandForeground":"#306ca2","checkbox.background":"#f8f8f8","checkbox.border":"#cecece",descriptionForeground:"#3b3b3b","dropdown.background":"#ffffff","dropdown.border":"#cecece","dropdown.foreground":"#3b3b3b","dropdown.listBackground":"#ffffff","editor.background":"#ffffff","editor.foreground":"#3b3b3b","editor.inactiveSelectionBackground":"#e5ebf1","editor.selectionHighlightBackground":"#add6ff80","editorGroup.border":"#e5e5e5","editorGroupHeader.tabsBackground":"#f8f8f8","editorGroupHeader.tabsBorder":"#e5e5e5","editorGutter.addedBackground":"#2ea043","editorGutter.deletedBackground":"#f85149","editorGutter.modifiedBackground":"#005fb8","editorIndentGuide.activeBackground1":"#939393","editorIndentGuide.background1":"#d3d3d3","editorLineNumber.activeForeground":"#171184","editorLineNumber.foreground":"#6e7681","editorOverviewRuler.border":"#e5e5e5","editorSuggestWidget.background":"#f8f8f8","editorWidget.background":"#f8f8f8",errorForeground:"#f85149",focusBorder:"#005fb8",foreground:"#3b3b3b","icon.foreground":"#3b3b3b","input.background":"#ffffff","input.border":"#cecece","input.foreground":"#3b3b3b","input.placeholderForeground":"#868686","inputOption.activeBackground":"#bed6ed","inputOption.activeBorder":"#005fb8","inputOption.activeForeground":"#000000","keybindingLabel.foreground":"#3b3b3b","list.activeSelectionBackground":"#e8e8e8","list.activeSelectionForeground":"#000000","list.activeSelectionIconForeground":"#000000","list.focusAndSelectionOutline":"#005fb8","list.hoverBackground":"#f2f2f2","menu.border":"#cecece","notebook.cellBorderColor":"#e5e5e5","notebook.selectedCellBackground":"#c8ddf150","notificationCenterHeader.background":"#ffffff","notificationCenterHeader.foreground":"#3b3b3b","notifications.background":"#ffffff","notifications.border":"#e5e5e5","notifications.foreground":"#3b3b3b","panel.background":"#f8f8f8","panel.border":"#e5e5e5","panelInput.border":"#e5e5e5","panelTitle.activeBorder":"#005fb8","panelTitle.activeForeground":"#3b3b3b","panelTitle.inactiveForeground":"#3b3b3b","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.background":"#ffffff","peekViewResult.matchHighlightBackground":"#bb800966","pickerGroup.border":"#e5e5e5","pickerGroup.foreground":"#8b949e","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#005fb8","quickInput.background":"#f8f8f8","quickInput.foreground":"#3b3b3b","searchEditor.textInputBorder":"#cecece","settings.dropdownBackground":"#ffffff","settings.dropdownBorder":"#cecece","settings.headerForeground":"#1f1f1f","settings.modifiedItemIndicator":"#bb800966","settings.numberInputBorder":"#cecece","settings.textInputBorder":"#cecece","sideBar.background":"#f8f8f8","sideBar.border":"#e5e5e5","sideBar.foreground":"#3b3b3b","sideBarSectionHeader.background":"#f8f8f8","sideBarSectionHeader.border":"#e5e5e5","sideBarSectionHeader.foreground":"#3b3b3b","sideBarTitle.foreground":"#3b3b3b","statusBar.background":"#f8f8f8","statusBar.border":"#e5e5e5","statusBar.debuggingBackground":"#fd716c","statusBar.debuggingForeground":"#000000","statusBar.focusBorder":"#005fb8","statusBar.foreground":"#3b3b3b","statusBar.noFolderBackground":"#f8f8f8","statusBarItem.errorBackground":"#c72e0f","statusBarItem.focusBorder":"#005fb8","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteBackground":"#005fb8","statusBarItem.remoteForeground":"#ffffff","tab.activeBackground":"#ffffff","tab.activeBorder":"#f8f8f8","tab.activeBorderTop":"#005fb8","tab.activeForeground":"#3b3b3b","tab.border":"#e5e5e5","tab.hoverBackground":"#ffffff","tab.inactiveBackground":"#f8f8f8","tab.inactiveForeground":"#868686","tab.lastPinnedBorder":"#d4d4d4","tab.unfocusedActiveBorder":"#f8f8f8","tab.unfocusedActiveBorderTop":"#e5e5e5","tab.unfocusedHoverBackground":"#f8f8f8","terminal.foreground":"#3b3b3b","terminal.inactiveSelectionBackground":"#e5ebf1","terminal.tab.activeBorder":"#005fb8","terminalCursor.foreground":"#005fb8","textBlockQuote.background":"#f8f8f8","textBlockQuote.border":"#e5e5e5","textCodeBlock.background":"#f8f8f8","textLink.activeForeground":"#005fb8","textLink.foreground":"#005fb8","textPreformat.background":"#0000001f","textPreformat.foreground":"#3b3b3b","textSeparator.foreground":"#21262d","titleBar.activeBackground":"#f8f8f8","titleBar.activeForeground":"#1e1e1e","titleBar.border":"#e5e5e5","titleBar.inactiveBackground":"#f8f8f8","titleBar.inactiveForeground":"#8b949e","welcomePage.tileBackground":"#f3f3f3","widget.border":"#e5e5e5"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000FF"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#E50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#800000",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#A31515"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000FF"}},{scope:"meta.preprocessor.string",settings:{foreground:"#A31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0000FF"}},{scope:"storage.type",settings:{foreground:"#0000FF"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000FF"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#A31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000FF"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000FF"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#E50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0000FF"}},{scope:"keyword.control",settings:{foreground:"#0000FF"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000FF"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000FF"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267F99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267F99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#D16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811F3F"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000FF"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};u();var u_e={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#353535","activityBar.foreground":"#ffffff","activityBarBadge.background":"#3655b5","button.background":"#565656","dropdown.background":"#525252","editor.background":"#1e1e1e","editor.foreground":"#c5c8c6","editor.lineHighlightBackground":"#303030","editor.selectionBackground":"#676b7180","editor.selectionHighlightBackground":"#575b6180","editor.wordHighlightBackground":"#4747a180","editor.wordHighlightStrongBackground":"#6767ce80","editorCursor.foreground":"#c07020","editorGroupHeader.tabsBackground":"#282828","editorIndentGuide.activeBackground":"#707057","editorIndentGuide.background":"#505037","editorLineNumber.activeForeground":"#949494","editorWhitespace.foreground":"#505037",focusBorder:"#3655b5","inputOption.activeBorder":"#3655b5","list.activeSelectionBackground":"#707070","list.highlightForeground":"#e58520","list.hoverBackground":"#444444","list.inactiveSelectionBackground":"#4e4e4e","menu.background":"#272727","menu.foreground":"#cccccc","minimap.selectionHighlight":"#676b7180","panelTitle.activeForeground":"#ffffff","peekView.border":"#3655b5","pickerGroup.foreground":"#b0b0b0","ports.iconRunningProcessForeground":"#cccccc","quickInputList.focusBackground":"#707070","sideBar.background":"#272727","sideBarSectionHeader.background":"#505050","statusBar.background":"#505050","statusBar.debuggingBackground":"#505050","statusBar.noFolderBackground":"#505050","statusBarItem.remoteBackground":"#3655b5","tab.border":"#303030","tab.inactiveBackground":"#404040","tab.inactiveForeground":"#d8d8d8","tab.lastPinnedBorder":"#505050","terminal.ansiBlack":"#1e1e1e","terminal.ansiBlue":"#6a7ec8","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightCyan":"#66d9ef","terminal.ansiBrightGreen":"#a6e22e","terminal.ansiBrightMagenta":"#ae81ff","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightWhite":"#f8f8f2","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiCyan":"#56adbc","terminal.ansiGreen":"#86b42b","terminal.ansiMagenta":"#8c6bc8","terminal.ansiRed":"#c4265e","terminal.ansiWhite":"#e3e3dd","terminal.ansiYellow":"#b3b42b","terminal.inactiveSelectionBackground":"#676b7140","titleBar.activeBackground":"#505050"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","variable.legacy.builtin.python"],settings:{foreground:"#C5C8C6"}},{scope:"comment",settings:{foreground:"#9A9B99",fontStyle:""}},{scope:"string",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"string source",settings:{foreground:"#D08442",fontStyle:""}},{scope:"constant.numeric",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"constant.language",settings:{foreground:"#408080",fontStyle:""}},{scope:"constant.character, constant.other",settings:{foreground:"#8080FF",fontStyle:""}},{scope:"keyword",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"support",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"storage",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution",settings:{foreground:"#9B0000",fontStyle:""}},{scope:"entity.other.inherited-class",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"entity.name.function",settings:{foreground:"#CE6700",fontStyle:""}},{scope:"variable.parameter",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"entity.name.tag",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.other.attribute-name",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"support.function",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"keyword",settings:{foreground:"#676867",fontStyle:""}},{scope:"variable.other, variable.js, punctuation.separator.variable",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html",settings:{foreground:"#008200",fontStyle:""}},{scope:"invalid",settings:{foreground:"#FF0B00",fontStyle:""}},{scope:"variable.other.php, variable.other.normal",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.function-call.object",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"variable.other.property",settings:{foreground:"#9872A2",fontStyle:""}},{scope:["keyword.control","keyword.operator.new.cpp","keyword.operator.delete.cpp","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#9872A2",fontStyle:""}},{scope:"meta.tag",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"entity.name.tag",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.doctype, meta.tag.sgml-declaration.doctype, meta.tag.sgml.doctype",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"meta.tag.inline source, text.html.php.source",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"meta.tag.other, entity.name.tag.style, entity.name.tag.script, meta.tag.block.script, source.js.embedded punctuation.definition.tag.html, source.css.embedded punctuation.definition.tag.html",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.other.attribute-name, meta.tag punctuation.definition.string",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.tag string -source -punctuation, text source text meta.tag string -punctuation",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.toc-list.id",settings:{foreground:"#9AA83A"}},{scope:"string.quoted.double.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.end.html source, string.quoted.double.html source",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.selector.css entity.other.attribute-name.id",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"support.type.property-name.css",settings:{foreground:"#676867",fontStyle:""}},{scope:"meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"variable.language.js",settings:{foreground:"#CC555A"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded.coffee"],settings:{foreground:"#D08442"}},{scope:["meta.template.expression"],settings:{foreground:"#C5C8C6"}},{scope:"meta.function-call.object.php",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"punctuation.definition.string.end.php, punctuation.definition.string.begin.php",settings:{foreground:"#9AA83A"}},{scope:"source.php.embedded.line.html",settings:{foreground:"#676867"}},{scope:"punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php",settings:{foreground:"#D08442",fontStyle:""}},{scope:"constant.other.symbol.ruby",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"variable.language.ruby",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"keyword.other.special-method.ruby",settings:{foreground:"#D9B700",fontStyle:""}},{scope:["punctuation.section.embedded.begin.ruby","punctuation.section.embedded.end.ruby"],settings:{foreground:"#D08442"}},{scope:"keyword.other.DML.sql",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.diff, meta.diff.header",settings:{foreground:"#E0EDDD",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#DC322F",fontStyle:""}},{scope:"markup.changed",settings:{foreground:"#CB4B16",fontStyle:""}},{scope:"markup.inserted",settings:{foreground:"#219186"}},{scope:"markup.quote",settings:{foreground:"#9872A2"}},{scope:"markup.list",settings:{foreground:"#9AA83A"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#6089B4"}},{scope:"markup.inline.raw",settings:{foreground:"#FF0080",fontStyle:""}},{scope:"markup.heading",settings:{foreground:"#D0B344"}},{scope:"markup.heading.setext",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{}},{scope:["punctuation.definition.list.begin.markdown"],settings:{}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}},{scope:"variable.language",settings:{foreground:"#C7444A"}}]};u();var d_e={$schema:"vscode://schemas/color-theme",type:"light",colors:{"activityBar.background":"#ededf5","activityBar.foreground":"#705697","activityBarBadge.background":"#705697","badge.background":"#705697aa","button.background":"#705697","dropdown.background":"#f5f5f5","editor.background":"#f5f5f5","editor.findMatchBackground":"#bf9cac","editor.findMatchHighlightBackground":"#edc9d899","editor.lineHighlightBackground":"#e4f6d4","editor.selectionBackground":"#c9d0d9","editorCursor.foreground":"#54494b","editorGroup.dropBackground":"#c9d0d988","editorIndentGuide.activeBackground":"#777777b0","editorIndentGuide.background":"#aaaaaa60","editorLineNumber.activeForeground":"#9769dc","editorLineNumber.foreground":"#6d705b","editorWhitespace.foreground":"#aaaaaa",errorForeground:"#f1897f",focusBorder:"#9769dc","inputOption.activeBorder":"#adafb7","inputValidation.errorBackground":"#ffeaea","inputValidation.errorBorder":"#f1897f","inputValidation.infoBackground":"#f2fcff","inputValidation.infoBorder":"#4ec1e5","inputValidation.warningBackground":"#fffee2","inputValidation.warningBorder":"#ffe055","list.activeSelectionBackground":"#c4d9b1","list.activeSelectionForeground":"#6c6c6c","list.highlightForeground":"#9769dc","list.hoverBackground":"#e0e0e0","list.inactiveSelectionBackground":"#d3dbcd","minimap.selectionHighlight":"#c9d0d9","panel.background":"#f5f5f5","peekView.border":"#705697","peekViewEditor.background":"#f2f8fc","peekViewEditor.matchHighlightBackground":"#c2dfe3","peekViewResult.background":"#f2f8fc","peekViewResult.matchHighlightBackground":"#93c6d6","peekViewTitle.background":"#f2f8fc","pickerGroup.border":"#749351","pickerGroup.foreground":"#a6b39b","ports.iconRunningProcessForeground":"#749351","progressBar.background":"#705697","quickInputList.focusBackground":"#cadeb9","selection.background":"#c9d0d9","sideBar.background":"#f2f2f2","sideBarSectionHeader.background":"#ede8ef","statusBar.background":"#705697","statusBar.debuggingBackground":"#705697","statusBar.noFolderBackground":"#705697","statusBarItem.remoteBackground":"#4e3c69","tab.lastPinnedBorder":"#c9d0d9","titleBar.activeBackground":"#c4b7d7","walkThrough.embeddedEditorBackground":"#00000014","welcomePage.tileBackground":"#f0f0f7"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#333333"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#AAAAAA",fontStyle:"italic"}},{scope:"comment.block.preprocessor",settings:{foreground:"#AAAAAA",fontStyle:""}},{scope:["comment.documentation","comment.block.documentation","comment.block.documentation punctuation.definition.comment "],settings:{foreground:"#448C27"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"invalid.illegal",settings:{foreground:"#660000"}},{scope:"keyword.operator",settings:{foreground:"#777777"}},{scope:["keyword","storage"],settings:{foreground:"#4B69C6"}},{scope:["storage.type","support.type"],settings:{foreground:"#7A3E9D"}},{scope:["constant.language","support.constant","variable.language"],settings:{foreground:"#9C5D27"}},{scope:["variable","support.variable"],settings:{foreground:"#7A3E9D"}},{scope:["entity.name.function","support.function"],settings:{foreground:"#AA3731",fontStyle:"bold"}},{scope:["entity.name.type","entity.name.namespace","entity.name.scope-resolution","entity.other.inherited-class","support.class"],settings:{foreground:"#7A3E9D",fontStyle:"bold"}},{scope:"entity.name.exception",settings:{foreground:"#660000"}},{scope:"entity.name.section",settings:{fontStyle:"bold"}},{scope:["constant.numeric","constant.character","constant"],settings:{foreground:"#9C5D27"}},{scope:"string",settings:{foreground:"#448C27"}},{scope:"constant.character.escape",settings:{foreground:"#777777"}},{scope:"string.regexp",settings:{foreground:"#4B69C6"}},{scope:"constant.other.symbol",settings:{foreground:"#9C5D27"}},{scope:"punctuation",settings:{foreground:"#777777"}},{scope:["meta.tag.sgml.doctype","meta.tag.sgml.doctype string","meta.tag.sgml.doctype entity.name.tag","meta.tag.sgml punctuation.definition.tag.html"],settings:{foreground:"#AAAAAA"}},{scope:["meta.tag","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html"],settings:{foreground:"#91B3E0"}},{scope:"entity.name.tag",settings:{foreground:"#4B69C6"}},{scope:["meta.tag entity.other.attribute-name","entity.other.attribute-name.html"],settings:{foreground:"#8190A0",fontStyle:"italic"}},{scope:["constant.character.entity","punctuation.definition.entity"],settings:{foreground:"#9C5D27"}},{scope:["meta.selector","meta.selector entity","meta.selector entity punctuation","entity.name.tag.css"],settings:{foreground:"#7A3E9D"}},{scope:["meta.property-name","support.type.property-name"],settings:{foreground:"#9C5D27"}},{scope:["meta.property-value","meta.property-value constant.other","support.constant.property-value"],settings:{foreground:"#448C27"}},{scope:"keyword.other.important",settings:{fontStyle:"bold"}},{scope:"markup.changed",settings:{foreground:"#000000"}},{scope:"markup.deleted",settings:{foreground:"#000000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.error",settings:{foreground:"#660000"}},{scope:"markup.inserted",settings:{foreground:"#000000"}},{scope:"meta.link",settings:{foreground:"#4B69C6"}},{scope:["markup.output","markup.raw"],settings:{foreground:"#777777"}},{scope:"markup.prompt",settings:{foreground:"#777777"}},{scope:"markup.heading",settings:{foreground:"#AA3731"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.traceback",settings:{foreground:"#660000"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.quote",settings:{foreground:"#7A3E9D"}},{scope:"markup.list",settings:{foreground:"#4B69C6"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#448C27"}},{scope:"markup.inline.raw",settings:{foreground:"#9C5D27",fontStyle:""}},{scope:["meta.diff.range","meta.diff.index","meta.separator"],settings:{foreground:"#434343"}},{scope:["meta.diff.header.from-file","punctuation.definition.from-file.diff"],settings:{foreground:"#4B69C6"}},{scope:["meta.diff.header.to-file","punctuation.definition.to-file.diff"],settings:{foreground:"#4B69C6"}},{scope:"markup.deleted.diff",settings:{foreground:"#C73D20"}},{scope:"markup.changed.diff",settings:{foreground:"#9C5D27"}},{scope:"markup.inserted.diff",settings:{foreground:"#448C27"}},{scope:["punctuation.definition.tag.js","punctuation.definition.tag.begin.js","punctuation.definition.tag.end.js"],settings:{foreground:"#91B3E0"}},{scope:"meta.jsx.children.js",settings:{foreground:"#333333"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};u();var p_e={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#580000","badge.background":"#cc3333","button.background":"#883333","debugToolBar.background":"#660000","dropdown.background":"#580000","editor.background":"#390000","editor.foreground":"#f8f8f8","editor.hoverHighlightBackground":"#ff000044","editor.lineHighlightBackground":"#ff000033","editor.selectionBackground":"#750000","editor.selectionHighlightBackground":"#f5500039","editorCursor.foreground":"#970000","editorGroup.border":"#ff666633","editorGroupHeader.tabsBackground":"#330000","editorHoverWidget.background":"#300000","editorLineNumber.activeForeground":"#ffbbbb88","editorLineNumber.foreground":"#ff777788","editorLink.activeForeground":"#ffd0aa","editorSuggestWidget.background":"#300000","editorSuggestWidget.border":"#220000","editorWhitespace.foreground":"#c10000","editorWidget.background":"#300000",errorForeground:"#ffeaea","extensionButton.prominentBackground":"#cc3333","extensionButton.prominentHoverBackground":"#cc333388",focusBorder:"#ff6666aa","input.background":"#580000","inputOption.activeBorder":"#cc0000","inputValidation.infoBackground":"#550000","inputValidation.infoBorder":"#db7e58","list.activeSelectionBackground":"#880000","list.dropBackground":"#662222","list.highlightForeground":"#ff4444","list.hoverBackground":"#800000","list.inactiveSelectionBackground":"#770000","minimap.selectionHighlight":"#750000","peekView.border":"#ff000044","peekViewEditor.background":"#300000","peekViewResult.background":"#400000","peekViewTitle.background":"#550000","pickerGroup.border":"#ff000033","pickerGroup.foreground":"#cc9999","ports.iconRunningProcessForeground":"#db7e58","progressBar.background":"#cc3333","quickInputList.focusBackground":"#660000","selection.background":"#ff777788","sideBar.background":"#330000","statusBar.background":"#700000","statusBar.noFolderBackground":"#700000","statusBarItem.remoteBackground":"#cc3333","tab.activeBackground":"#490000","tab.inactiveBackground":"#300a0a","tab.lastPinnedBorder":"#ff000044","titleBar.activeBackground":"#770000","titleBar.inactiveBackground":"#772222"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F8"}},{scope:"comment",settings:{foreground:"#E7C0C0",fontStyle:"italic"}},{scope:"constant",settings:{foreground:"#994646",fontStyle:""}},{scope:"keyword",settings:{foreground:"#F12727",fontStyle:""}},{scope:"entity",settings:{foreground:"#FEC758",fontStyle:""}},{scope:"storage",settings:{foreground:"#FF6262",fontStyle:"bold"}},{scope:"string",settings:{foreground:"#CD8D8D",fontStyle:""}},{scope:"support",settings:{foreground:"#9DF39F",fontStyle:""}},{scope:"variable",settings:{foreground:"#FB9A4B",fontStyle:"italic"}},{scope:"invalid",settings:{foreground:"#FFFFFF"}},{scope:"entity.other.inherited-class",settings:{foreground:"#AA5507",fontStyle:"underline"}},{scope:"constant.character",settings:{foreground:"#EC0D1E"}},{scope:["string constant","constant.character.escape"],settings:{foreground:"#FFE862",fontStyle:""}},{scope:"string.regexp",settings:{foreground:"#FFB454"}},{scope:"string variable",settings:{foreground:"#EDEF7D"}},{scope:"support.function",settings:{foreground:"#FFB454",fontStyle:""}},{scope:["support.constant","support.variable"],settings:{foreground:"#EB939A",fontStyle:""}},{scope:["declaration.sgml.html declaration.doctype","declaration.sgml.html declaration.doctype entity","declaration.sgml.html declaration.doctype string","declaration.xml-processing","declaration.xml-processing entity","declaration.xml-processing string"],settings:{foreground:"#73817D",fontStyle:""}},{scope:["declaration.tag","declaration.tag entity","meta.tag","meta.tag entity"],settings:{foreground:"#EC0D1E",fontStyle:""}},{scope:"meta.selector.css entity.name.tag",settings:{foreground:"#AA5507",fontStyle:""}},{scope:"meta.selector.css entity.other.attribute-name.id",settings:{foreground:"#FEC758"}},{scope:"meta.selector.css entity.other.attribute-name.class",settings:{foreground:"#41A83E",fontStyle:""}},{scope:"support.type.property-name.css",settings:{foreground:"#96DD3B",fontStyle:""}},{scope:["meta.property-group support.constant.property-value.css","meta.property-value support.constant.property-value.css"],settings:{foreground:"#FFE862",fontStyle:"italic"}},{scope:["meta.property-value support.constant.named-color.css","meta.property-value constant"],settings:{foreground:"#FFE862",fontStyle:""}},{scope:"meta.preprocessor.at-rule keyword.control.at-rule",settings:{foreground:"#FD6209"}},{scope:"meta.constructor.argument.css",settings:{foreground:"#EC9799",fontStyle:""}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#F8F8F8",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#EC9799"}},{scope:"markup.changed",settings:{foreground:"#F8F8F8"}},{scope:"markup.inserted",settings:{foreground:"#41A83E"}},{scope:"markup.quote",settings:{foreground:"#F12727"}},{scope:"markup.list",settings:{foreground:"#FF6262"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#FB9A4B"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#CD8D8D",fontStyle:""}},{scope:["markup.heading","markup.heading.setext","punctuation.definition.heading","entity.name.section"],settings:{foreground:"#FEC758",fontStyle:"bold"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded",".format.placeholder"],settings:{foreground:"#EC0D1E"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var m_e={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#001733","badge.background":"#bbdaffcc","badge.foreground":"#001733","debugToolBar.background":"#001c40","dropdown.background":"#001733","editor.background":"#002451","editor.foreground":"#ffffff","editor.lineHighlightBackground":"#00346e","editor.selectionBackground":"#003f8e","editorCursor.foreground":"#ffffff","editorGroup.border":"#404f7d","editorGroup.dropBackground":"#25375daa","editorGroupHeader.tabsBackground":"#001733","editorHoverWidget.background":"#001c40","editorHoverWidget.border":"#ffffff44","editorLineNumber.activeForeground":"#949494","editorWhitespace.foreground":"#404f7d","editorWidget.background":"#001c40",errorForeground:"#a92049",focusBorder:"#bbdaff","input.background":"#001733","list.activeSelectionBackground":"#ffffff60","list.highlightForeground":"#bbdaff","list.hoverBackground":"#ffffff30","list.inactiveSelectionBackground":"#ffffff40","minimap.selectionHighlight":"#003f8e","peekViewResult.background":"#001c40","pickerGroup.foreground":"#bbdaff","ports.iconRunningProcessForeground":"#bbdaff","progressBar.background":"#bbdaffcc","quickInputList.focusBackground":"#ffffff60","sideBar.background":"#001c40","statusBar.background":"#001126","statusBar.debuggingBackground":"#001126","statusBar.noFolderBackground":"#001126","statusBarItem.remoteBackground":"#0e639c","tab.inactiveBackground":"#001c40","tab.lastPinnedBorder":"#007acc80","terminal.ansiBlack":"#111111","terminal.ansiBlue":"#bbdaff","terminal.ansiBrightBlack":"#333333","terminal.ansiBrightBlue":"#80baff","terminal.ansiBrightCyan":"#78ffff","terminal.ansiBrightGreen":"#b8f171","terminal.ansiBrightMagenta":"#d778ff","terminal.ansiBrightRed":"#ff7882","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffe580","terminal.ansiCyan":"#99ffff","terminal.ansiGreen":"#d1f1a9","terminal.ansiMagenta":"#ebbbff","terminal.ansiRed":"#ff9da4","terminal.ansiWhite":"#cccccc","terminal.ansiYellow":"#ffeead","titleBar.activeBackground":"#001126"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","meta.jsx.children","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#FFFFFF"}},{scope:"comment",settings:{foreground:"#7285B7"}},{scope:"keyword.operator.class, keyword.operator, constant.other, source.php.embedded.line",settings:{foreground:"#FFFFFF",fontStyle:""}},{scope:"variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag, markup.deleted.git_gutter",settings:{foreground:"#FF9DA4"}},{scope:"constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit",settings:{foreground:"#FFC58F",fontStyle:""}},{scope:"entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution, support.type, support.class",settings:{foreground:"#FFEEAD",fontStyle:""}},{scope:"string, constant.other.symbol, entity.other.inherited-class, markup.heading, markup.inserted.git_gutter",settings:{foreground:"#D1F1A9",fontStyle:""}},{scope:"keyword.operator, constant.other.color",settings:{foreground:"#99FFFF"}},{scope:"entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level, markup.changed.git_gutter",settings:{foreground:"#BBDAFF",fontStyle:""}},{scope:"keyword, storage, storage.type, entity.name.tag.css",settings:{foreground:"#EBBBFF",fontStyle:""}},{scope:"invalid",settings:{foreground:"#A92049",fontStyle:""}},{scope:"meta.separator",settings:{foreground:"#FFFFFF"}},{scope:"invalid.deprecated",settings:{foreground:"#CD9731",fontStyle:""}},{scope:"markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file",settings:{foreground:"#FFFFFF"}},{scope:"markup.inserted.diff, meta.diff.header.to-file",settings:{foreground:"#718C00"}},{scope:"markup.deleted.diff, meta.diff.header.from-file",settings:{foreground:"#C82829"}},{scope:"meta.diff.header.from-file, meta.diff.header.to-file",settings:{foreground:"#4271AE"}},{scope:"meta.diff.range",settings:{foreground:"#3E999F",fontStyle:"italic"}},{scope:"markup.quote",settings:{foreground:"#FFC58F"}},{scope:"markup.list",settings:{foreground:"#BBDAFF"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#FFC58F"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#FF9DA4",fontStyle:""}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var g_e={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007acc","checkbox.border":"#6b6b6b","editor.background":"#1e1e1e","editor.foreground":"#d4d4d4","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground1":"#707070","editorIndentGuide.background1":"#404040","input.placeholderForeground":"#a6a6a6","list.activeSelectionIconForeground":"#ffffff","list.dropBackground":"#383b3d","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#cccccc","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#00000000","sideBarSectionHeader.border":"#cccccc33","sideBarTitle.foreground":"#bbbbbb","statusBarItem.remoteBackground":"#16825d","statusBarItem.remoteForeground":"#ffffff","tab.lastPinnedBorder":"#cccccc33","terminal.inactiveSelectionBackground":"#3a3d41","widget.border":"#303031"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796E6"}},{scope:"markup.inline.raw",settings:{foreground:"#CE9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"meta.diff.header",settings:{foreground:"#569CD6"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569CD6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#D4D4D4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9CDCFE"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569CD6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9CDCFE"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language",settings:{foreground:"#569CD6"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};u();var f_e={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007acc","checkbox.border":"#919191","editor.background":"#ffffff","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#e5ebf1","editor.selectionHighlightBackground":"#add6ff80","editorIndentGuide.activeBackground1":"#939393","editorIndentGuide.background1":"#d3d3d3","editorSuggestWidget.background":"#f3f3f3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#ffffff","list.focusAndSelectionOutline":"#90c2f9","list.hoverBackground":"#e8e8e8","menu.border":"#d4d4d4","notebook.cellBorderColor":"#e8e8e8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#cecece","settings.numberInputBorder":"#cecece","settings.textInputBorder":"#cecece","sideBarSectionHeader.background":"#00000000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6f6f6f","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825d","statusBarItem.remoteForeground":"#ffffff","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#e5ebf1","widget.border":"#d4d4d4"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000FF"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#E50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#800000",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#A31515"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000FF"}},{scope:"meta.preprocessor.string",settings:{foreground:"#A31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0000FF"}},{scope:"storage.type",settings:{foreground:"#0000FF"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000FF"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#A31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000FF"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000FF"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#E50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0000FF"}},{scope:"keyword.control",settings:{foreground:"#0000FF"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000FF"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000FF"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};var GJ=class t{constructor(e,n){this.languageId=e;this.highlighter=n}static{i(this,"Highlighter")}static async create(e=Pb.window.activeTextEditor?.document.languageId){if(!e)return new t(void 0,void 0);let n=await nnt({langs:Object.values(KCe),loadWasm:YCe});if(!KCe[e]){let a=Qgn[e];a&&await n.loadLanguage(a)}return new t(e,n)}createSnippet(e){return!this.highlighter||!this.languageId||!this.languageSupported()?`<pre>${e}</pre>`:this.highlighter.codeToHtml(e,{lang:this.languageId,theme:vgn()})}languageSupported(){return this.languageId?!!this.highlighter?.getLoadedLanguages().includes(this.languageId):!1}};function vgn(){let t=Pb.workspace.getConfiguration("workbench");if(t){let e=t.get("colorTheme");if(e&&Ign(e))return h_e[e];let n=Pb.window.activeColorTheme;return Bgn[n.kind]}else return h_e["Default Dark Modern"]}i(vgn,"getCurrentTheme");var Bgn={[Pb.ColorThemeKind.Dark]:UJ,[Pb.ColorThemeKind.Light]:jJ,[Pb.ColorThemeKind.HighContrast]:OJ,[Pb.ColorThemeKind.HighContrastLight]:qJ},h_e={Abyss:l_e,"Dark High Contrast":OJ,"Light High Constrast":qJ,"Default Dark Modern":UJ,"Kimbie Dark":A_e,"Default Light Modern":jJ,"Monokai Dimmed":u_e,"Quiet Light":d_e,Red:p_e,"Tomorrow Night Blue":m_e,"Visual Studio Dark":g_e,"Visual Studio Light":f_e,"Default Dark+":r_e,"Default Light+":i_e,Monokai:o_e,"Solarized Dark":s_e,"Solarized Light":c_e};function Ign(t){return t in h_e}i(Ign,"isSupportedTheme");var Qgn={"cuda-cpp":JCe,javascriptreact:VCe,markdown_latex_combined:XCe,"markdown-math":e_e,restructuredtext:t_e,"search-result":n_e,typescriptreact:a_e};u();function elt(){let t="",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let n=0;n<32;n++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}i(elt,"getNonce");function tlt(t,e,n="s"){return`${t} ${e}${t!==1?n:""}`}i(tlt,"pluralize");var BF=class{constructor(e,n,a,r,o){this.ctx=e;this.webviewPanel=n;this.suggestionsPanelManager=r;this.config=o;this._disposables=[];this.#e=[];this.#t=[];this.#r=0;this._isDisposed=!1;this.#i=new md.CancellationTokenSource;this._onDidDispose=new md.EventEmitter;this.onDidDispose=this._onDidDispose.event;this.render=stt(10,()=>this.renderSolutions());n.onDidDispose(()=>this._dispose(),null,this._disposables),n.webview.html=this._getWebviewContent(),this.#n=a.uri,this.#a=GJ.create(a.languageId),md.workspace.onDidChangeConfiguration(s=>{if(s.affectsConfiguration("workbench.colorTheme"))return this.render()}),n.webview.onDidReceiveMessage(async s=>{if(await this.handleCustomMessage(s)!==!0)switch(s.command){case"focusSolution":this._focusedSolution=this.#e[s.solutionIndex];return;case"webviewReady":this.postMessage({command:"updateConfig",config:{renderingMode:this.config.renderingMode,shuffleSolutions:this.config.shuffleSolutions}});return}},void 0),n.onDidChangeViewState(s=>{s.webviewPanel?.visible&&(this.suggestionsPanelManager.activeWebviewPanel=this)})}static{i(this,"BaseSuggestionsPanel")}#e;#t;#r;#a;#n;#i;get cancellationToken(){return this.#i.token}async handleCustomMessage(e){return Promise.resolve(!1)}_buildExtensionUri(...e){let n=md.Uri.joinPath(this.ctx.get(As).context.extensionUri,...e);return this.webviewPanel.webview.asWebviewUri(n)}_getWebviewContent(){let e=elt(),n=this._buildExtensionUri("dist",this.config.webviewScriptName),a=this._buildExtensionUri("dist","node_modules","@vscode","codicons","dist","codicon.css");return` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Security-Policy" content="default-src 'none'; font-src ${this.webviewPanel.webview.cspSource}; style-src 'unsafe-inline' ${this.webviewPanel.webview.cspSource}; script-src 'nonce-${e}';" /> <title>${this.config.panelTitle}

${this.config.panelTitle}

`}onWorkDone({percentage:e}){this.#r=e,this.render()}onItem(e){this.config.renderingMode==="batch"?this.#t.push(e):(this.#e.push(e),this.render())}clearSolutions(){this.#i.cancel(),this.#i=new md.CancellationTokenSource,this.#e=[],this.#t=[],this._focusedSolution=void 0,this.#r=0,this.render()}onFinished(){this.#r=100,this.#t.length>0&&(this.#e.push(...this.#t),this.config.shuffleSolutions&&(this.#e=this.#e.sort(()=>Math.random()-.5)),this.#t=[]),this.render()}async acceptSolution(e,n=!0){if(this._isDisposed===!1&&e?.range){let a=new md.WorkspaceEdit;a.replace(this.#n,e.range,e.insertText),await md.workspace.applyEdit(a),this.#i.cancel(),n&&await md.commands.executeCommand("workbench.action.closeActiveEditor"),await e.postInsertionCallback()}}items(){return this.#e}async acceptFocusedSolution(){let e=this._focusedSolution;if(e)return this.acceptSolution(e)}async renderSolutions(){let e=await this.#a,n=this.#e.map(r=>{let s=r.copilotAnnotations?.ip_code_citations?.[0]?.details.citations,c;if(s&&s.length>0){let A=new Set(s.map(m=>m.license));A.has("NOASSERTION")&&(A.delete("NOASSERTION"),A.add("unknown"));let d=Array.from(A).sort(),p=d.length==1?d[0]:`[${d.join(", ")}]`;c={message:`Similar code with ${tlt(d.length,"license type")} ${p} detected.`,url:s[0].url}}let l={htmlSnippet:e.createSnippet(r.insertText.trim()),citation:c};return this.renderSolutionContent(r,l)}),a=this.createSolutionsMessage(n,this.#r);await this.postMessage(a)}postMessage(e){if(this._isDisposed===!1)return this.webviewPanel.webview.postMessage(e)}_dispose(){for(this._isDisposed=!0,this._onDidDispose.fire(),this.suggestionsPanelManager.decrementPanelCount();this._disposables.length;){let e=this._disposables.pop();e&&e.dispose()}this._onDidDispose.dispose()}};u();var ZJ=require("vscode");async function nlt(t,e){return Dgn(t,e)}i(nlt,"logComparisonPanelFeedback");async function Dgn(t,e){let n=Sgn(t,e);await ZJ.commands.executeCommand("workbench.action.openIssueReporter",{extensionId:"github.copilot",uri:ZJ.Uri.parse("https://github.com/microsoft/vscode"),issueBody:"## Give your feedback on the completion accepted or why you did not accept any of the solutions.",data:n})}i(Dgn,"openGitHubIssue");function Sgn(t,e){let n=e.find(r=>r.state==="accepted"),a="## Copilot Completions Panel Feedback";if(n){a+=` ### Describe why you preferred this solution over others:`,a+=` ### Accepted Solution: `,a+=` - **Model ID**: ${n.modelId} \`\`\` ${n.insertText} \`\`\``,a+=` ### Other Solutions: `;for(let r of e)r!==n&&(a+=` - **Model ID**: ${r.modelId} `,a+=` \`\`\` ${r.insertText} \`\`\` `)}else{a+=` ### Describe why you did not prefer any of these solutions:`,a+=` ### Solutions: `;for(let r of e)r!==n&&(a+=` - **Model ID**: ${r.modelId} `,a+=` \`\`\` ${r.insertText} \`\`\` `)}return a}i(Sgn,"generateGitHubIssueBody");u();function HJ(t){return{panelTitle:"GitHub Copilot Comparison",webviewId:"GitHub Copilot Comparison",webviewScriptName:"comparisonPanelWebview.js",contextVariable:KK,commands:{accept:cXe,navigatePrevious:lXe,navigateNext:AXe},renderingMode:"batch",shuffleSolutions:ia(t,yt.ComparisonPanelRandomizedMode)}}i(HJ,"getComparisonPanelConfig");var WJ=class extends BF{static{i(this,"ComparisonSuggestionsPanel")}constructor(e,n,a,r){super(e,n,a,r,HJ(e))}renderSolutionContent(e,n){return{...n,modelId:e.modelId,state:e.state}}createSolutionsMessage(e,n){return{command:"solutionsUpdated",solutions:e,percentage:n}}async handleCustomMessage(e){switch(e.command){case"submitFeedback":return await nlt(this.ctx,this.items()),Promise.resolve(!0);case"acceptSolution":{let n=this.items()[e.solutionIndex];await this.acceptSolution(n,!1);for(let a of this.items())a===n?a.state="accepted":a.state="rejected";return await this.render(),Promise.resolve(!0)}default:return Promise.resolve(!1)}}};var KJ=class extends pF{static{i(this,"ComparisonSuggestionsPanelManager")}constructor(e){super(e,HJ(e))}renderPanel(e,n,a){return this.activeWebviewPanel&&(!this.activeWebviewPanel.webviewPanel||!this.activeWebviewPanel.webviewPanel.visible)&&(this.activeWebviewPanel=void 0),this.activeWebviewPanel?(this.refreshPanelContent(e,n,a,this.activeWebviewPanel),this.activeWebviewPanel.webviewPanel.reveal(alt.ViewColumn.Two),this.activeWebviewPanel):super.renderPanel(e,n,a)}refreshPanelContent(e,n,a,r){r.clearSolutions(),lE()?new dF(this._ctx,e,n,r).runQuery():this.createListDocument(this._ctx,a,n,r).runQuery()}createListDocument(e,n,a,r){return new tJ(e,n,a,r)}createSuggestionsPanel(e,n,a,r){return new WJ(e,n,a,r)}};function rlt(t){let e=ia(t,yt.UseCompletionsComparisonPanel);if(IF.commands.executeCommand("setContext","github.copilot.comparisonPanelEnabled",e),!e)return;let n=new KJ(t);Ko(t,nXe,async()=>{await IF.commands.executeCommand("editor.action.inlineSuggest.hide"),await Tgn(t,n)}),n.registerCommands()}i(rlt,"registerComparisonPanelSupport");function Tgn(t,e){let n=IF.window.activeTextEditor;if(!n)return;let a=Jy(t,n.document);if(!a)return;let{line:r,character:o}=n.selection.active;return e.renderPanel(n.document,{line:r,character:o},a),IF.commands.executeCommand("setContext",KK,!0)}i(Tgn,"commandOpenPanel");u();var YJ=require("vscode");async function ilt(t,e,n){let a=YJ.workspace.textDocuments.find(o=>o.uri.toString()===n.uri);return!a||(await ly(t,n,a.getText())).status!=="valid"?0:YJ.languages.match(e,a)}i(ilt,"contextProviderMatch");u();var cM=require("vscode");u();u();u();u();var b_e=new rn("solutions");async function Fgn(t,e){let n=e.targetPosition,a=e.textDocument,r=await XY(t,e,"open copilot",b_e);if("status"in r)return r;let{prompt:o,trailingWs:s,telemetryData:c,repoInfo:l,ourRequestId:A}=r,{extra:d,postOptions:p,finishedCb:m,engineInfo:g}=eJ(t,a,n,o,e,c),f=e.cancellationToken,b={prompt:o,languageId:a.detectedLanguageId,repoInfo:l,ourRequestId:A,engineModelId:g.modelId,count:e.solutionCountTarget,uiKind:"synthesize",postOptions:p,headers:g.headers,extra:d},w=await t.get(Kc).fetchAndStreamCompletions(t,b,c.extendedBy(),m,f);if(w.type==="failed"||w.type==="canceled")return{status:"FinishedWithError",error:`${w.type}: ${w.reason}`};let _=w.choices;_=VY(_),_=K_(_,Q=>fB(t,a,n,Q,!1,b_e));let x=K_(_,async Q=>{let T=Q.completionText;b_e.info(t,`Open Copilot completion: [${Q.completionText}]`);let R=await F7(t,a,n,Q.completionText)??$i.position(n.line,0),[z]=eb(a.getText($i.range(R,n)));T=z+T;let J=Q.completionText;s.length>0&&J.startsWith(s)&&(J=J.substring(s.length));let Ae=Q.meanLogProb,ue=Ae!==void 0?Math.exp(Ae):0,H=c.extendedBy({choiceIndex:Q.choiceIndex.toString()});return{completionText:J,insertText:T,range:$i.range(R,n),meanProb:ue,meanLogProb:Ae||0,requestId:Q.requestId,choiceIndex:Q.choiceIndex,telemetryData:H,copilotAnnotations:Q.copilotAnnotations}});return k8(f,x[Symbol.asyncIterator]())}i(Fgn,"launchSolutions");async function olt(t,e,n){return t.get(ni).withProgress(async()=>{let r=Fgn(t,e);return await E8(r,n)})}i(olt,"runSolutions");var JJ=class extends mF{static{i(this,"CopilotListDocument")}constructor(e,n,a,r,o=10){super(e,n,a,r,o)}createPanelCompletion(e,n){return{insertText:n.insertText,range:n.range,copilotAnnotations:n.copilotAnnotations,postInsertionCallback:n.postInsertionCallback}}shouldAddSolution(e){return!this._solutions.find(n=>this.areSolutionsDuplicates(n,e))}areSolutionsDuplicates(e,n){let a=iwe(e.insertText),r=iwe(n.insertText);return a===r}runSolutionsImpl(){return olt(this._ctx,this,this)}};u();u();var VJ={panelTitle:"GitHub Copilot Suggestions",webviewId:"GitHub Copilot Suggestions",webviewScriptName:"suggestionsPanelWebview.js",contextVariable:WK,commands:{accept:iXe,navigatePrevious:oXe,navigateNext:sXe},renderingMode:"streaming",shuffleSolutions:!1};var XJ=class extends BF{static{i(this,"CopilotSuggestionsPanel")}constructor(e,n,a,r){super(e,n,a,r,VJ)}renderSolutionContent(e,n){return n}createSolutionsMessage(e,n){return{command:"solutionsUpdated",solutions:e,percentage:n}}async handleCustomMessage(e){switch(e.command){case"acceptSolution":{let n=this.items()[e.solutionIndex];return await this.acceptSolution(n,!0),Promise.resolve(!0)}default:return Promise.resolve(!1)}}};var eV=class extends pF{static{i(this,"CopilotSuggestionsPanelManager")}constructor(e){super(e,VJ)}createListDocument(e,n,a,r){return new JJ(e,n,a,r)}createSuggestionsPanel(e,n,a,r){return new XJ(e,n,a,r)}};function slt(t){let e=new eV(t);Ko(t,zK,async()=>{await cM.commands.executeCommand("editor.action.inlineSuggest.hide"),await Ngn(t,e)}),e.registerCommands()}i(slt,"registerPanelSupport");function Ngn(t,e){let n=cM.window.activeTextEditor;if(!n)return;let a=Jy(t,n.document);if(!a)return;let{line:r,character:o}=n.selection.active;return e.renderPanel(n.document,{line:r,character:o},a),cM.commands.executeCommand("setContext",WK,!0)}i(Ngn,"commandOpenPanel");u();var clt=ot(Cv());var e1=new rn("fetcher"),tV=class extends qr{constructor(n,a,r=new LT(n),o=process.versions){super();this.ctx=n;this.electronFetcher=a;this.helixFetcher=r;this.versions=o;this.electronFetcherFeatureFlag=!1;this.electronFetcherExperimentEnabled=!1;this.currentFetcher=this.helixFetcher,Mi(this.ctx,s=>(this.electronFetcherFeatureFlag=s.envelope.vsc_electron_fetcher_v2??!1,this.updateFetcher(),n.get($t).updateExPValuesAndAssignments().then(c=>(this.electronFetcherExperimentEnabled=n.get($t).enableElectronFetcher(c),this.updateFetcher())))),this.updateFetcher()}static{i(this,"ExtensionDelegatingFetcher")}updateFetcher(){let n=this.electronFetcher;if(!n){e1.info(this.ctx,"Using Helix fetcher, Electron fetcher is not available."),this.currentFetcher=this.helixFetcher;return}let a=ia(this.ctx,yt.DebugUseElectronFetcher);if(a===!0){e1.info(this.ctx,"Using Electron fetcher, debug flag is enabled."),this.currentFetcher=n;return}if(a===!1){e1.info(this.ctx,"Using Helix fetcher, debug flag is disabled."),this.currentFetcher=this.helixFetcher;return}if(this.electronFetcherFeatureFlag===!0){if(this.versions.electron&&(0,clt.gte)(this.versions.electron,"30.4.0")){e1.info(this.ctx,"Using Electron fetcher, feature flag is enabled."),this.currentFetcher=n;return}e1.info(this.ctx,"Electron fetcher feature flag enabled, but VS Code version is older than 1.93")}if(this.electronFetcherExperimentEnabled){e1.info(this.ctx,"Using Electron fetcher, experiment is enabled."),this.currentFetcher=n;return}e1.info(this.ctx,"Using Helix fetcher."),this.currentFetcher=this.helixFetcher}getImplementation(){return this.currentFetcher.getImplementation()}get name(){return this.currentFetcher.name}async fetch(n,a){return this.currentFetcher.fetch(n,a)}async disconnectAll(){await Promise.all([this.helixFetcher.disconnectAll(),this.electronFetcher?.disconnectAll()])}};u();u();u();function Pgn(t,e,n){let{apiUrl:a,serverUrl:r}=n||t.get(kd).getConfiguredUrls(),o=new URL("login/device",r).href,s=new URL("_ping",e.proxy).href,c=new URL("_ping",e.api).href,l=new URL("_ping",e.telemetry).href;function A(d){return new URL(d).host}return i(A,"label"),[{label:A(o),url:o},{label:A(a),url:a,session:n},{label:A(s),url:s},{label:A(c),url:c,session:n},{label:A(l),url:l}]}i(Pgn,"urlsToCheck");async function llt(t,e,n=SQ(t),a,r){let o=Pgn(t,n,a).map(async({label:s,url:c,session:l})=>{let{message:A,status:d}=await Lgn(e,c,l,r);return{label:s,url:c,message:A,status:d}});return await Promise.all(o)}i(llt,"checkReachability");async function Lgn(t,e,n,a){try{let r=new AbortController;a?.onCancellationRequested(()=>r.abort());let o=await t.fetch(e,{headers:n?{Authorization:`Bearer ${n.accessToken}`}:{},signal:r.signal}),s=o.status>=200&&o.status<400?"reachable":"unreachable";return{message:`HTTP ${o.status}`+(o.statusText?` - ${o.statusText}`:""),status:s}}catch(r){return{message:String(r),status:"unreachable"}}}i(Lgn,"determineReachability");var Rp=ot(require("os")),QF=ot(require("tls"));async function ult(t,e){let n=await t.get(qr).getImplementation(),a=await t.get(oa).getGitHubSession(),r=await t.get(oa).getToken().catch(()=>{});return{sections:[zgn(t),Mgn(t,a),$gn(t,n),await Ogn(t,n,r?.endpoints,a,e)]}}i(ult,"collectDiagnostics");function dlt(t,e){let n={};return e!==void 0&&(e.properties.headerRequestId&&(n["Header Request ID"]=e.properties.headerRequestId),e.properties.choiceIndex&&(n["Choice Index"]=e.properties.choiceIndex),e.properties.opportunityId&&(n["Opportunity ID"]=e.properties.opportunityId),e.properties.clientCompletionId&&(n["Client Completion ID"]=e.properties.clientCompletionId),e.properties.engineName&&(n["Model ID"]=e.properties.engineName),e instanceof ty&&(n["A/B Experiment Info"]=e.filtersAndExp.exp.assignmentContext)),{sections:[{name:"Copilot Extension",items:{Version:T_(t),Editor:plt(t),...n}}]}}i(dlt,"collectCompletionDiagnostics");function nV(t){return t.sections.map(Ugn).join(Rp.EOL+Rp.EOL)+Rp.EOL}i(nV,"formatDiagnosticsAsMarkdown");function Mgn(t,e){let n=e&&new URL(e.serverUrl).host,a;return e?n==="github.com"?a=e.login:a=`${e.login} (${n})`:a="not signed in",{name:"Copilot",items:{Version:T_(t),"GitHub Account":a,"Session ID":t.get(_o).sessionId,"Send Restricted Telemetry":P2(t)?"enabled":"disabled","Content Exclusion":t.get(vc).enabled?"enabled":"unavailable"}}}i(Mgn,"collectCopilotSection");function zgn(t){let e={Plugin:qgn(t),Editor:plt(t),"Operating System":`${Rp.type()} ${Rp.release()} (${Rp.arch()})`};return Lb(e,"NODE_OPTIONS"),{name:"Environment",items:e}}i(zgn,"collectEnvironmentSection");function $gn(t,e){let n=t.get(rc).getHttpSettings(),a={Proxy:n.proxy||void 0,"Proxy Authorization":n.proxyAuthorization?"present":void 0,"Proxy Kerberos SPN":n.proxyKerberosServicePrincipal,"Proxy Strict SSL":n.proxyStrictSSL===!1?"disabled":"enabled",Fetcher:e.name.replace(/Fetcher$/,""),"Number of Root Certificates":QF.rootCertificates.length,"TLS Default Min Version":QF.DEFAULT_MIN_VERSION,"TLS Default Max Version":QF.DEFAULT_MAX_VERSION};return Lb(a,"http_proxy"),Lb(a,"https_proxy"),Lb(a,"no_proxy"),Lb(a,"SSL_CERT_FILE"),Lb(a,"SSL_CERT_DIR"),Lb(a,"OPENSSL_CONF"),Lb(a,"NODE_EXTRA_CA_CERTS"),Lb(a,"NODE_TLS_REJECT_UNAUTHORIZED"),{name:"Network Configuration",items:a}}i($gn,"collectNetworkConfigSection");async function Ogn(t,e,n,a,r){return{name:"Reachability",items:Object.fromEntries((await llt(t,e,n,a,r)).map(({label:s,message:c})=>[s,c]))}}i(Ogn,"collectReachabilitySection");function Alt(t){return t.includes("`")?`\`\` ${t} \`\``:`\`${t}\``}i(Alt,"quoteCode");function Lb(t,e){let n=process.env[e];n&&(t[Alt(e)]=Alt(n)),n!==process.env[e.toUpperCase()]&&Lb(t,e.toUpperCase())}i(Lb,"addEnvironmentVariable");function Ugn(t){return`## ${t.name}`+Rp.EOL+Rp.EOL+Object.keys(t.items).filter(e=>e!=="name").map(e=>`- ${e}: ${t.items[e]??"N/A"}`).join(Rp.EOL)}i(Ugn,"formatSectionAsMarkdown");function plt(t){let e=t.get(Wa).getEditorInfo();return`${e.readableName||e.name} ${e.version}`}i(plt,"getEditorDisplayVersion");function qgn(t){let e=t.get(Wa).getEditorPluginInfo();return`${e.readableName||e.name} ${e.version}`}i(qgn,"getPluginDisplayVersion");var Mb=require("vscode");var mlt="copilot-diagnostics",y_e=class{constructor(e){this.ctx=e;this.onDidChangeEmitter=new Mb.EventEmitter;this.onDidChange=this.onDidChangeEmitter.event;this.contents=new Map;this.didClose=Mb.workspace.onDidCloseTextDocument(e=>this.contents.delete(e.uri.toString()))}static{i(this,"DiagnosticsProvider")}dispose(){this.didClose.dispose(),this.onDidChangeEmitter.dispose()}provideTextDocumentContent(e,n){let a=this.contents.get(e.toString());if(a!==void 0)return a;ult(this.ctx,n).then(o=>nV(o)).catch(o=>`Error collecting diagnostics: \`\`\` ${String(o)} \`\`\` `).then(o=>{this.contents.has(e.toString())&&(this.contents.set(e.toString(),o),this.onDidChangeEmitter.fire(e))});let r=`*Loading...* `;return this.contents.set(e.toString(),r),r}};function jgn(){return Mb.Uri.from({scheme:mlt,path:"/Copilot Diagnostics.md",query:`id=${Ua()}`})}i(jgn,"createDiagnosticsReportUri");async function Ggn(){let t=await Mb.workspace.openTextDocument(jgn());await Mb.window.showTextDocument(t)}i(Ggn,"openDiagnosticsReport");function glt(t){let e=new y_e(t);t.get(As).addSubscription(e,Mb.workspace.registerTextDocumentContentProvider(mlt,e)),Ko(t,GK,()=>Ggn())}i(glt,"registerCollectDiagnosticsCommand");u();var flt=ot(Cv()),w_e=require("stream");var aV=class t extends qr{constructor(n){super();this.net=n;this.name="ElectronFetcher";this.userAgent=`GithubCopilot/${new Ki().getVersion()}`}static{i(this,"ElectronFetcher")}static async create(n=process.versions){if(!n.electron||(0,flt.lt)(n.electron,"28.2.5"))return;let a=(await import("electron")).net;if(a)return new t(a)}async fetch(n,a){let r=a.headers||{};r["User-Agent"]=this.userAgent;let o=a.body;if(a.json){if(a.body)throw new Error("Illegal arguments! Cannot pass in both 'body' and 'json'!");r["Content-Type"]="application/json",o=JSON.stringify(a.json)}let s=a.method||"GET";if(s!=="GET"&&s!=="POST")throw new Error("Illegal arguments! 'method' must be either 'GET' or 'POST'!");if(a.signal&&!(a.signal instanceof AbortSignal))throw new Error("Illegal arguments! 'signal' must be an instance of AbortSignal!");let c=AbortSignal.any([...a.signal?[a.signal]:[],...a.timeout?[AbortSignal.timeout(a.timeout)]:[]]),l=await this.net.fetch(n,{method:s,headers:r,body:o,signal:c});return new Ek(l.status,l.statusText,l.headers,()=>l.text(),()=>{if(!l.body)return w_e.Readable.from([]);let A=l.body[Symbol.asyncIterator]();return w_e.Readable.from(A)})}async disconnectAll(){}};u();u();u();function Zgn(t,e,n,a=ty.createEmptyConfigForTesting()){let r=_i();return{completionText:n,meanLogProb:.5,meanAlternativeLogProb:.5,numTokens:-1,choiceIndex:e,requestId:{headerRequestId:t,serverExperiments:"dummy",deploymentId:"dummy"},telemetryData:a,tokens:r.tokenize(n).map(o=>r.detokenize([o])).concat(),blockFinished:!1,clientCompletionId:Ua(),finishReason:"stop"}}i(Zgn,"fakeAPIChoice");async function*Hgn(t,e,n,a){let r=Ua(),o=0;for(let s of n){let c=-1;if(t?.stop!==void 0)for(let d of t.stop){let p=s.indexOf(d);p!==-1&&(c===-1||p0,"getProcessingTime")})}i(rV,"fakeResponse");var iV=class extends Kc{constructor(n){super();this._completions=n;this._wasCalled=!1;this._speculationWasCalled=!1}static{i(this,"SyntheticCompletions")}async fetchAndStreamCompletions(n,a,r,o,s,c){if(n.get(oa).getToken(),s?.isCancellationRequested)return{type:"canceled",reason:"canceled during test"};if(this._wasCalled){let l=this._completions.map(A=>"");return rV(l,o,a.postOptions,r)}else return this._wasCalled=!0,rV(this._completions,o,a.postOptions,r)}async fetchAndStreamSpeculation(n,a,r,o,s){if(n.get(oa).getToken(),s?.isCancellationRequested)return{type:"canceled",reason:"canceled during test"};if(this._speculationWasCalled){let c=this._completions.map(l=>"");return rV(c,o,void 0,r)}else return this._speculationWasCalled=!0,rV(this._completions,o,void 0,r)}fetchAndStreamChat(n,a,r,o,s,c,l,A,d){throw new Error("Method not implemented.")}};u();var oV=class extends lA{constructor(n){super();this.blockMode=n}static{i(this,"FixedBlockModeConfig")}forLanguage(n,a){return this.blockMode}};u();u();var hlt=require("http");var C_e=class extends ic{static{i(this,"TestPromiseQueue")}async awaitPromises(){await Promise.all(this.promises)}};async function blt(t,e){return Kgn(t,!0,e)}i(blt,"withTelemetryCapture");async function Kgn(t,e,n){let a,r=[],o=(0,hlt.createServer)((l,A)=>{if(l.method!=="POST")return;a=l.headers.authorization;let d="";l.on("end",()=>{let p=JSON.parse(d);r.push(...p),A.writeHead(204),A.end()}),l.on("data",p=>{d+=String(p)})});o.unref();let s=await new Promise((l,A)=>{o.on("error",d=>A(d)),o.listen(()=>l(o.address().port))});delete process.env.http_proxy,delete process.env.https_proxy;let c=t.get(pA);c.overrideEndpointUrlForTesting=`http://localhost:${s}/`,c.initialize(e);try{let l=new C_e;t.forceSet(ic,l);let A=await n();return await l.awaitPromises(),await c.shutdown(),await Ygn(r),[r,A,a]}finally{c.overrideEndpointUrlForTesting=void 0,o.close()}}i(Kgn,"_withTelemetryCapture");async function Ygn(t){for(let e=1;e<3;e++){if(await new Promise(n=>setTimeout(n,e*50)),t.length>0)return;console.warn("Retrying to collect telemetry messages #"+e)}}i(Ygn,"waitForCapturedTelemetryWithRetry");var x_e=require("vscode"),ylt=ot(_8());var sV=class{constructor(e){this.ctx=e}static{i(this,"VSCodeCopilotExtensionApi")}registerRelatedFilesProvider(e,n){let a=i(async(r,o,s)=>{let c=await n(x_e.Uri.parse(r),o,s);return c==null?void 0:{entries:[{type:afe(e.languageId),uris:c.entries.map(A=>A.toString())}],traits:c.traits}},"cb");return this.ctx.get(Im).registerRelatedFilesProvider(e.extensionId,e.languageId,a),{dispose:i(()=>this.ctx.get(Im).unregisterRelatedFilesProvider(e.extensionId,e.languageId,a),"dispose")}}getContextProviderAPI(e){if(e==="v1")return new __e(this.ctx);throw new Error(`Unknown context provider API version: ${String(e)}`)}captureExtensionTelemetry(e){return blt(this.ctx,e)}setupNextCompletion(e){this.clearCompletionsCache(),this.ctx.forceSet(Kc,new iV(e)),this.ctx.forceSet(lA,new oV("parsing"))}clearCompletionsCache(){this.ctx.get(KA).clear(),this.ctx.get(Wc).clear(),this.ctx.forceSet(Pl,new Pl)}get languageClient(){return this.ctx.get(ylt.BaseLanguageClient)}},__e=class{constructor(e){this.ctx=e}static{i(this,"ContextProviderExtensionApiV1")}registerContextProvider(e){return this.ctx.get(Nl).registerContextProvider(e),{dispose:i(()=>this.ctx.get(Nl).unregisterContextProvider(e.id),"dispose")}}};u();var wlt=require("vscode");var cV=class extends Oc{constructor(){super(...arguments);this.recentNotifications=new Map}static{i(this,"ExtensionNotificationSender")}async showWarningMessage(n,...a){return this.recentNotifications.get(n)?void 0:{title:await wlt.window.showWarningMessage(n,...a.map(s=>s.title))}}async showWarningMessageOnlyOnce(n,a,...r){if(n==="free_over_limits"||n==="not_signed_up"||this.recentNotifications.get(a))return;let s=this.showWarningMessage(a,...r),c=Bq();return this.recentNotifications.set(a,c),s}};u();var ng=class{constructor(e="Normal",n,a=!1,r){this.kind=e;this.message=n;this.busy=a;this.command=r}static{i(this,"CopilotExtensionStatus")}};u();var fE=require("vscode");var E_e=class extends xi{static{i(this,"ExtensionFileSystem")}async readFileString(e){return typeof e!="string"&&(e=e.uri),new TextDecoder().decode(await fE.workspace.fs.readFile(fE.Uri.parse(e,!0)))}async stat(e){return typeof e!="string"&&(e=e.uri),await fE.workspace.fs.stat(fE.Uri.parse(e,!0))}async readDirectory(e){return typeof e!="string"&&(e=e.uri),await fE.workspace.fs.readDirectory(fE.Uri.parse(e,!0))}},Clt=new E_e;u();u();u();u();function _lt(t,e,n){function a(o,s,c){let l=new RegExp(`^(${s})+`,"g");return o.split(` `).map(A=>{let d=A.replace(l,""),p=A.length-d.length;return c(p)+d}).join(` `)}i(a,"replace");let r;if(t.tabSize===void 0||typeof t.tabSize=="string"?r=4:r=t.tabSize,t.insertSpaces===!1){let o=i(s=>a(s," ",c=>" ".repeat(Math.floor(c/r))+" ".repeat(c%r)),"r");e.displayText=o(e.displayText),e.completionText=o(e.completionText)}else if(t.insertSpaces===!0){let o=i(s=>a(s," ",c=>" ".repeat(c*r)),"r");if(e.displayText=o(e.displayText),e.completionText=o(e.completionText),n){let s=i(c=>{if(c==="")return c;let l=c.split(` `)[0],A=l.length-l.trimStart().length,d=A%r;if(d!==0&&A>0){let p=" ".repeat(d);return a(c,p,m=>" ".repeat((Math.floor(m/r)+1)*r))}else return c},"re");e.displayText=s(e.displayText),e.completionText=s(e.completionText)}}return e}i(_lt,"normalizeIndentCharacter");function xlt(t,e,n,a,r,o,s){let c=a.lineAt(r),l=e.map(A=>{let d=$i.range($i.position(r.line,0),$i.position(r.line,r.character+A.suffixCoverage)),p="";if(o&&(A.completion=_lt(o,A.completion,c.isEmptyOrWhitespace)),c.isEmptyOrWhitespace&&(A.completion.displayNeedsWsOffset||A.completion.completionText.startsWith(c.text)))p=A.completion.completionText;else{let g=$i.range(d.start,r);p=a.getText(g)+A.completion.displayText}return{uuid:Ua(),insertText:p,range:d,uri:a.uri,index:A.completion.completionIndex,telemetry:A.telemetry,displayText:A.completion.displayText,position:r,offset:a.offsetAt(r),resultType:n,copilotAnnotations:A.copilotAnnotations,clientCompletionId:A.clientCompletionId}});if(n===2&&s!==void 0){let A=l.find(d=>d.index===s);if(A){let d=l.filter(p=>p.index!==s);l=[A,...d]}}return l}i(xlt,"completionsFromGhostTextResults");async function Jgn(t,e,n,a={}){let r=0;a.selectedCompletionInfo?.text&&!a.selectedCompletionInfo.text.includes(")")&&(e=e.addSelectedCompletionInfo(a.selectedCompletionInfo),r=e.position.character-a.selectedCompletionInfo.range.end.character);let o=await z7(t,e,n,a);if(o.type!=="success")return o;let[s,c]=o.value;if(n?.isCancellationRequested)return{type:"canceled",reason:"after getGhostText",telemetryData:{telemetryBlob:o.telemetryBlob}};let l=qze(t,e.textDocument,e.position,c),A=xlt(t,s,c,e.textDocument,e.position,a.formattingOptions,l);if(A.length===0)return{type:"empty",reason:"no completions in final result",telemetryData:o.telemetryData};let d=t.get($t),p=(ia(t,yt.AlwaysRequestMultiline)??d.enableProgressiveReveal(o.telemetryBlob))&&Jh.isSupported(e.textDocument.detectedLanguageId),m=ia(t,yt.EnableSpeculativeRequests),g=d.enableSpeculativeRequests(o.telemetryBlob),f=p||(m??g),b=ia(t,yt.EnableSpeculativeRequestsShown)??d.enableSpeculativeRequestsShown(o.telemetryBlob);if(f&&c!==2){e=e.applyEdits([{newText:A[0].insertText,range:A[0].range}]);let _={isSpeculative:!0,opportunityId:a.opportunityId},x=i(()=>z7(t,e,void 0,_),"fn");b?t.get(vm).set(A[0].clientCompletionId,x):Promise.resolve().then(x)}let w=A.map(_=>{let{start:x,end:I}=_.range,Q=Hr.Range.create(x,Hr.Position.create(I.line,I.character-r));return{..._,range:Q}});return{...o,value:w}}i(Jgn,"getInlineCompletionsResult");async function Elt(t,e,n,a,r={}){Vgn(t,e,n);let o=await Jgn(t,fy(e,n),a,r);return aMe(t,o)}i(Elt,"getInlineCompletions");function Vgn(t,e,n){let a=e.getText({start:{line:Math.max(n.line-1,0),character:0},end:n}),r=e.getText({start:n,end:{line:Math.min(n.line+2,e.lineCount-1),character:e.lineCount-1>n.line?0:n.character}});gj.debug(t,`Requesting for ${e.uri} at ${n.line}:${n.character}`,`between ${JSON.stringify(a)} and ${JSON.stringify(r)}.`)}i(Vgn,"logCompletionLocation");var Np=require("vscode");var klt="_github.copilot.ghostTextPostInsert",lV=class{constructor(e){this.ctx=e}static{i(this,"GhostTextProvider")}async provideInlineCompletionItems(e,n,a,r){let o=Jy(this.ctx,e);if(!o)return;let s=a.requestUuid,c=Np.window.visibleTextEditors.find(d=>d.document.uri===e.uri)?.options,l=await Elt(this.ctx,o,n,r,{isCycling:a.triggerKind===Np.InlineCompletionTriggerKind.Invoke,selectedCompletionInfo:a.selectedCompletionInfo,formattingOptions:c,opportunityId:s,debounceMs:50});return l?{items:l.map(d=>{let{start:p,end:m}=d.range,g=new Np.Range(p.line,p.character,m.line,m.character);return new Np.InlineCompletionItem(d.insertText,g,{title:"Completion Accepted",command:klt,arguments:[d]})})}:void 0}handleDidShowCompletionItem(e){let n=e.command.arguments[0];jze(this.ctx,n)}handleDidPartiallyAcceptCompletionItem(e,n){if(typeof n=="number")return;let a=e.command.arguments[0];Zze(this.ctx,a,n.acceptedLength,n.kind)}handleEndOfLifetime(e,n){if(n.kind!==Np.InlineCompletionEndOfLifeReasonKind.Rejected)return;let a=e.command?.arguments?.[0];a&&kt(this.ctx,"ghostText.dismissed",a.telemetry)}};function vlt(t){return Np.commands.registerCommand(klt,async n=>{Gze(t,n);try{await Np.commands.executeCommand("github.copilot.survey.signalUsage","completions")}catch{}})}i(vlt,"registerGhostTextDependencies");u();var n1=require("vscode");u();var uV=require("vscode");var k_e={command:rXe,title:"Send Copilot Completion Feedback",tooltip:"Send feedback about the last shown Copilot completion item"},AV=class{constructor(e){this.ctx=e;Ko(this.ctx,k_e.command,async()=>{let n=this.lastShownCopilotCompletionItem?.command?.arguments?.[0],a;n&&typeof n=="object"&&"telemetry"in n&&n.telemetry instanceof En&&(a=n.telemetry),kt(this.ctx,"ghostText.sentFeedback",a),await Xgn(this.ctx,this.lastShownCopilotCompletionItem,a)})}static{i(this,"CopilotCompletionFeedbackTracker")}trackItem(e){this.lastShownCopilotCompletionItem=e}};async function Xgn(t,e,n){let a=efn(t,e,n);await uV.commands.executeCommand("workbench.action.openIssueReporter",{extensionId:"github.copilot",uri:uV.Uri.parse("https://github.com/microsoft/vscode"),data:a})}i(Xgn,"openGitHubIssue");function efn(t,e,n){let a=dlt(t,n),r=nV(a);return typeof e?.insertText!="string"?"":`## Copilot Completion Feedback ### Describe the issue, feedback, or steps to reproduce it: ### Completion text: \`\`\` ${e.insertText} \`\`\`
Diagnostics ${r}
`}i(efn,"generateGitHubIssueBody");u();var pV=require("vscode");function Blt(t){if(typeof t.command?.command!="string"||typeof t.command?.arguments?.[0]!="string")throw new Error("InlineCompletionItem must have a command with arguments")}i(Blt,"assertHasGoodCommand");var dV=class{constructor(e){this.client=e}static{i(this,"LanguageClientInlineCompletionItemProvider")}async provideInlineCompletionItems(e,n,a,r){let o=this.client.code2ProtocolConverter.asInlineCompletionParams(e,n,a);return o.context.triggerKind=a.triggerKind===pV.InlineCompletionTriggerKind.Invoke?1:2,o.formattingOptions=pV.window.visibleTextEditors.find(s=>s.document.uri===e.uri)?.options,await this.client.sendRequest(Fce.type,o,r).then(s=>this.client.protocol2CodeConverter.asInlineCompletionResult(s,r)).then(s=>Array.isArray(s)?{items:s}:s)}handleDidShowCompletionItem(e){Blt(e),this.client.sendNotification(Rce.type,{item:e})}handleDidPartiallyAcceptCompletionItem(e,n){typeof n!="number"&&(Blt(e),this.client.sendNotification(Nce.type,{item:e,acceptedLength:n.acceptedLength}))}};u();u();var hE=class{constructor(e,n){this.workspaceUris=e;this.params=n}static{i(this,"FileWatcher")}};u();u();u();u();u();var js=class t{static{i(this,"TextRange")}static{this.empty=new t(0,0)}constructor(e,n){this.start=e,this.length=n}static fromBounds(e,n){return new t(e,n-e)}get end(){return this.start+this.length}contains(e){return this.start<=e&&this.end>=e}containsRange(e){return this.start<=e.start&&this.end>=e.end}equals(e){return this.start===e.start&&this.length===e.length}getText(e){return e.slice(this.start,this.end)}getTextWithIndentation(e,n){let a=[],r=this.start;for(r=Qlt(e,e.length,r),Ilt(a,n);r0||l>0||A>0||d>0?new zb(n,"","",js.fromBounds(o,s),js.fromBounds(A,d),js.fromBounds(p,m),b,t.kindFromString(g),0):null;if(w){t.updateScopesForSymbol(e,w);let _=w.nameRange.getText(a),x=this.createNameFromScopes(a,e.toArray());return x=f?`${f}.${x}`:x,new zb(n,x,_.substring(_.lastIndexOf(".")+1),w.commentRange,w.nameRange,w.bodyRange,w.extentRange,w.kind,0)}return null}static updateScopesForSymbol(e,n){for(;e.tryPeek()&&!e.peek()?.extentRange.containsRange(n.extentRange);)e.pop();e.push(n)}static kindFromString(e){switch(e){case"definition.class":return 0;case"definition.constant":return 1;case"definition.enum_variant":return 3;case"definition.enum":return 2;case"definition.field":return 4;case"definition.function":return 5;case"definition.implementation":return 6;case"definition.interface":return 7;case"definition.macro":return 8;case"definition.method":return 9;case"import.module":case"definition.module":case"definition.module.filescoped":return 10;case"definition.struct":return 11;case"definition.trait":return 12;case"definition.type":return 13;case"definition.union":return 14;case"reference":return 16;case"wildcard":return 18;case"alias":return 19;case"import":return 17;default:throw new Error("NotSupportedException")}}cleanQuotedString(e){return e.replace(/^(['"])(.*)\1$/,"$2")}};var mV=class extends mc{static{i(this,"GoSymbolExtractor")}get languageId(){return"go"}extractSymbols(e,n){return this.executeQuery(e,n,tfn)}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},gV=class extends mc{static{i(this,"GoReferenceExtractor")}get languageId(){return"go"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}extractReferences(e,n){return this.executeQuery(e,n,afn)}async extractLocalReferences(e,n,a){let r=await this.executeQuery(e,n,rfn),o=r.filter(l=>l.kind!==9),s=r.filter(l=>l.kind===9&&l.extentRange.containsRange(a)),c=[];for(let l of s)c.push(...o.filter(A=>l.extentRange.containsRange(A.extentRange)));return c}},fV=class extends mc{static{i(this,"GoImportExtractor")}get languageId(){return"go"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractSymbols(e,n){let a=await this.findMatches(n,nfn),r=new Set;try{a.matches.forEach(o=>{let s,c,l;for(let A of o.captures)A.name==="import.name"?s=A:A.name==="alias"?c=A:A.name==="import"&&(l=A);if(s&&l){let A=this.cleanQuotedString(s.node.text),d=s.node.startIndex+1,p=s.node.endIndex-1,m=c?new js(c.node.startIndex,c.node.endIndex-c.node.startIndex):new js(d,p-d),g=new js(l.node.startIndex,l.node.endIndex-l.node.startIndex),f=js.empty,b=js.empty,w=A.substring(A.lastIndexOf("/")+1);r.add(new zb(e,A,w,f,m,b,g,17,0))}})}finally{a.tree.delete()}return r.size>0?[...r]:[]}},tfn=` ( ((comment)* @comment) . (type_declaration (type_spec name: (_) @name type: (struct_type (field_declaration_list) @body))) @definition.struct ) ( ((comment)* @comment) . (type_declaration (type_spec name: (_) @name type: (interface_type (_)) @body)) @definition.interface ) ( ((comment)* @comment) . (method_declaration receiver: (parameter_list (parameter_declaration type: [(type_identifier) @receiver (pointer_type (type_identifier) @receiver)] )) name: (_) @name body: (_) @body) @definition.method ) ( ((comment)* @comment) . (method_elem name: (_) @name) @definition.method ) ( ((comment)* @comment) . (function_declaration name: (_) @name) @definition.method ) ( ((comment)* @comment) . (field_declaration name: (_) @name) @definition.field ) `,nfn=` (import_declaration (import_spec name: (package_identifier)? @alias path: (interpreted_string_literal) @import.name)+) @import (import_declaration (import_spec_list (import_spec name: (package_identifier)? @alias path: (interpreted_string_literal) @import.name))+) @import `,afn=` (call_expression function: (_) @name) @reference (type_identifier) @reference `,rfn=` (call_expression function: (_) @name) @reference (type_identifier) @reference `;u();var bV=class extends mc{static{i(this,"JavaSymbolExtractor")}get languageId(){return"java"}extractSymbols(e,n){return this.executeQuery(e,n,ifn)}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},yV=class extends mc{static{i(this,"JavaReferenceExtractor")}get languageId(){return"java"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}extractReferences(e,n){return this.executeQuery(e,n,sfn)}async extractLocalReferences(e,n,a){let r=await this.executeQuery(e,n,cfn),o=r.filter(l=>l.kind!==9),s=r.filter(l=>l.kind===9&&l.extentRange.containsRange(a)),c=[];for(let l of s)c.push(...o.filter(A=>l.extentRange.containsRange(A.extentRange)));return c}},wV=class extends mc{static{i(this,"JavaImportExtractor")}get languageId(){return"java"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractSymbols(e,n){return(await this.executeQuery(e,n,ofn)).filter(r=>r.kind===0)}},ifn=` ( [ (block_comment) @comment (line_comment)* @comment ] . (class_declaration name: (identifier) @name body: (class_body) @body) @definition.class ) ( [ (block_comment) @comment (line_comment)* @comment ] . (constructor_declaration name: (identifier) @name body: (constructor_body) @body) @definition.method ) ( [ (block_comment) @comment (line_comment)* @comment ] . (method_declaration name: (identifier) @name body: (block)? @body) @definition.method ) ( [ (block_comment) @comment (line_comment)* @comment ] . (interface_declaration name: (identifier) @name body: (interface_body) @body) @definition.interface ) ( [ (block_comment) @comment (line_comment)* @comment ] . (field_declaration declarator: (variable_declarator name: (identifier) @name)) @definition.field ) ( [ ((line_comment)* @comment) ((block_comment)* @comment) ] . (enum_declaration name: (_) @name body: (_) @body) @definition.enum ) ( [ ((line_comment)* @comment) ((block_comment)* @comment) ] . (enum_constant name: (identifier) @name) @definition.enum_variant ) `,ofn=` ( [ ((line_comment)* @comment) ((block_comment)* @comment) ] . (import_declaration (scoped_identifier) @name (asterisk)? @wildcard ) @definition.class ) `,sfn=` (method_invocation name: (identifier) @name ) @reference (type_identifier) @reference `,cfn=` (method_invocation name: (identifier) @name ) @reference (type_identifier) @reference `;u();var lfn=new Set(["null","undefined","void","object","symbol","bigint","Array","Promise","Date","RegExp","Map","Set"]),CV=class extends mc{static{i(this,"JavaScriptSymbolExtractor")}get languageId(){return"javascript"}extractSymbols(e,n){return this.executeQuery(e,n,Afn)}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},_V=class extends mc{static{i(this,"JavaScriptReferenceExtractor")}extractLocalReferences(e,n,a){throw new Error("Method not implemented.")}get languageId(){return"javascript"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractReferences(e,n){return(await this.executeQuery(e,n,ufn)).filter(r=>!lfn.has(r.unqualifiedName))}};var Afn=` ( ((comment)* @comment) . [ (class_declaration name: (_) @name body: (_) @body) @definition.class (function_declaration name: (_) @name body: (_) @body) @definition.function (export_statement declaration: (lexical_declaration (variable_declarator name: (identifier) @name value: (_) @body))) @definition.function ] ) `,ufn=` (call_expression function: (_) @name) @reference `;u();var dfn=new Set(["int","str","float","bool","list","dict","tuple","set"]),xV=class extends mc{static{i(this,"PythonSymbolExtractor")}get languageId(){return"python"}extractSymbols(e,n){return this.executeQuery(e,n,pfn)}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},EV=class extends mc{static{i(this,"PythonReferenceExtractor")}get languageId(){return"python"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractReferences(e,n){return(await this.executeQuery(e,n,mfn)).filter(r=>!dfn.has(r.unqualifiedName))}async extractLocalReferences(e,n,a){let r=await this.executeQuery(e,n,ffn),o=r.filter(l=>l.kind!==9),s=r.filter(l=>l.kind===9&&l.extentRange.containsRange(a)),c=[];for(let l of s)c.push(...o.filter(A=>l.extentRange.containsRange(A.extentRange)));return c}},kV=class extends mc{static{i(this,"PythonImportExtractor")}get languageId(){return"python"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractSymbols(e,n){let a=await this.findMatches(n,gfn),r=new Set;try{a.matches.forEach(o=>{let s,c,l,A;for(let d of o.captures)d.name==="import.name"?s=d:d.name==="import.module"?l=d:d.name==="alias"?c=d:d.name==="import"&&(A=d);if(l&&A){let d=s||l,p=c?new js(c.node.startIndex,c.node.endIndex-c.node.startIndex):new js(d.node.startIndex,A.node.endIndex-d.node.endIndex),m=new js(A.node.startIndex,A.node.endIndex-A.node.startIndex),g=js.empty,f=js.empty,b=d.node.text,w=b.split(".").pop()||b,_;s?_=`${l.node.text}.${s.node.text}`:_=l.node.text,r.add(new zb(e,_,w,g,p,f,m,17,0))}})}finally{a.tree.delete()}return r.size>0?[...r]:[]}},pfn=` ( ((comment)* @comment) . (class_definition name: (_) @name body: (_) @body) @definition.class ) ( ((comment)* @comment) . (function_definition name: (_) @name body: (_) @body) @definition.method ) `,mfn=` (call function: (_) @name) @reference (type [ (identifier)* @name (_ (identifier) @name)* ]) @reference (class_definition superclasses: (argument_list (identifier) @name)) @reference `,gfn=` (import_statement name: (dotted_name) @import.module) @import (import_from_statement module_name: (dotted_name) @import.module name: (dotted_name (identifier) @import.name)) @import (import_statement name: (aliased_import name: (dotted_name) @import.module alias: (identifier)? @alias)) @import (import_from_statement module_name: (dotted_name) @import.module name: (aliased_import name: ((dotted_name) @import.name) alias: (identifier) @alias)) @import `,ffn=` (call function: (_) @name) @reference (type [ (identifier)* @name (_ (identifier) @name)* ]) @reference (class_definition superclasses: (argument_list (identifier) @name)) @reference `;u();var hfn=new Set(["string","number","boolean","null","undefined","void","any","never","object","symbol","bigint","Array","Promise","Date","RegExp","Map","Set"]),DF=class extends mc{static{i(this,"TypeScriptSymbolExtractor")}get languageId(){return"typescript"}extractSymbols(e,n){return this.executeQuery(e,n,bfn)}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},SF=class extends mc{static{i(this,"TypeScriptReferenceExtractor")}get languageId(){return"typescript"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractReferences(e,n){return(await this.executeQuery(e,n,yfn)).filter(r=>!hfn.has(r.unqualifiedName))}async extractLocalReferences(e,n,a){throw new Error("Method not implemented.")}};var bfn=` ( ((comment)* @comment) . [ (class_declaration name: (_) @name body: (_) @body) @definition.class (interface_declaration name: (_) @name body: (_) @body) @definition.interface (type_alias_declaration name: (type_identifier) @name) @definition.type (abstract_class_declaration name: (type_identifier) @name) @definition.class (enum_declaration name: (identifier) @name) @definition.type ] ) ( ((comment)* @comment) . [ (method_definition name: (_) @name body: (_) @body) @definition.method (function_declaration name: (_) @name body: (_) @body) @definition.function (function_signature name: (identifier) @name) @definition.function (method_signature name: (property_identifier) @name) @definition.method (abstract_method_signature name: (property_identifier) @name) @definition.method (variable_declarator name: (identifier) @name type: (type_annotation (type_identifier))) ] ) `,yfn=` (call_expression function: (_) @name) @reference (type_identifier) @name @reference (new_expression constructor: (identifier) @name) @reference `;u();var wfn=new Set(["string","number","boolean","null","undefined","void","any","never","object","symbol","bigint","Array","Promise","Date","RegExp","Map","Set"]),vV=class extends DF{static{i(this,"TypeScriptReactSymbolExtractor")}get languageId(){return"typescriptreact"}extractSymbols(e,n){return Promise.all([this.executeQuery(e,n,Cfn),super.extractSymbols(e,n)]).then(([a,r])=>[...a,...r])}createNameFromScopes(e,n){return n.map(a=>a.nameRange.getText(e)).join(".")}},BV=class extends SF{static{i(this,"TypeScriptReactReferenceExtractor")}get languageId(){return"typescriptreact"}createNameFromScopes(e,n){return n.length>0?n[n.length-1].nameRange.getText(e):""}async extractReferences(e,n){let[a,r]=await Promise.all([this.executeQuery(e,n,_fn),super.extractReferences(e,n)]);return[...a.filter(o=>!wfn.has(o.unqualifiedName)),...r]}},Cfn=` ( ((comment)* @comment) . [ (lexical_declaration (variable_declarator name: (identifier) @name value: (arrow_function parameters: (_) body: (_) @body))) @definition.function ] ) `,_fn=` (jsx_element open_tag: (jsx_opening_element name: (_) @name) close_tag: (jsx_closing_element) ) @reference (jsx_self_closing_element name: (_) @name) @reference (import_specifier name:(identifier) @name) @reference `;var lM=[{symbolExtractor:new bV,referenceExtractor:new yV,importExtractor:new wV,languageId:"java"},{symbolExtractor:new mV,referenceExtractor:new gV,importExtractor:new fV,languageId:"go"},{symbolExtractor:new xV,referenceExtractor:new EV,importExtractor:new kV,languageId:"python"},{symbolExtractor:new DF,referenceExtractor:new SF,languageId:"typescript"},{symbolExtractor:new vV,referenceExtractor:new BV,languageId:"typescriptreact"},{symbolExtractor:new CV,referenceExtractor:new _V,languageId:"javascript"}];function Dlt(t){let e=G2({uri:t});if(e&&lM.some(n=>e===n.languageId))return e}i(Dlt,"getSupportedLanguageIdForMultiLanguageProvider");var tMr=new Map(lM.map(t=>[t.languageId,t.referenceExtractor])),Slt=new Map(lM.map(t=>[t.languageId,t.symbolExtractor])),nMr=new Map(lM.filter(t=>t.importExtractor!==void 0).map(t=>[t.languageId,t.importExtractor])),v_e=lM.map(t=>Kv[t.languageId].extensions).flat();u();u();var IV=ot(require("path")),Tlt=require("worker_threads");function Flt(t,e){return new Tlt.Worker(IV.default.resolve(IV.default.extname(__filename)!==".ts"?__dirname:IV.default.resolve(__dirname,"../../dist"),t),{workerData:e})}i(Flt,"createWorker");u();var QV=class{static{i(this,"IndexNotification")}constructor(e){this.operation=e}},bE=class extends QV{constructor(n,a){super(a);this.id=n;this.id=n}static{i(this,"IndexRequest")}},DV=class extends QV{constructor(n){super(t1.Cancel);this.messageIdToCancel=n}static{i(this,"CancellationNotification")}},t1={CreateIndex:"createIndex",AddOrInvalidated:"addOrInvalidated",GetContext:"getContext",Exit:"exit",Response:"response",RemoveIndex:"removeIndex",Cancel:"cancel",GetAllDocumentsInWorkspace:"getAllDocumentsInWorkspace"},SV=class extends bE{constructor(n,a,r){super(n,t1.CreateIndex);this.baseWorkspaceFolderUri=a;this.databaseFilePath=r}static{i(this,"CreateIndexRequest")}},TV=class extends bE{constructor(n,a){super(n,t1.RemoveIndex);this.baseWorkspaceFolderUri=a}static{i(this,"RemoveIndexRequest")}},FV=class extends bE{constructor(n,a,r){super(n,t1.AddOrInvalidated);this.fileUri=a;this.languageId=r}static{i(this,"AddOrInvalidatedRequest")}},RV=class extends bE{constructor(n,a){super(n,t1.GetAllDocumentsInWorkspace);this.baseWorkspaceFolderUri=a}static{i(this,"GetAllDocumentsRequest")}},NV=class extends bE{constructor(n,a,r,o,s,c){super(n,t1.GetContext);this.fileUri=a;this.code=r;this.offset=o;this.languageId=s;this.params=c}static{i(this,"GetContextRequest")}},PV=class extends bE{static{i(this,"ExitRequest")}constructor(e){super(e,t1.Exit)}};u();var LV=class{constructor(e){this.maxDegreeOfParalellism=e;this.outstandingPromises=[],this.runningPromises=0}static{i(this,"PriorityLimiter")}queue(e,n=!1){return new Promise((a,r)=>{n?this.outstandingPromises.unshift({factory:e,c:a,e:r}):this.outstandingPromises.push({factory:e,c:a,e:r}),this.consume()})}consume(){for(;this.outstandingPromises.length&&this.runningPromisesthis.consumed(),()=>this.consumed())}}consumed(){this.runningPromises--,this.outstandingPromises.length>0&&this.consume()}};var Rlt=ot(Bn());var MV="main.js",zV=class{constructor(e,n,a=3){this.promiseResolvers=new Map;this.id=0;try{let r={cwd:process.cwd(),indexWorkspaceRoots:e,params:n};this.worker=Flt(MV,r),this.worker.on("message",this.handleWorkerMessage.bind(this)),this.worker.on("error",o=>{this.handleUnexpectedError(o)}),this.postMessageQueue=new LV(a)}catch(r){throw console.error(`Failed to create worker: ${r.message}`),r}}static{i(this,"IndexClient")}dispose(){return this.postMessageInQueue(new PV(this.id++),Rlt.CancellationToken.None,!0)}async indexFile(e,n,a){return await this.postMessageInQueue(new FV(this.id++,e,n),a)}async getAllFileNames(e,n){return this.postMessageInQueue(new RV(this.id++,e),n)}getContext(e,n,a,r,o,s){return this.postMessageInQueue(new NV(this.id++,e,n,a,r,o),s,!0)}tryCreateIndex(e,n,a){return this.postMessageInQueue(new SV(this.id++,e,n),a)}async postMessageInQueue(e,n,a=!1){return this.postMessageQueue.queue(()=>this.postMessageAndWait(e,n),a)}tryRemoveIndex(e,n){return this.postMessageAndWait(new TV(this.id++,e),n)}async postMessageAndWait(e,n){if(this.fatalError)return Promise.reject(this.fatalError);let a=new Promise((o,s)=>{this.promiseResolvers.set(e.id,{resolve:o,reject:s})});this.worker.postMessage(e);let r=n.onCancellationRequested(()=>{this.worker.postMessage(new DV(e.id))});try{return await a}finally{r.dispose()}}handleWorkerMessage(e){if(e.operation!=="response")throw new Error("Unexpected message operation");let n=this.promiseResolvers.get(e.id);if(!n)throw new Error(`Received response for message that isn't in progress: ${e.id}`);this.promiseResolvers.delete(e.id),e.error?(e.error.code=e.code,n.reject(e.error)):n.resolve(e.data)}handleUnexpectedError(e){let n;if(e instanceof Error){n=e,n.code==="MODULE_NOT_FOUND"&&n.message?.endsWith(MV+"'")&&(n=new Error(`Failed to load ${MV}`),n.code="CopilotPromptLoadFailure");let a=new Error().stack;n.stack&&a?.match(/^Error\n/)&&(n.stack+=a.replace(/^Error/,""))}else e&&typeof e=="object"&&"name"in e&&"status"in e&&e.name==="ExitStatus"&&typeof e.status=="number"?(n=new Error(`${MV} exited with status ${e.status}`),n.code=`CopilotPromptWorkerExit${e.status}`):n=new Error(`Non-error thrown: ${JSON.stringify(e)}`);for(let a of this.promiseResolvers.values())a.reject(n);this.promiseResolvers.clear(),this.fatalError=n}};var AM=ot(Bn());var kA=new rn(gB),$V=class{constructor(e,n,a,r,o){this.ctx=e;this.watcher=n;this.workspaceDatabasePersistenceManager=a;this.workspaceInit=new Map;this.watcher.onFileChange(async(s,c)=>{await this.indexFile(c,this.languageId(c)??"plaintext")}),this.watcher.onWorkspaceChange(async(s,c)=>{if(s===1){kA.debug(this.ctx,`workspace removed: ${c}`),await this.indexClient.tryRemoveIndex(c,AM.CancellationToken.None);return}kA.debug(this.ctx,`workspace added: ${c}`),await this.indexAddedWorkspace(c)}),this.indexClient=new zV(r,o);for(let s of r){let c=s.rootPath;this.workspaceInit.set(c,this.doWorkspaceIndex(c).then(()=>{kA.debug(this.ctx,`workspace ${c} indexed`),this.workspaceInit.delete(c)}))}}static{i(this,"MultiLanguageContextIndexWatcher")}isInitializing(e){for(let[n]of this.workspaceInit)if(e.startsWith(n))return!0;return!1}dispose(){return this.indexClient.dispose()}async indexAddedWorkspace(e){let n=await B_e(e,this.workspaceDatabasePersistenceManager);await this.indexClient.tryCreateIndex(n.rootPath,n.databaseFilePath,AM.CancellationToken.None),this.workspaceInit.has(e)&&await this.workspaceInit.get(e);let a=this.doWorkspaceIndex(e).then(()=>{kA.debug(this.ctx,`workspace ${e} indexed`),this.workspaceInit.delete(e)});this.workspaceInit.set(e,a)}async doWorkspaceIndex(e){kA.debug(this.ctx,`indexing workspace ${e}`);let n=v_e.map(d=>`*${d}`);if(n.length===0)return;let r=`**/${v_e.length===1?n[0]:`{${n.join(",")}}`}`,o=this.ctx.get(Zu),s=await Promise.all([o.findFiles(r,{uri:e},{excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0,excludeIDESearchIgnoredFiles:!0}),this.indexClient.getAllFileNames(e,AM.CancellationToken.None)]),c=s[0],l=s[1],A=Array.from(new Set([...c,...l]));kA.debug(this.ctx,`found ${A.length} files to index in ${e}`),await Promise.all(A.map(async d=>{let p=this.languageId(d);p&&await this.indexFile(d.replace(/\/+$/,""),p)})),kA.debug(this.ctx,`finished indexing workspace ${e}`)}async indexFile(e,n){try{kA.debug(this.ctx,`index triggered for ${e}`),await this.indexClient.indexFile(e,n,AM.CancellationToken.None)}catch(a){kA.debug(this.ctx,`failed to index ${e} with ${a}`)}}languageId(e){return Dlt(e)}};async function B_e(t,e){return{databaseFilePath:await e.getDBFilePath(t),rootPath:t}}i(B_e,"createIndexableWorkspaceFolder");u();u();var Nlt=100,Efn=5e3,OV=class{static{i(this,"CachedContextFetcher")}constructor(){}runWithCache(e,n,a,r,o,s,c,l){let A=Date.now(),d=this.get(a,r,n,A);if(d)return this.incrementRefCount(d),l.onCancellationRequested(()=>this.decrementRefCount(d)),d.value;if(!s)return e(n,a,r,o,c,l);let p=new Hr.CancellationTokenSource,m=i(()=>p.cancel(),"cancel"),g=e(n,a,r,o,c,p.token);return d=this.setBasedOnLastDelimiter(a,r,n,A,g,m),this.incrementRefCount(d),l.onCancellationRequested(()=>this.decrementRefCount(d)),g}get(e,n,a,r){if(this.cachedValue&&this.cachedValue.uri===a&&!(Math.abs(this.cachedValue.cursorPosition-n)>Nlt)){if(n>this.cachedValue.cursorPosition){if(e.substring(this.cachedValue.cursorPosition,n).match(/[^A-Za-z0-9]/))return}else if(nEfn))return this.cachedValue}}setBasedOnLastDelimiter(e,n,a,r,o,s){let c=e.substring(0,n),l=/[A-Za-z0-9]+$/.exec(c),A=n;l&&(A=l.index),n-A>Nlt&&(A=n);let d={cursorPosition:A,uri:a,timestamp:r,fullText:e,value:o.finally(()=>{d.complete=!0}),refCount:0,cancel:s,uuid:Ua(),complete:!1};return this.cachedValue=d}incrementRefCount(e){e&&e.refCount++}decrementRefCount(e){e&&!e.complete&&(e.refCount--,e.refCount<=0&&e.cancel())}};u();var dw=class{static{i(this,"MultiLanguageContextProviderFeatureLifecycle")}async dispose(){}};var UV=class{constructor(e){this.id=gB;this.selector=Array.from(Slt.keys()).map(e=>({language:e}));try{this.documentManager=e.get(Sn),this.resolver=new I_e(this.documentManager,e)}catch(n){throw kA.error(e,"Failed to create multi-language context provider",n),n}}static{i(this,"MultiLanguageContextProvider")}},I_e=class{constructor(e,n){this.ctx=n;this.documentManager=e,this.cachedContextFetcher=new OV}static{i(this,"MultiLanguageContextResolver")}resolve(e,n){return this.resolveImpl(e,n)}async resolveImpl(e,n){let a=this.ctx.get(dw).indexWatcher;if(!a)return[];if(a.isInitializing(e.documentContext.uri))return[];let r=a.indexClient;try{let o=await this.documentManager.getTextDocument({uri:e.documentContext.uri});if(o===void 0||o?.version!==e.documentContext.version)return[];let s=e.documentContext.position,c=e.documentContext.proposedEdits??[],l=fy(o,s);l=l.applyEdits(c);let A=E5e(e.activeExperiments),d=await this.cachedContextFetcher.runWithCache(r.getContext.bind(r),e.documentContext.uri,l.textDocument.getText(),l.textDocument.offsetAt(l.position),e.documentContext.languageId,l.editsWithPosition.length===0,A,n);return kA.debug(this.ctx,`Context items found for ${e.documentContext.uri}: ${d.map(p=>JSON.stringify(p)).join(", ")}`),d}catch(o){if(c7(o))return[];throw kA.error(this.ctx,"Failed to get context",o),o}}};u();var Mlt=require("crypto"),Q_e=require("fs"),D_e=ot(require("path"));var Plt="symbolDatabaseLookup",Llt="multiLanguageContextProviderDocumentSymbols",qV=class{constructor(e){this.persistenceManager=e}static{i(this,"WorkspaceDatabasePersistenceManager")}async getDBFilePath(e){await this.init();let n=await this.persistenceManager.read(Plt,e);return n||(n=await this.createDBFile(e)),D_e.default.join(this.persistenceManager.directory,Llt,n)}async init(){let e=D_e.default.join(this.persistenceManager.directory,Llt);await this.createIfNotExists(e)}async dirExists(e){try{return await Q_e.promises.access(e),!0}catch{return!1}}async createIfNotExists(e){try{await this.dirExists(e)||await Q_e.promises.mkdir(e,{recursive:!0})}catch{throw new Error(`Failed to create directory: ${e}`)}}async createDBFile(e){let n=`${(0,Mlt.randomUUID)()}.db`;return await this.persistenceManager.update(Plt,e,n),n}async deleteDBFile(e){}};u();var TF=require("vscode");u();var pw=require("vscode");var zlt="search.exclude",$lt="files.exclude";function S_e(t,e){let a=pw.workspace.getConfiguration(e,pw.Uri.parse(t)).get("exclude",{}),r=[];return Object.keys(a).forEach(o=>{a[o]&&r.push(o)}),r.map(o=>[o,`${o}/**`]).flat()}i(S_e,"getSettingExcludeGlobs");function T_e(t){return["**/out/**","**/dist/**"]}i(T_e,"getGitIgnoredGlobs");async function uM(t,e){return Promise.all(t.map(n=>S_e(n,e).map(r=>new pw.RelativePattern(pw.Uri.parse(n),r)))).then(n=>n.flat())}i(uM,"getSettingExcludeRelativePatterns");async function Olt(t){return Promise.all(t.map(e=>T_e(e).map(a=>new pw.RelativePattern(pw.Uri.parse(e),a)))).then(e=>e.flat())}i(Olt,"getGitIgnoredRelativePatterns");var jV=class extends Zu{static{i(this,"ExtensionFileSearch")}async findFiles(e,{uri:n},a){let r=[];a.excludeIDESearchIgnoredFiles&&r.push(...S_e(n,"search")),a.excludeGitignoredFiles&&r.push(...T_e(n));let o=new TF.RelativePattern(TF.Uri.parse(n),e);return(await TF.workspace.findFiles(o,a.excludeIDEIgnoredFiles?void 0:null)).filter(c=>{let l=c.toString().substring(n.length);return!r.some(A=>zs(l,A,{nocase:!0,dot:!0}))}).map(c=>c.toString())}};u();var GV=require("vscode");var ZV=class extends hE{constructor(n,a){super(n,a);this.disposableStore=[];this.gitIgnoreGlobs=Promise.resolve([]);this.filesExcludeGlob=Promise.resolve([]);this.searchExcludeGlob=Promise.resolve([]);this.fileWatchers=[];this.workspaceWatchers=[];this.refreshIgnorePatterns(),GV.workspace.onDidChangeConfiguration(r=>{r.affectsConfiguration(zlt)&&a.excludeIDESearchIgnoredFiles&&(this.searchExcludeGlob=uM(this.workspaceUris,"search")),r.affectsConfiguration($lt)&&a.excludeIDEIgnoredFiles&&(this.filesExcludeGlob=uM(this.workspaceUris,"files"))}),this.editorWatcher=GV.workspace.createFileSystemWatcher("**"),this.disposableStore.push(this.editorWatcher.onDidChange(async r=>{await this._triggerOnFileChange(0,r)})),this.disposableStore.push(this.editorWatcher.onDidDelete(async r=>{await this._triggerOnFileChange(1,r)})),this.disposableStore.push(this.editorWatcher.onDidCreate(async r=>{await this._triggerOnFileChange(2,r)})),GV.workspace.onDidChangeWorkspaceFolders(async r=>{for(let o of r.added)await this._triggerOnWorkspaceChange(0,o.uri);for(let o of r.removed)await this._triggerOnWorkspaceChange(1,o.uri)})}static{i(this,"ExtensionFileWatcher")}onFileChange(n){this.fileWatchers.push(n)}async getIgnoreGlobs(){return[...await this.gitIgnoreGlobs,...await this.filesExcludeGlob,...await this.searchExcludeGlob]}onWorkspaceChange(n){this.workspaceWatchers.push(n)}refreshIgnorePatterns(){this.params.excludeGitignoredFiles&&(this.gitIgnoreGlobs=Olt(this.workspaceUris)),this.params.excludeIDEIgnoredFiles&&(this.filesExcludeGlob=uM(this.workspaceUris,"files")),this.params.excludeIDESearchIgnoredFiles&&(this.searchExcludeGlob=uM(this.workspaceUris,"search"))}dispose(){for(let n of this.disposableStore)n.dispose()}async _triggerOnFileChange(n,a){let r=await this.getIgnoreGlobs();for(let o of r)if(a.fsPath.startsWith(o.baseUri.fsPath)){let s=a.fsPath.substring(o.baseUri.fsPath.length);if(zs(s,o.pattern,{nocase:!0,dot:!0}))return}await Promise.all(this.fileWatchers.map(o=>o(n,a.toString())))}async _triggerOnWorkspaceChange(n,a){n===0?(this.workspaceUris.push(a.toString()),this.refreshIgnorePatterns()):n===1&&(this.workspaceUris=this.workspaceUris.filter(r=>r!==a.toString()),this.refreshIgnorePatterns()),await Promise.all(this.workspaceWatchers.map(r=>r(n,a.toString())))}};function Ult(t){let e=t.get(Sn).getWorkspaceFolders(),n=new ZV(e.map(a=>a.uri),{excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0,excludeIDESearchIgnoredFiles:!0});t.set(hE,n),t.set(Zu,new jV),t.set(dw,new F_e(t))}i(Ult,"setupMultiLanguageContextProviderFeature");async function qlt(t){try{t.get(hE).dispose(),await t.get(dw).dispose()}catch{}}i(qlt,"cleanupMultiLanguageContextProviderFeature");async function jlt(t,e){return t.get(dw).tryStart(e)}i(jlt,"startMultiLanguageContextProviderIfApplicable");var F_e=class extends dw{constructor(n){super();this.ctx=n;this.ctx=n}static{i(this,"ExtensionMultiLanguageContextProviderFeatureLifecycle")}async tryStart(n){await this.shouldStart(n)&&await this.start()}get indexWatcher(){return this._multiLanguageContextIndexWatcher}async shouldStart(n){if(this._multiLanguageContextIndexWatcher!==void 0)return!1;let a=!1;try{let r=await this.ctx.get($t).updateExPValuesAndAssignments(n),o=A7(this.ctx,r);a=o.includes(gB)||o.length===1&&o[0]==="*"}catch(r){return kA.debug(this.ctx,"Failed to check Multi-Language Context Provider activation conditions:",r),!1}return a}async start(){if(this._multiLanguageContextIndexWatcher){kA.warn(this.ctx,"Attempted to start Multi-Language Context Provider, but it is already started.");return}this._multiLanguageContextIndexWatcher=await this.createWatcher(),this.ctx.get(Nl).registerContextProvider(new UV(this.ctx))}async createWatcher(){let n=this.ctx.get(Sn).getWorkspaceFolders(),a=this.ctx.get(hE),r=this.ctx.get(aI),o=new qV(r),s=await Promise.all(n.map(async A=>B_e(A.uri,o))),c=await this.ctx.get($t).updateExPValuesAndAssignments(),l=kAe(this.ctx,c);return new $V(this.ctx,a,o,s,l)}async dispose(){await super.dispose();try{await this._multiLanguageContextIndexWatcher?.dispose()}catch{}}};var HV=new rn("inlineCompletionItemProvider");function kfn(){let t=n1.workspace.getConfiguration("editor.quickSuggestions");return t.get("other")!=="on"&&t.get("comments")!=="on"&&t.get("strings")!=="on"}i(kfn,"quickSuggestionsDisabled");var R_e=class{constructor(e){this.ctx=e;this.pendingRequests=new Set;this.copilotCompletionFeedbackTracker=new AV(e),this.ghostTextProvider=new lV(e)}static{i(this,"CopilotInlineCompletionItemProvider")}async waitForPendingRequests(){for(;this.pendingRequests.size>0;)await Promise.all(this.pendingRequests)}get delegate(){let e=this.ctx.get(TI.BaseLanguageClient);return lE()?(this.languageClientProvider??=new dV(e),this.languageClientProvider):this.ghostTextProvider}async provideInlineCompletionItems(e,n,a,r){let o=new Fl;if(this.pendingRequests.add(o.promise),await jlt(this.ctx,{uri:e.uri.toString(),languageId:e.languageId}),a.triggerKind===n1.InlineCompletionTriggerKind.Automatic&&(!nwe(this.ctx,e)||this.ctx.get(ng).kind==="Error"))return;n1.workspace.getConfiguration(Vi).get("respectSelectedCompletionInfo",kfn()||d4e(this.ctx))||(a={...a,selectedCompletionInfo:void 0});try{let c=await this.delegate.provideInlineCompletionItems(e,n,a,r);return setTimeout(()=>{this.pendingRequests.delete(o.promise),o.resolve(void 0)}),c?(Array.isArray(c)&&(c={items:c}),{...c,commands:[k_e]}):void 0}catch(c){CI(this.ctx,c,".provideInlineCompletionItems",HV)}}handleDidShowCompletionItem(e,n){try{return this.copilotCompletionFeedbackTracker.trackItem(e),this.delegate.handleDidShowCompletionItem?.(e,n)}catch(a){CI(this.ctx,a,".provideInlineCompletionItems",HV)}}handleDidPartiallyAcceptCompletionItem(e,n){try{return this.delegate.handleDidPartiallyAcceptCompletionItem?.(e,n)}catch(a){CI(this.ctx,a,".provideInlineCompletionItems",HV)}}handleEndOfLifetime(e,n){try{return this.delegate.handleEndOfLifetime?.(e,n)}catch(a){CI(this.ctx,a,".handleEndOfLifetime",HV)}}};function Glt(t){let e=new R_e(t);return n1.languages.registerInlineCompletionItemProvider({pattern:"**"},e,{debounceDelayMs:0})}i(Glt,"registerInlineCompletion");u();u();var WV=class{static{i(this,"InstallationManager")}async startup(e){await this.isNewInstall(e)?(await this.markInstalled(e),this.handleInstall(e,await this.wasPreviouslyInstalled(e))):await this.isNewUpgrade(e)&&(await this.markUpgraded(e),this.handleUpgrade(e))}uninstall(e){return this.handleUninstall(e)}handleInstall(e,n){n?kt(e,"installed.reinstall"):kt(e,"installed.new")}handleUpgrade(e){kt(e,"installed.upgrade")}handleUninstall(e){kt(e,"uninstalled")}};var dM=ot(Cv());var KV=class extends WV{static{i(this,"VsCodeInstallationManager")}async isNewInstall(e){return!e.get(As).context.globalState.get("installedVersion")&&!await RK()}async markInstalled(e){let n=e.get(Wa).getEditorPluginInfo();await e.get(As).context.globalState.update("installedVersion",n.version)}wasPreviouslyInstalled(){return!1}isNewUpgrade(e){let n=e.get(Wa).getEditorPluginInfo(),a=e.get(As).context.globalState.get("installedVersion");if(a===void 0)return!0;try{return(0,dM.gt)((0,dM.coerce)(n.version),(0,dM.coerce)(a))}catch{return!1}}async markUpgraded(e){await this.markInstalled(e)}};u();var $b=require("vscode");var Zlt=new rn("modelPicker"),vfn=[{label:"",kind:$b.QuickPickItemKind.Separator,modelId:"separator",type:"separator",alwaysShow:!0},{modelId:"learn-more",label:"Learn more $(link-external)",description:"",alwaysShow:!0,type:"learn-more"}],FF=class{constructor(e){this._ctx=e;this.MODELS_INFO_URL="https://aka.ms/CopilotCompletionsModelPickerLearnMore"}static{i(this,"ModelPickerManager")}get models(){return this._ctx.get(Zd).getGenericCompletionModels()}getDefaultModelId(){return this._ctx.get(Zd).getDefaultModelId()}async setUserSelectedCompletionModel(e){return $b.workspace.getConfiguration(Vi).update(yt.UserSelectedCompletionModel,e??"",!0)}async handleModelSelection(e){let n=e.activeItems[0];if(n!==void 0){if(e.hide(),n.type==="learn-more"){await $b.env.openExternal($b.Uri.parse(this.MODELS_INFO_URL)),kt(this._ctx,"modelPicker.learnMoreClicked");return}await this.selectModel(n)}}async selectModel(e){BN(this._ctx)!==e.modelId&&(this._ctx.get(KA).clear(),this._ctx.get(Wc).clear());let a=e.modelId===this.getDefaultModelId()?null:e.modelId;await this.setUserSelectedCompletionModel(a),a===null?Zlt.info(this._ctx,"User selected default model; setting null"):Zlt.info(this._ctx,`Selected model: ${e.modelId}`),kt(this._ctx,"modelPicker.modelSelected",En.createAndMarkAsIssued({engineName:a??"default"}))}modelsForModelPicker(){let e=BN(this._ctx),n=this.models.map(a=>({modelId:a.modelId,label:`${a.label}${a.preview?" (Preview)":""}`,description:`(${a.modelId})`,alwaysShow:a.modelId==this.getDefaultModelId(),type:"model"}));return[e,n]}showModelPicker(){let[e,n]=this.modelsForModelPicker(),a=$b.window.createQuickPick();a.title="Change Completions Model",a.items=[...n,...vfn],a.onDidAccept(()=>this.handleModelSelection(a));let r=e??this.getDefaultModelId(),o=a.items.find(s=>s.modelId===r);return o&&(a.activeItems=[o]),a.show(),a}registerCommands(){Ko(this._ctx,HK,this.showModelPicker.bind(this))}};function Hlt(t){t.get(FF).registerCommands()}i(Hlt,"registerModelPickerCommands");u();var YV=class extends GT{static{i(this,"VSCodeNetworkConfiguration")}getDefaultUrls(){return eE()}};function Wlt(t,e){(t.affectsConfiguration(`${Vi}.advanced`)||t.affectsConfiguration(`${ez}.uri`))&&Gke(e,eE().serverUrl)}i(Wlt,"onDidChangeConfigurationHandler");u();var Gl=require("vscode");u();var pM=class extends ni{constructor(n,a,r="github.copilot.languageStatus"){super();this.ctx=n;this.outputChannel=a;this.showingMessage=!1;this.disposables=[];this.item=Gl.languages.createLanguageStatusItem(r,"*"),this.disposables.push(this.item),this.state=n.get(ng),this.updateStatusBarIndicator(),this.disposables.push(Gl.window.onDidChangeActiveTextEditor(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Gl.workspace.onDidCloseTextDocument(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Gl.workspace.onDidOpenTextDocument(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Gl.workspace.onDidChangeConfiguration(o=>{o.affectsConfiguration(Vi)&&this.updateStatusBarIndicator()}))}static{i(this,"CopilotStatusBar")}didChange(n){this.state.kind=n.kind,this.state.message=n.message,this.state.command=n.command,this.updateStatusBarIndicator()}checkEnabledForLanguage(){return cE(this.ctx)??!0}updateStatusBarIndicator(){if(this.isDisposed())return;Gl.commands.executeCommand("setContext","github.copilot.completions.quotaExceeded",this.state.command?.command===bP);let n=this.checkEnabledForLanguage();switch(Gl.commands.executeCommand("setContext","github.copilot.completions.enabled",n),this.item.command={command:UK,title:"View Details"},this.state.kind){case"Error":this.item.severity=Gl.LanguageStatusSeverity.Error,this.item.text="$(copilot-warning) Completions",this.item.detail="Error";break;case"Warning":this.item.severity=Gl.LanguageStatusSeverity.Warning,this.item.text="$(copilot-warning) Completions",this.item.detail="Temporary issues";break;case"Inactive":this.item.severity=Gl.LanguageStatusSeverity.Information,this.item.text="$(copilot-blocked) Completions",this.item.detail="Inactive";break;case"Normal":this.item.severity=Gl.LanguageStatusSeverity.Information,uF()?n?(this.item.text="$(copilot) Completions",this.item.detail=""):(this.item.text="$(copilot-not-connected) Completions",this.item.detail="Disabled"):(this.item.text="$(copilot-not-connected) Completions",this.item.detail="VS Code inline suggestions disabled"),this.item.command.title="Open Menu";break}this.item.accessibilityInformation={label:"Copilot Completions"},this.state.command&&(this.item.command=this.state.command,this.item.detail=this.state.message)}setError(n,a,r=!a){super.setError(n,a),r&&this.showErrorMessage()}showErrorMessage(){if(this.showingMessage)return;this.showingMessage=!0;let n="Show Output Log",a=[n];Gl.window.showWarningMessage(this.state.message,...a).then(r=>{switch(this.showingMessage=!1,r){case n:this.outputChannel.show();break}})}dispose(){for(let n of this.disposables)n.dispose();this.disposables=[]}isDisposed(){return this.disposables.length===0}};u();var a1=require("vscode");var JV=class{constructor(e){this.ctx=e;this.state=e.get(ng)}static{i(this,"CopilotStatusBarPickMenu")}showStatusMenu(){let e=a1.window.createQuickPick();return e.placeholder="Select an option",e.title="Configure Copilot Completions",e.items=this.collectQuickPickItems(),e.onDidAccept(()=>this.handleItemSelection(e)),e.show(),e}async handleItemSelection(e){let n=e.selectedItems[0];if(n!==void 0)if("command"in n){let a=n;await a1.commands.executeCommand(a.command,...a.commandArgs),e.hide()}else throw new Error("Unexpected Copilot quick picker selection")}collectQuickPickItems(){return[this.newStatusItem(),this.newSeparator(),...this.collectLanguageSpecificItems(),this.newKeyboardItem(),this.newSettingsItem(),...this.collectDiagnosticsItems(),this.newOpenLogsItem(),this.newSeparator(),this.newDocsItem(),this.newForumItem(),...this.collectQuickPickSignInItems()]}collectQuickPickSignInItems(){return this.hasWarningOrErrorStatus()?[this.newSeparator(),this.newSignInItem()]:[]}collectLanguageSpecificItems(){let e=[];if(!this.hasActiveStatus())return e;let n=a1.window.activeTextEditor;return!$C()&&n&&e.push(this.newPanelItem()),$C()||e.push(this.newChangeModelItem()),n&&e.push(...this.newEnableLanguageItem()),e.length&&e.push(this.newSeparator()),e}hasActiveStatus(){return["Normal"].includes(this.state.kind)}hasWarningOrErrorStatus(){return["Error","Warning"].includes(this.state.kind)}isCompletionEnabled(){return uF()&&cE(this.ctx)}newEnableLanguageItem(){let e=this.isCompletionEnabled();return e?[this.newCommandItem("Disable Completions",OK)]:e===!1?[this.newCommandItem("Enable Completions",$K)]:[]}newStatusItem(){let e,n="$(copilot)";switch(this.state.kind){case"Normal":e="Ready",uF()===!1?e+=" (VS Code inline suggestions disabled)":cE(this.ctx)===!1&&(e+=" (Disabled)");break;case"Inactive":e=this.state.message||"Copilot is currently inactive",n="$(copilot-blocked)";break;default:e=this.state.message||"Copilot has encountered an error",n="$(copilot-not-connected)";break}return this.newCommandItem(`${n} Status: ${e}`,J3)}newSignInItem(){return this.newCommandItem("Sign in to GitHub",ZK)}newOpenLogsItem(){return this.newCommandItem("Open Logs...",J3)}collectDiagnosticsItems(){return $C()?[]:[this.newCommandItem("Show Diagnostics...",GK)]}newKeyboardItem(){return this.newCommandItem("$(keyboard) Edit Keyboard Shortcuts...","workbench.action.openGlobalKeybindings",["copilot"])}newSettingsItem(){return this.newCommandItem("$(settings-gear) Edit Settings...","workbench.action.openSettings",["GitHub Copilot"])}newPanelItem(){return this.newCommandItem("Open Completions Panel...",zK)}newChangeModelItem(){return this.newCommandItem("Change Completions Model...",HK)}newForumItem(){return this.newCommandItem("$(comments-view-icon) View Copilot Forum...",qK)}newDocsItem(){return this.newCommandItem("$(remote-explorer-documentation) View Copilot Documentation...",jK)}newCommandItem(e,n,a){return new N_e(e,n,a||[])}newSeparator(){return{label:"",kind:a1.QuickPickItemKind.Separator}}},N_e=class{constructor(e,n,a){this.label=e;this.command=n;this.commandArgs=a}static{i(this,"CommandQuickItem")}};u();u();u();var Tf=class{constructor(e){this.ctx=e;this.isUpdating=!1;this.disposables=[];this.disposables.push(H5e(e,n=>{this.isUpdating||(this.isUpdating=!0,setTimeout(()=>{this.provideUpdate(n)},0))}))}static{i(this,"WorkspaceContextProvider")}async provideUpdate(e){try{let n=await EAe(this.getContext(e.changes,e.weights,e.context));if(n.status==="error")sp(this.ctx,n.reason,`WorkspaceContextProvider.${this.sourceIds[0]??"unknown"}.getContext`);else{let a=new Map;for(let r of n.value??[])Gu(a,r.source,()=>[]).push(r);for(let r of this.sourceIds){let o=a.get(r)??[];W5e(this.ctx,r,o)}}}catch(n){sp(this.ctx,n,`WorkspaceContextProvider.${this.sourceIds[0]??"unknown"}.provideUpdate`)}this.isUpdating=!1}dispose(){for(let e of this.disposables)e.dispose();this.disposables=[]}};var Ifn={MaxDirectorySize:200,MaxResults:100,Decay:.5,CacheSize:2e3,CacheTime:1e3*60,InvalidCacheTime:1e3*60*60*24},Klt="FileDirectoryDocumentProvider",VV=class extends Tf{constructor(){super(...arguments);this.sourceIds=[Klt];this.config=Ifn;this.cache=new g0(this.config.CacheSize,this.config.CacheTime)}static{i(this,"FileDirectoryDocumentProvider")}async getChildren(n){let a=this.cache.get(n);if(a!==void 0)return a;let r;try{r=await this.ctx.get(xi).readDirectory(n)}catch(s){Oa.error(this.ctx,`FileDirectoryDocumentProvider caught error reading directory ${n}:`,s)}if(r===void 0||r.length>this.config.MaxDirectorySize)return this.cache.set(n,"Invalid",this.config.InvalidCacheTime),"Invalid";let o={documents:[],directories:[]};for(let[s,c]of r){let l=xo(n,s);c&2?o.directories.push(l):o.documents.push(l)}return this.cache.set(n,o),o}getAncestors(n){let a=this.ctx.get(Sn).getWorkspaceFolder({uri:n});if(a===void 0)return[];let r=[],o=Xl(n);for(;o.startsWith(a.uri);)r.push(o),o=Xl(o);return r}getAncestorWeights(n){let a=new Map,r=new Map,o=new Map,s=new Map,c=this.config.Decay;for(let l of n){let A=this.getAncestors(l.uri);if(A.length===0){a.set(l.uri,new Set);continue}let d;for(let p of A){if(d!==void 0){let m=r.get(p)??new Set;m.add(d),r.set(p,m)}d=p}o.set(l.uri,d),a.set(l.uri,new Set(A))}for(let l of n){let A=[],d=a.get(l.uri);if(!(!d||d.size===0))for(A.push({uri:o.get(l.uri),weight:l.weight*Math.pow(c,d.size)});A.length>0;){let p=A.pop();s.set(p.uri,(s.get(p.uri)??0)+p.weight);let m=r.get(p.uri)??new Set;for(let g of m){let f=p.weight;d.has(g)?f/=c:f*=c,A.push({uri:g,weight:f})}}}return s}async*getContext(n,a,r,o){let s=this.config.MaxResults,c=this.config.Decay,l=this.getAncestorWeights(a.documents),A=new ix([...l.entries()].map(([p,m])=>({item:p,priority:m}))),d=0;for(;A.size>0;){let{item:p,priority:m}=A.pop(),g=await this.getChildren(p);if(o?.isCancellationRequested)return;if(g!=="Invalid"){for(let f of g.documents)if(yield{source:Klt,uri:f,weight:m},d++,d>=s)return;for(let f of g.directories)l.has(f)||(A.insert(f,m*c),l.set(f,m*c))}}}};u();u();function Ylt(t){return t.nodeId!==void 0}i(Ylt,"isNodeLocation");var yE=class extends Tf{constructor(){super(...arguments);this.eventsByType=new Map;this.nextId=0}static{i(this,"RecentActivityProvider")}getContext(n,a,r,o){let s=performance.now(),c=[];for(let[l,A]of this.eventsByType.entries()){let d=this.config.Activities[l],p=[...A.values()].sort((g,f)=>f.timestamp-g.timestamp),m=1;for(let g of p){this.resolveRanges(g,r);let f=.5**((s-g.timestamp)/d.halflife),b=d.isImpulse?f:m-f;m=f;for(let w of g.locations)Ylt(w)?c.push({weight:b,uri:w.uri,id:w.nodeId,source:l}):c.push({weight:b,uri:w.uri,source:l})}}return Promise.resolve(c)}resolveRanges(n,a){if(n.isFullyResolved)return;let r=!0,o=[];for(let s of n.locations)if(Ylt(s))o.push(s);else if(s.range!==void 0){let c=a.getDocument(s.uri)?.document;if(c!==void 0){let l=c.findNode(c.document.offsetAt(s.range.start),c.document.offsetAt(s.range.end));o.push({uri:s.uri,nodeId:l.id})}else r=!1,o.push(s)}else o.push({uri:s.uri,nodeId:Qm});n.locations=o,n.isFullyResolved=r}recordEvent(n,a,r){let o=this.config.Activities[n];if(o===void 0)return;let s={timestamp:r??performance.now(),locations:Array.isArray(a)?a:[a],isFullyResolved:!1};Gu(this.eventsByType,n,()=>new Kn(o.maxEventCount)).set(++this.nextId,s)}};var Jlt={RecentCompletionsRequestProvider:{weight:1,maxEventCount:100,halflife:1e3*60*5,isImpulse:!0}},XV=class extends yE{constructor(n){super(n);this.sourceIds=Object.keys(Jlt);this.config={Activities:Jlt};this.disposables.push(n.get(xm).onRequest(a=>{if(a.options?.isSpeculative!==!0){let r=a.completionState.textDocument.uri,o=a.completionState.position;this.recordEvent("RecentCompletionsRequestProvider",{uri:r,range:{start:o,end:o}})}}))}static{i(this,"RecentCompletionsRequestProvider")}};u();var Vlt={"RecentDocumentProvider.RecentlyFocused":{maxEventCount:100,halflife:1e3*60*5,isImpulse:!1},"RecentDocumentProvider.RecentlyEdited":{maxEventCount:1e3,halflife:1e3*60*5,isImpulse:!0},"RecentDocumentProvider.RecentlyOpen":{maxEventCount:100,halflife:1e3*60*5,isImpulse:!1}},Qfn={MaxOpenDocs:20,Activities:Vlt},eX=class extends yE{constructor(n){super(n);this.sourceIds=Object.keys(Vlt);this.config=Qfn;this.openDocs=new Kn(this.config.MaxOpenDocs),this.init()}static{i(this,"RecentDocumentProvider")}init(){let n=this.ctx.get(Sn);for(let a of n.getTextDocumentsUnsafe())this.openDocs.set(a.uri,!0),this.recordEvent("RecentDocumentProvider.RecentlyOpen",[...this.openDocs.keys()].map(r=>({uri:r})));this.disposables.push(n.onDidFocusTextDocument(a=>{a?(this.openDocs.set(a.document.uri,!0),this.recordEvent("RecentDocumentProvider.RecentlyFocused",{uri:a.document.uri})):this.recordEvent("RecentDocumentProvider.RecentlyFocused",[])})),this.disposables.push(n.onDidChangeTextDocument(a=>{this.openDocs.get(a.document.uri)&&this.recordEvent("RecentDocumentProvider.RecentlyEdited",{uri:a.document.uri})})),this.disposables.push(n.onDidOpenTextDocument(a=>{this.openDocs.set(a.document.uri,!0),this.recordEvent("RecentDocumentProvider.RecentlyOpen",[...this.openDocs.keys()].map(r=>({uri:r})))})),this.disposables.push(n.onDidCloseTextDocument(a=>{this.openDocs.delete(a.document.uri),this.recordEvent("RecentDocumentProvider.RecentlyOpen",[...this.openDocs.keys()].map(r=>({uri:r})))}))}};u();var Dfn={MaxActiveSymbols:500},tX=class extends Tf{constructor(){super(...arguments);this.sourceIds=["SymbolContextProvider.Identifiers","SymbolContextProvider.Text"];this.config=Dfn;this.nodeToSymbol=new Map;this.nodeValency=new Map;this.symbolToNode=new Map;this.symbolValency=new Map;this.identifierSymbols=new Set;this.identifiers=new Map;this.textSymbols=new Map;this.nextSymbolId=0}static{i(this,"SymbolContextProvider")}getContext(n,a,r,o){this.updateIndex(n,r,o);let s=new Map;for(let{id:A,weight:d}of a.nodes){let p=this.nodeValency.get(A)??0;for(let[m,g]of this.nodeToSymbol.get(A)??[]){let f=this.symbolValency.get(m);if((f??0)<=1)continue;let b=d*g/Math.max(p,f);s.set(m,(s.get(m)??0)+b)}}let c=[...s.entries()].map(([A,d])=>({symbolId:A,symbolWeight:d,symbolValency:this.symbolValency.get(A)})).filter(({symbolValency:A})=>(A??0)>1).sort((A,d)=>d.symbolWeight/d.symbolValency-A.symbolWeight/A.symbolValency).slice(0,this.config.MaxActiveSymbols),l=[];for(let{symbolId:A,symbolWeight:d,symbolValency:p}of c){let m=this.identifierSymbols.has(A)?"SymbolContextProvider.Identifiers":"SymbolContextProvider.Text";for(let[g,f]of this.symbolToNode.get(A)??[]){let b=d*f/Math.max(p,this.nodeValency.get(g)??f);l.push({id:g,weight:b,source:m})}}return Promise.resolve(l)}updateIndex(n,a,r){for(let{id:o}of n.getInvalidatedNodes()){let s=this.nodeToSymbol.get(o);if(this.nodeToSymbol.delete(o),this.nodeValency.delete(o),s)for(let[c,l]of s.entries()){let A=this.symbolToNode.get(c);A?.delete(o),A?.size===0?(this.symbolToNode.delete(c),this.symbolValency.delete(c),this.identifierSymbols.delete(c)):this.symbolValency.has(c)&&this.symbolValency.set(c,Math.max(1,(this.symbolValency.get(c)??0)-l))}}for(let{id:o}of n.getCreatedNodes()){let s=a.getNode(o);s!==void 0&&this.extractSymbols(s.node)}}extractSymbols(n){if(this.nodeToSymbol.has(n.id))return;let a=new Map;this.nodeToSymbol.set(n.id,a);let r=0;for(let o of n.syntaxNodes())if(o.isIdentifier){let s=o.text,c=Gu(this.identifiers,s,()=>this.createSymbol(!0));a.set(c,(a.get(c)??0)+1);let l=PAe(s),A=Gu(this.textSymbols,l,()=>this.createSymbol());a.set(A,(a.get(A)??0)+1),r+=2}else if(o.isText)for(let s of P5e(o.text)){let c=Gu(this.textSymbols,s,()=>this.createSymbol());a.set(c,(a.get(c)??0)+1),r+=1}this.nodeValency.set(n.id,r);for(let[o,s]of a.entries())Gu(this.symbolToNode,o,()=>new Map).set(n.id,s),this.symbolValency.set(o,(this.symbolValency.get(o)??0)+s)}createSymbol(n=!1){let a=this.nextSymbolId++;return n&&this.identifierSymbols.add(a),a}};u();var nX=class extends Tf{constructor(){super(...arguments);this.sourceIds=["TreeProximityProvider.Parent","TreeProximityProvider.Children","TreeProximityProvider.Siblings"];this.nodeParent=new Map;this.nodeChildren=new Map}static{i(this,"TreeProximityProvider")}getContext(n,a,r,o){this.updateIndex(n,r,o);let s=new Map,c=new Map,l=new Map;for(let{id:d,weight:p}of a.nodes){let m=this.nodeParent.get(d)??Qm,g=this.nodeChildren.get(m)?.size??0;g>0&&s.set(m,(s.get(m)??0)+p/g);let f=this.nodeChildren.get(d);if(f)for(let w of f)c.set(w,(c.get(w)??0)+p/f.size);let b=this.nodeChildren.get(m);if(b&&b.size>1)for(let w of b)w!==d&&l.set(w,(l.get(w)??0)+p/b.size)}let A=[...[...s.entries()].map(([d,p])=>({id:d,weight:p,source:"TreeProximityProvider.Parent"})),...[...c.entries()].map(([d,p])=>({id:d,weight:p,source:"TreeProximityProvider.Children"})),...[...l.entries()].map(([d,p])=>({id:d,weight:p,source:"TreeProximityProvider.Siblings"}))];return Promise.resolve(A)}updateIndex(n,a,r){for(let{id:o}of n.getInvalidatedNodes())this.nodeParent.delete(o),this.nodeChildren.delete(o);for(let{id:o}of n.getCreatedNodes()){let s=a.getNode(o),c=new Set;if(s!==void 0)for(let l of s.node.children)this.nodeParent.set(l.id,o),c.add(l.id);c.size>0&&this.nodeChildren.set(o,c)}}};u();u();u();var ms=ot(require("vscode"));var L_e=class{constructor(e){this.ctx=e;this.sections=new Map;this.promptComponent=new mS(this.ctx);this.budget=Math.floor(kU*EU);this.costFunction=f7(_i());this._onDidChangeTreeData=new ms.EventEmitter;this.onDidChangeTreeData=this._onDidChangeTreeData.event;this.promptComponent.setCostFunction(this.costFunction)}static{i(this,"DebuggerViewProvider")}getTreeItem(e){return e.item}getChildren(e){return e?Promise.resolve(e.children):Promise.resolve([...this.sections.values()])}refresh(){let e=this.ctx.get(sc),n=e.getWorkspaceContext();this.sections.set("Overall",this.buildSection("Overall",e.getWorkspaceContextWeights(),n));for(let a of Object.keys(e.coordinator.sourceWeights)){let r=e.coordinator.getWeights(a);this.sections.set(a,this.buildSection(a,r,n))}this._onDidChangeTreeData.fire()}buildSection(e,n,a){let r=new ms.TreeItem(e,ms.TreeItemCollapsibleState.Expanded);r.tooltip=`Workspace Context - ${e}`,this.promptComponent.snapshot(n,a);let o=new ms.TreeItem("Snapshot",ms.TreeItemCollapsibleState.None);o.tooltip=`${e} Context Snapshot - Click to view rendered context`;let s=_i(),c=this.promptComponent.getRoot(),{rendered:l}=c.render(this.budget,[],d=>s.tokenLength(d));o.command={command:"github-copilot-completions-debugger-view.showSnapshot",title:"Show Snapshot",arguments:[e,l]};let A=[this.buildDocuments(e,n,a,c),{item:o,children:[]}];return{item:r,children:A}}buildDocuments(e,n,a,r){let o=new ms.TreeItem("Documents",ms.TreeItemCollapsibleState.Expanded);o.tooltip=`${e} Workspace Documents`;let s=[],c=this.ctx.get(Sn),l=this.ctx.get(sc).config.MaxActiveFiles;for(let A of n.documents.slice(0,l)){let d=c.getRelativePath({uri:A.uri}),p=a.getDocument(A.uri)?.isActive===!0,m=p?"\u2713 ":" ",g=A.weight.toFixed(4),f=`${m}${d} (${g})`,b=new ms.TreeItem(f,ms.TreeItemCollapsibleState.None);b.tooltip=`Path: ${d} Weight: ${g} Active: ${p}`;let w=n.nodes.filter(_=>_.uri===A.uri).map(_=>{let x=r.findNode(_.id);if(x===void 0)return{..._,baseValue:0,rectifiedValue:0,text:"NOT FOUND"};let I=g7(x,my),Q=1e3*_.weight/x.cost,T=1e3*x.value;return{..._,baseValue:Q,rectifiedValue:T,text:I}});b.command={command:"github-copilot-completions-debugger-view.showNodeDetails",title:"Show Node Details",arguments:[d,w]},s.push({item:b,children:[]})}return{item:o,children:s}}};function Xlt(t){let e=t.get(As).context;if(!ia(t,yt.ShowWorkspaceContextDebugger))return;let a=new L_e(t);ms.window.registerTreeDataProvider("github-copilot-completions-debugger-view",a);let r=ms.commands.registerCommand("github-copilot-completions-debugger-view.refresh",()=>{a.refresh()}),o=ms.commands.registerCommand("github-copilot-completions-debugger-view.showSnapshot",(c,l)=>{let A=ms.window.createWebviewPanel("copilotContextSnapshot",`Context Snapshot - ${c}`,ms.ViewColumn.Beside,{enableScripts:!1,retainContextWhenHidden:!1});A.webview.html=` Context Snapshot - ${c}
Context Snapshot: ${c}
${P_e(l)}
`}),s=ms.commands.registerCommand("github-copilot-completions-debugger-view.showNodeDetails",(c,l)=>{let A=ms.window.createWebviewPanel("copilotNodeDetails",`Node Details - ${c}`,ms.ViewColumn.Beside,{enableScripts:!1,retainContextWhenHidden:!1}),d=l.map(p=>` ${p.id} ${p.weight.toFixed(4)} ${p.baseValue.toFixed(4)} ${p.rectifiedValue.toFixed(4)}
${P_e(p.text)}
`).join("");A.webview.html=` Node Details - ${c}
Node Details: ${P_e(c)}
Total nodes: ${l.length}
${d}
ID Weight Base Value Rectified Value Text
`});e.subscriptions.push(r,o,s)}i(Xlt,"activateDebuggerPanel");function P_e(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}i(P_e,"escapeHtml");u();var mw=ot(require("vscode"));var eAt={"ExtensionActivityProvider.CurrentSelection":{maxEventCount:1,halflife:1e5,isImpulse:!0},"ExtensionActivityProvider.PrimarySelection":{maxEventCount:1e3,halflife:1e3*60*5,isImpulse:!1},"ExtensionActivityProvider.Selection":{maxEventCount:1e3,halflife:1e3*60*5,isImpulse:!1},"ExtensionActivityProvider.VisibleRange":{maxEventCount:1e3,halflife:1e3*60*5,isImpulse:!1}},aX=class extends yE{constructor(n){super(n);this.sourceIds=Object.keys(eAt);this.config={Activities:eAt};this.recordSelections(),this.recordVisibleRanges(),this.disposables.push(mw.window.onDidChangeActiveTextEditor(()=>this.recordSelections())),this.disposables.push(mw.window.onDidChangeTextEditorSelection(()=>this.recordSelections())),this.disposables.push(mw.window.onDidChangeVisibleTextEditors(()=>this.recordVisibleRanges())),this.disposables.push(mw.window.onDidChangeTextEditorVisibleRanges(()=>this.recordVisibleRanges()))}static{i(this,"ExtensionActivityProvider")}recordSelections(){if(mw.window.activeTextEditor===void 0)this.recordEvent("ExtensionActivityProvider.Selection",[]);else{let n=mw.window.activeTextEditor.document.uri.toString(),a=mw.window.activeTextEditor.selections.map(r=>({uri:n,range:r}));this.recordEvent("ExtensionActivityProvider.CurrentSelection",a[0]),this.recordEvent("ExtensionActivityProvider.PrimarySelection",a[0]),this.recordEvent("ExtensionActivityProvider.Selection",a.slice(1,a.length))}}recordVisibleRanges(){let n=mw.window.visibleTextEditors.flatMap(a=>{let r=a.document.uri.toString();return a.visibleRanges.map(o=>({uri:r,range:o}))});this.recordEvent("ExtensionActivityProvider.VisibleRange",n)}};var wE=[];function tAt(t){let e=t.get(sc);e.maybeStart(),e.activation.then(()=>{try{wE.push(new VV(t)),wE.push(new tX(t)),wE.push(new nX(t)),wE.push(new eX(t)),wE.push(new XV(t)),wE.push(new aX(t)),Xlt(t)}catch(n){sp(t,n,"setupWorkspaceContextFeature")}})}i(tAt,"setupWorkspaceContextFeature");function nAt(t){for(let e of wE)e.dispose();wE=[],t.get(sc).dispose()}i(nAt,"disposeWorkspaceContextFeature");var rX=Qi.window.createOutputChannel("GitHub Copilot",{log:!0}),Sfn="userAcknowledgedStatusBarDeprecation";function Tfn(t,e){let n=new pM(t,e);t.get(As).addSubscription(n),Ko(t,$K,async()=>{await awe(t)}),Ko(t,OK,async()=>{await rwe(t)}),Ko(t,aXe,async()=>{await Vet(t)}),Ko(t,bP,async()=>{try{await Qi.commands.executeCommand("workbench.action.chat.openQuotaExceededDialog")}catch(a){if(!(a instanceof Error&&/not found/.test(a.message)))throw a;await Qi.env.openExternal(Qi.Uri.parse("https://github.com/github-copilot/signup/copilot_individual"))}}),Ko(t,UK,async()=>{t.get(ng).kind==="Error"&&await Promise.race([t.get(oa).primeToken(),new Promise(a=>setTimeout(a,100))]),new JV(t).showStatusMenu()}),t.set(pM,n),t.set(ni,n)}i(Tfn,"registerStatusBar");async function Ffn(t){let e=MVe();if(e)throw new Error(e);let n=En.createAndMarkAsIssued(),a,r;try{r=await aV.create()}catch(l){a=l}let o=aAt(t,r);a&&Oa.warn(o,"Failed to load electron net module",a),await jWe(o),Tfn(o,rX),o.set(vc,new vc(o)),Nfn(o),Ko(o,ZK,()=>WVe(o));let s=new LK(o);return o.set(tp,new MK(s)),t.subscriptions.push(s.register()),t.subscriptions.push(rAt(o)),slt(o),rlt(o),Hlt(o),Rfn(o),t.subscriptions.push(u5e(o)),t.subscriptions.push(Qi.window.onDidChangeActiveTextEditor(l=>l&&zh(o,l.document.uri.toString()))),t.subscriptions.push(Qi.workspace.onDidChangeConfiguration(l=>Wlt(l,o))),t.subscriptions.push(HVe(o)),o.get(oa).primeToken().then(l=>{if(kt(o,"extension.activate",n),!l)return;let A=o.get(TI.BaseLanguageClient);lE()&&A.start(),Qi.window?.activeTextEditor&&o.get(vc).evaluate(Qi.window.activeTextEditor.document.uri.toString(),Qi.window.activeTextEditor.document.getText(),"UPDATE")}),o.get(nf).add("ms-vscode.cpptools"),tAt(o),new KV().startup(o),new sV(o)}i(Ffn,"activate");function Rfn(t){let e=t.get(As);try{e.addSubscription(vlt(t)),e.addSubscription(Glt(t));let a=Qi.workspace.getConfiguration().inspect("editor.inlineSuggest.enabled");(a?.globalValue===!1||a?.workspaceValue===!1)&&Oa.warn(t,"editor.inlineSuggest.enabled is disabled. Enabling recommended to use Copilot.")}catch(n){$c(t,n,"registerGhostTextSupport")}}i(Rfn,"registerGhostTextSupport");function Nfn(t){glt(t),Ko(t,qK,()=>Qi.env.openExternal(Qi.Uri.parse("https://github.com/microsoft/vscode/issues"))),Ko(t,jK,()=>Qi.env.openExternal(Qi.Uri.parse("https://docs.github.com/en/copilot/getting-started-with-github-copilot?tool=vscode"))),Ko(t,J3,()=>{rX.show()})}i(Nfn,"registerDiagnosticCommands");var M_e=class extends Ou{static{i(this,"VSCodeUrlOpener")}async open(e){await Qi.env.openExternal(Qi.Uri.parse(e))}};function Pfn(t){switch(t){case Qi.UIKind.Desktop:return"desktop";case Qi.UIKind.Web:return"web"}return"unknown"}i(Pfn,"uiKindToString");function aAt(t,e){let n=qWe(new WY(process.env));n.set(Oc,new cV),n.set(kd,new YV(n)),n.set(qr,new tV(n,e));let a=new SH([new A3(console,!1),new A3(rX)]);n.forceSet(nA,a),n.set(Wa,new AF),n.set(_o,new _o(Qi.env.sessionId,Qi.env.machineId,Qi.env.remoteName,Pfn(Qi.env.uiKind))),n.set(As,new As(t));let r=ett(n,rX);n.set(TI.BaseLanguageClient,r),GWe(n),n.set(ng,new ng);let o=Qi.env.isTelemetryEnabled,s=zv.name;return t.extensionMode===Qi.ExtensionMode.Test?(n.forceSet(TA,TA.fromEnvironment(!0)),LVe(n),n.set(Ou,new KT),n.forceSet(Vp,new QQ),o=!0,s+="-test"):(n.set(oa,new NK(n)),n.set(Ou,new M_e)),n.set(Sn,new JK(n)),n.set(rx,new OH(n)),n.set(tf,new Oj(n)),n.set(xi,Clt),n.set(Im,new UH(n)),n.set(Yc,new Yc),n.set(Nl,l7(n,ilt)),n.set(op,new op(n)),n.set(FF,new FF(n)),n.set(aI,AKe()),n.set(nf,new dS),pKe(n),Ult(n),uXe(n,t,s,o),n}i(aAt,"createExtensionContext");function rAt(t){return{dispose:i(async()=>{kt(t,"extension.deactivate"),t.get(pA).shutdown(),t.get(TI.BaseLanguageClient).stop(),nAt(t),await qlt(t)},"dispose")}}i(rAt,"onDeactivate");0&&(module.exports={activate,createExtensionContext,globalStateUserAcknowledgedStatusBarDeprecationKey,onDeactivate}); //!!! DO NOT modify, this file was COPIED from 'microsoft/vscode' /*! Bundled license information: crypto-js/ripemd160.js: (** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *) crypto-js/mode-ctr-gladman.js: (** @preserve * Counter block mode compatible with Dr Brian Gladman fileenc.c * derived from CryptoJS.mode.CTR * Jan Hruby jhruby.web@gmail.com *) safe-buffer/index.js: (*! safe-buffer. MIT License. Feross Aboukhadijeh *) git-url-parse/lib/index.js: (*! * buildToken * Builds OAuth token prefix (helper function) * * @name buildToken * @function * @param {GitUrl} obj The parsed Git url object. * @return {String} token prefix *) @microsoft/applicationinsights-common/dist/es5/applicationinsights-common.js: (*! * Application Insights JavaScript SDK - Common, 3.3.6 * Copyright (c) Microsoft and contributors. All rights reserved. *) (*! https://github.com/nevware21/ts-utils v0.11.8 *) @microsoft/applicationinsights-web-basic/dist/es5/applicationinsights-web-basic.js: (*! * Application Insights JavaScript Web SDK - Basic, 3.3.6 * Copyright (c) Microsoft and contributors. All rights reserved. *) (*! https://github.com/nevware21/ts-utils v0.11.8 *) (*! * NevWare21 Solutions LLC - ts-async, 0.5.4 * https://github.com/nevware21/ts-async * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved. * Licensed under the MIT license. *) undici/lib/web/fetch/body.js: (*! formdata-polyfill. MIT License. Jimmy Wärting *) undici/lib/web/websocket/frame.js: (*! ws. MIT License. Einar Otto Stangvik *) @azure/msal-node/dist/cache/serializer/Serializer.mjs: @azure/msal-node/dist/cache/serializer/Deserializer.mjs: @azure/msal-node/dist/internals.mjs: @azure/msal-node/dist/utils/Constants.mjs: @azure/msal-node/dist/utils/NetworkUtils.mjs: @azure/msal-node/dist/network/HttpClient.mjs: @azure/msal-node/dist/error/ManagedIdentityErrorCodes.mjs: @azure/msal-node/dist/error/ManagedIdentityError.mjs: @azure/msal-node/dist/config/ManagedIdentityId.mjs: @azure/msal-node/dist/error/NodeAuthError.mjs: @azure/msal-node/dist/config/Configuration.mjs: @azure/msal-node/dist/crypto/GuidGenerator.mjs: @azure/msal-node/dist/utils/EncodingUtils.mjs: @azure/msal-node/dist/crypto/HashUtils.mjs: @azure/msal-node/dist/crypto/PkceGenerator.mjs: @azure/msal-node/dist/crypto/CryptoProvider.mjs: @azure/msal-node/dist/cache/NodeStorage.mjs: @azure/msal-node/dist/cache/TokenCache.mjs: @azure/msal-node/dist/client/ClientAssertion.mjs: @azure/msal-node/dist/packageMetadata.mjs: @azure/msal-node/dist/client/UsernamePasswordClient.mjs: @azure/msal-node/dist/protocol/Authorize.mjs: @azure/msal-node/dist/client/ClientApplication.mjs: @azure/msal-node/dist/network/LoopbackClient.mjs: @azure/msal-node/dist/client/DeviceCodeClient.mjs: @azure/msal-node/dist/client/PublicClientApplication.mjs: @azure/msal-node/dist/client/ClientCredentialClient.mjs: @azure/msal-node/dist/client/OnBehalfOfClient.mjs: @azure/msal-node/dist/client/ConfidentialClientApplication.mjs: @azure/msal-node/dist/utils/TimeUtils.mjs: @azure/msal-node/dist/network/HttpClientWithRetries.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/BaseManagedIdentitySource.mjs: @azure/msal-node/dist/retry/LinearRetryStrategy.mjs: @azure/msal-node/dist/retry/DefaultManagedIdentityRetryPolicy.mjs: @azure/msal-node/dist/config/ManagedIdentityRequestParameters.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/AppService.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/AzureArc.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/CloudShell.mjs: @azure/msal-node/dist/retry/ExponentialRetryStrategy.mjs: @azure/msal-node/dist/retry/ImdsRetryPolicy.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/Imds.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/ServiceFabric.mjs: @azure/msal-node/dist/client/ManagedIdentitySources/MachineLearning.mjs: @azure/msal-node/dist/client/ManagedIdentityClient.mjs: @azure/msal-node/dist/client/ManagedIdentityApplication.mjs: @azure/msal-node/dist/cache/distributed/DistributedCachePlugin.mjs: @azure/msal-node/dist/index.mjs: (*! @azure/msal-node v3.6.3 2025-07-08 *) @azure/msal-common/dist/utils/Constants.mjs: @azure/msal-common/dist/error/AuthErrorCodes.mjs: @azure/msal-common/dist/error/AuthError.mjs: @azure/msal-common/dist/error/ClientAuthErrorCodes.mjs: @azure/msal-common/dist/error/ClientAuthError.mjs: @azure/msal-common/dist/crypto/ICrypto.mjs: @azure/msal-common/dist/logger/Logger.mjs: @azure/msal-common/dist/packageMetadata.mjs: @azure/msal-common/dist/authority/AuthorityOptions.mjs: @azure/msal-common/dist/account/AuthToken.mjs: @azure/msal-common/dist/utils/TimeUtils.mjs: @azure/msal-common/dist/cache/utils/CacheHelpers.mjs: @azure/msal-common/dist/error/ClientConfigurationErrorCodes.mjs: @azure/msal-common/dist/error/ClientConfigurationError.mjs: @azure/msal-common/dist/utils/StringUtils.mjs: @azure/msal-common/dist/request/ScopeSet.mjs: @azure/msal-common/dist/account/ClientInfo.mjs: @azure/msal-common/dist/account/AccountInfo.mjs: @azure/msal-common/dist/authority/AuthorityType.mjs: @azure/msal-common/dist/account/TokenClaims.mjs: @azure/msal-common/dist/authority/ProtocolMode.mjs: @azure/msal-common/dist/cache/entities/AccountEntity.mjs: @azure/msal-common/dist/utils/UrlUtils.mjs: @azure/msal-common/dist/url/UrlString.mjs: @azure/msal-common/dist/authority/AuthorityMetadata.mjs: @azure/msal-common/dist/error/CacheErrorCodes.mjs: @azure/msal-common/dist/error/CacheError.mjs: @azure/msal-common/dist/cache/CacheManager.mjs: @azure/msal-common/dist/telemetry/performance/PerformanceEvent.mjs: @azure/msal-common/dist/telemetry/performance/StubPerformanceClient.mjs: @azure/msal-common/dist/config/ClientConfiguration.mjs: @azure/msal-common/dist/account/CcsCredential.mjs: @azure/msal-common/dist/constants/AADServerParamKeys.mjs: @azure/msal-common/dist/request/RequestParameterBuilder.mjs: @azure/msal-common/dist/authority/OpenIdConfigResponse.mjs: @azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.mjs: @azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs: @azure/msal-common/dist/utils/FunctionWrappers.mjs: @azure/msal-common/dist/authority/RegionDiscovery.mjs: @azure/msal-common/dist/authority/Authority.mjs: @azure/msal-common/dist/authority/AuthorityFactory.mjs: @azure/msal-common/dist/error/ServerError.mjs: @azure/msal-common/dist/network/RequestThumbprint.mjs: @azure/msal-common/dist/network/ThrottlingUtils.mjs: @azure/msal-common/dist/error/NetworkError.mjs: @azure/msal-common/dist/client/BaseClient.mjs: @azure/msal-common/dist/error/InteractionRequiredAuthErrorCodes.mjs: @azure/msal-common/dist/error/InteractionRequiredAuthError.mjs: @azure/msal-common/dist/utils/ProtocolUtils.mjs: @azure/msal-common/dist/crypto/PopTokenGenerator.mjs: @azure/msal-common/dist/cache/persistence/TokenCacheContext.mjs: @azure/msal-common/dist/response/ResponseHandler.mjs: @azure/msal-common/dist/utils/ClientAssertionUtils.mjs: @azure/msal-common/dist/client/AuthorizationCodeClient.mjs: @azure/msal-common/dist/client/RefreshTokenClient.mjs: @azure/msal-common/dist/client/SilentFlowClient.mjs: @azure/msal-common/dist/protocol/Authorize.mjs: @azure/msal-common/dist/telemetry/server/ServerTelemetryManager.mjs: @azure/msal-common/dist/index-node.mjs: @azure/msal-common/dist/index.mjs: (*! @azure/msal-common v15.8.1 2025-07-08 *) js-yaml/dist/js-yaml.mjs: (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) */ //# sourceMappingURL=extension.js.map