Plugin Directory

Changeset 3311867


Ignore:
Timestamp:
06/15/2025 11:10:42 AM (10 months ago)
Author:
sjvision
Message:

Code highlighter Bug Fixed.

Location:
ai-tool-center
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • ai-tool-center/tags/1.2.0/includes/class-aitoce-shortcodes.php

    r3311710 r3311867  
    7272        ob_start();
    7373        ?>
     74       
    7475        <style>
    7576            .aitoce-page-chat-box {
    76                 border-top-left-radius:
    77                     <?php echo esc_attr($header_radius); ?>
    78                     px;
    79                 border-top-right-radius:
    80                     <?php echo esc_attr($header_radius); ?>
    81                     px;
    82                 border-bottom-left-radius:
    83                     <?php echo esc_attr($header_radius); ?>
    84                     px;
    85                 border-bottom-right-radius:
    86                     <?php echo esc_attr($header_radius); ?>
    87                     px;
     77                border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     78                border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
     79                border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     80                border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    8881            }
    8982
    9083            .aitoce-page-chat-header {
    91                 color:
    92                     <?php echo esc_attr($header_text); ?>
    93                 ;
    94                 background-color:
    95                     <?php echo esc_attr($header_background); ?>
    96                 ;
    97                 border-top-left-radius:
    98                     <?php echo esc_attr($header_radius); ?>
    99                     px;
    100                 border-top-right-radius:
    101                     <?php echo esc_attr($header_radius); ?>
    102                     px;
     84                color: <?php echo esc_attr($header_text); ?>;
     85                background-color: <?php echo esc_attr($header_background); ?>;
     86                border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     87                border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
    10388            }
    10489
    10590            .aitoce-page-chat-input-area {
    106                 background-color:
    107                     <?php echo esc_attr($header_background); ?>
    108                 ;
    109                 border-bottom-left-radius:
    110                     <?php echo esc_attr($header_radius); ?>
    111                     px;
    112                 border-bottom-right-radius:
    113                     <?php echo esc_attr($header_radius); ?>
    114                     px;
     91                background-color: <?php echo esc_attr($header_background); ?>;
     92                border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     93                border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    11594            }
    11695
    11796            .aitoce-page-chat-messages {
    118                 height:
    119                     <?php echo esc_attr($message_height); ?>
    120                     px;
    121                 max-height:
    122                     <?php echo esc_attr($message_height); ?>
    123                     px;
    124                 background-color:
    125                     <?php echo esc_attr($message_background); ?>
    126                 ;
     97                height: <?php echo esc_attr($message_height); ?>px;
     98                max-height: <?php echo esc_attr($message_height); ?>px;
     99                background-color: <?php echo esc_attr($message_background); ?>;
    127100            }
    128101
    129102            .aitoce-page-chat-input {
    130                 color:
    131                     <?php echo esc_attr($input_text); ?>
    132                 ;
    133                 background-color:
    134                     <?php echo esc_attr($input_background); ?>
    135                 ;
    136                 border-radius:
    137                     <?php echo esc_attr($input_radius); ?>
    138                     px;
     103                color: <?php echo esc_attr($input_text); ?>;
     104                background-color: <?php echo esc_attr($input_background); ?>;
     105                border-radius: <?php echo esc_attr($input_radius); ?>px;
    139106            }
    140107
    141108            .aitoce-page-user-message {
    142                 color:
    143                     <?php echo esc_attr($client_message_text); ?>
    144                 ;
    145                 background-color:
    146                     <?php echo esc_attr($client_message_background); ?>
    147                 ;
    148                 border-radius:
    149                     <?php echo esc_attr($client_message_radius); ?>
    150                     px;
     109                color: <?php echo esc_attr($client_message_text); ?>;
     110                background-color: <?php echo esc_attr($client_message_background); ?>;
     111                border-radius: <?php echo esc_attr($client_message_radius); ?>px;
    151112            }
    152113
    153114            .aitoce-page-bot-message {
    154                 color:
    155                     <?php echo esc_attr($nimbot_reply_text); ?>
    156                 ;
    157                 background-color:
    158                     <?php echo esc_attr($nimbot_reply_background); ?>
    159                 ;
    160                 border-radius:
    161                     <?php echo esc_attr($nimbot_reply_radius); ?>
    162                     px;
     115                color: <?php echo esc_attr($nimbot_reply_text); ?>;
     116                background-color: <?php echo esc_attr($nimbot_reply_background); ?>;
     117                border-radius: <?php echo esc_attr($nimbot_reply_radius); ?>px;
    163118            }
    164119
    165120            .aitoce-page-send-btn {
    166                 color:
    167                     <?php echo esc_attr($send_button_text); ?>
    168                 ;
    169                 background-color:
    170                     <?php echo esc_attr($send_button_background); ?>
    171                 ;
    172                 border-radius:
    173                     <?php echo esc_attr($send_button_radius); ?>
    174                     px;
     121                color: <?php echo esc_attr($send_button_text); ?>;
     122                background-color: <?php echo esc_attr($send_button_background); ?>;
     123                border-radius: <?php echo esc_attr($send_button_radius); ?>px;
    175124            }
    176125
    177126            .aitoce-page-send-btn:hover {
    178                 color:
    179                     <?php echo esc_attr($send_button_text_hover); ?>
    180                 ;
    181                 background-color:
    182                     <?php echo esc_attr($send_button_background_hover); ?>
    183                 ;
     127                color: <?php echo esc_attr($send_button_text_hover); ?>;
     128                background-color: <?php echo esc_attr($send_button_background_hover); ?>;
    184129            }
    185130        </style>
     
    199144                <div id="aitoce-chat-input-area" class="aitoce-page-chat-input-area">
    200145                    <textarea id="aitoce-page-input" class="aitoce-page-chat-input" rows="3"
    201                         placeholder="<?php esc_html_e('Type a message...', 'ai-tool-center'); ?>"></textarea>
     146                        placeholder="<?php esc_html_e('Type a message...', 'ai-tool-center'); ?>" aria-label="Page Message Input"></textarea>
    202147                    <div id="aitoce-page-send-btn" class="aitoce-page-send-btn"><?php esc_html_e('Send', 'ai-tool-center'); ?>
    203148                    </div>
  • ai-tool-center/tags/1.2.0/public/css/aitoce-nimbot-googlecode.css

    r3311710 r3311867  
    1212Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less
    1313*/
     14#aitoce-page-bot-message pre {
     15    padding: 5px;
     16    border-radius: 5px;
     17}
     18
    1419pre code.hljs {
    1520    display: block;
    1621    overflow-x: auto;
    17     padding: 0.6em;
     22    padding: 5px;
     23    border-radius: 5px;
    1824}
    1925
  • ai-tool-center/tags/1.2.0/public/js/aitoce-public-nimbot-highlight.js

    r3311710 r3311867  
    44  License: BSD-3-Clause
    55 */
    6   var hljs=function(){"use strict";function e(n){
    7     return n instanceof Map?n.clear=n.delete=n.set=()=>{
    8     throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
    9     throw Error("set is read-only")
    10     }),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
    11     const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
    12     })),n}class n{constructor(e){
    13     void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    14     ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
    15     return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    16     }function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
    17     ;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope
    18     ;class r{constructor(e,n){
    19     this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
    20     this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
    21     if(e.startsWith("language:"))return e.replace("language:","language-")
    22     ;if(e.includes(".")){const t=e.split(".")
    23     ;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
    24     }return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
    25     closeNode(e){i(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    26     this.buffer+=`<span class="${e}">`}}const s=(e={})=>{const n={children:[]}
    27     ;return Object.assign(n,e),n};class o{constructor(){
    28     this.rootNode=s(),this.stack=[this.rootNode]}get top(){
    29     return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    30     this.top.children.push(e)}openNode(e){const n=s({scope:e})
    31     ;this.add(n),this.stack.push(n)}closeNode(){
    32     if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    33     for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    34     walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
    35     return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
    36     n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
    37     "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    38     o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
    39     addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
    40     this.closeNode()}__addSublanguage(e,n){const t=e.root
    41     ;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
    42     return new r(this,this.options).value()}finalize(){
    43     return this.closeAllNodes(),!0}}function c(e){
    44     return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
    45     function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
    46     function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
    47     const n=e[e.length-1]
    48     ;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
    49     })(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
    50     function p(e){return RegExp(e.toString()+"|").exec("").length-1}
    51     const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
    52     ;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
    53     ;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
    54     i+=a.substring(0,e.index),
    55     a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
    56     "("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
    57     const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",N={
    58     begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'",
    59     illegal:"\\n",contains:[N]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",
    60     contains:[N]},O=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
    61     contains:[]},t);i.contains.push({scope:"doctag",
    62     begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
    63     end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
    64     ;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
    65     ;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
    66     },M=O("//","$"),A=O("/\\*","\\*/"),S=O("#","$");var C=Object.freeze({
    67     __proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{
    68     scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:O,
    69     C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
    70     begin:w,relevance:0},C_NUMBER_RE:w,END_SAME_AS_BEGIN:e=>Object.assign(e,{
    71     "on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
    72     n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:f,
    73     MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
    74     NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
    75     PHRASAL_WORDS_MODE:{
    76     begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    77     },QUOTE_STRING_MODE:x,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
    78     end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},
    79     RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    80     SHEBANG:(e={})=>{const n=/^#![ ]*\//
    81     ;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
    82     end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
    83     TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
    84     UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
    85     "."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
    86     void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
    87     n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    88     e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    89     void 0===e.relevance&&(e.relevance=0))}function I(e,n){
    90     Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
    91     if(e.match){
    92     if(e.begin||e.end)throw Error("begin & end are not supported with match")
    93     ;e.begin=e.match,delete e.match}}function B(e,n){
    94     void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
    95     ;if(e.starts)throw Error("beforeMatch cannot be used with starts")
    96     ;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
    97     })),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
    98     relevance:0,contains:[Object.assign(t,{endsParent:!0})]
    99     },e.relevance=0,delete t.beforeMatch
    100     },F=["of","and","for","in","not","or","if","then","parent","list","value"]
    101     ;function z(e,n,t="keyword"){const a=Object.create(null)
    102     ;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
    103     Object.assign(a,z(e[t],n,t))})),a;function i(e,t){
    104     n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
    105     ;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
    106     return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const U={},P=e=>{
    107     console.error(e)},K=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
    108     U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0)
    109     },H=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
    110     ;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
    111     ;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function Z(e){(e=>{
    112     e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
    113     delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
    114     _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
    115     }),(e=>{if(Array.isArray(e.begin)){
    116     if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
    117     H
    118     ;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"),
    119     H;G(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
    120     if(Array.isArray(e.end)){
    121     if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
    122     H
    123     ;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"),
    124     H;G(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function W(e){
    125     function n(n,t){
    126     return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
    127     }class t{constructor(){
    128     this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    129     addRule(e,n){
    130     n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
    131     this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
    132     ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
    133     }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
    134     ;const n=this.matcherRe.exec(e);if(!n)return null
    135     ;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
    136     ;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
    137     this.rules=[],this.multiRegexes=[],
    138     this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    139     if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
    140     ;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
    141     n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
    142     return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
    143     this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
    144     const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
    145     ;let t=n.exec(e)
    146     ;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
    147     const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
    148     return t&&(this.regexIndex+=t.position+1,
    149     this.regexIndex===this.count&&this.considerAll()),t}}
    150     if(e.compilerExtensions||(e.compilerExtensions=[]),
    151     e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    152     ;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
    153     ;if(r.isCompiled)return o
    154     ;[R,L,Z,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
    155     r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
    156     ;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
    157     l=r.keywords.$pattern,
    158     delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=z(r.keywords,e.case_insensitive)),
    159     o.keywordPatternRe=n(l,!0),
    160     s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
    161     r.end&&(o.endRe=n(o.end)),
    162     o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
    163     r.illegal&&(o.illegalRe=n(r.illegal)),
    164     r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
    165     variants:null},n)))),e.cachedVariants?e.cachedVariants:Q(e)?a(e,{
    166     starts:e.starts?a(e.starts):null
    167     }):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
    168     })),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
    169     ;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
    170     }))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
    171     }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function Q(e){
    172     return!!e&&(e.endsWithParent||Q(e.starts))}class X extends Error{
    173     constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
    174     const V=t,J=a,Y=Symbol("nomatch"),ee=t=>{
    175     const a=Object.create(null),i=Object.create(null),r=[];let s=!0
    176     ;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
    177     disableAutodetect:!0,name:"Plain text",contains:[]};let p={
    178     ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
    179     languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    180     cssSelector:"div.aitoce-bot-message pre code",languages:null,__emitter:l};function _(e){
    181     return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
    182     ;"object"==typeof n?(a=e,
    183     t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    184     q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    185     i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};O("before:highlight",r)
    186     ;const s=r.result?r.result:f(r.language,r.code,t)
    187     ;return s.code=r.code,O("after:highlight",s),s}function f(e,t,i,r){
    188     const l=Object.create(null);function c(){if(!O.keywords)return void A.addText(S)
    189     ;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t=""
    190     ;for(;n;){t+=S.substring(e,n.index)
    191     ;const i=v.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){
    192     const[e,a]=r
    193     ;if(A.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
    194     const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
    195     ;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a
    196     ;t+=S.substring(e),A.addText(t)}function d(){null!=O.subLanguage?(()=>{
    197     if(""===S)return;let e=null;if("string"==typeof O.subLanguage){
    198     if(!a[O.subLanguage])return void A.addText(S)
    199     ;e=f(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top
    200     }else e=E(S,O.subLanguage.length?O.subLanguage:null)
    201     ;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language)
    202     })():c(),S=""}function g(e,n){
    203     ""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1
    204     ;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
    205     const a=v.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(S=i,c(),S=""),t++}}
    206     function b(e,n){
    207     return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),
    208     e.beginScope&&(e.beginScope._wrap?(g(S,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
    209     S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{
    210     value:O}}),O}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
    211     ;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
    212     ;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
    213     for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    214     if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
    215     return 0===O.matcher.regexIndex?(S+=e[0],1):(D=!0,0)}function h(e){
    216     const n=e[0],a=t.substring(e.index),i=m(O,e,a);if(!i)return Y;const r=O
    217     ;O.endScope&&O.endScope._wrap?(d(),
    218     g(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(),
    219     u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n),
    220     d(),r.excludeEnd&&(S=n));do{
    221     O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent
    222     }while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
    223     let y={};function w(a,r){const o=r&&r[0];if(S+=a,null==o)return d(),0
    224     ;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
    225     if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
    226     ;throw n.languageName=e,n.badRule=y.rule,n}return 1}
    227     if(y=r,"begin"===r.type)return(e=>{
    228     const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
    229     ;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
    230     ;return a.skip?S+=t:(a.excludeBegin&&(S+=t),
    231     d(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r)
    232     ;if("illegal"===r.type&&!i){
    233     const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"<unnamed>")+'"')
    234     ;throw e.mode=O,e}if("end"===r.type){const e=h(r);if(e!==Y)return e}
    235     if("illegal"===r.type&&""===o)return S+="\n",1
    236     ;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
    237     ;return S+=o,o.length}const v=N(e)
    238     ;if(!v)throw P(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    239     ;const k=W(v);let x="",O=r||k;const M={},A=new p.__emitter(p);(()=>{const e=[]
    240     ;for(let n=O;n!==v;n=n.parent)n.scope&&e.unshift(n.scope)
    241     ;e.forEach((e=>A.openNode(e)))})();let S="",C=0,T=0,R=0,D=!1;try{
    242     if(v.__emitTokens)v.__emitTokens(t,A);else{for(O.matcher.considerAll();;){
    243     R++,D?D=!1:O.matcher.considerAll(),O.matcher.lastIndex=T
    244     ;const e=O.matcher.exec(t);if(!e)break;const n=w(t.substring(T,e.index),e)
    245     ;T=e.index+n}w(t.substring(T))}return A.finalize(),x=A.toHTML(),{language:e,
    246     value:x,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){
    247     if(n.message&&n.message.includes("Illegal"))return{language:e,value:V(t),
    248     illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
    249     context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:x},_emitter:A};if(s)return{
    250     language:e,value:V(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O}
    251     ;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
    252     const n={value:V(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
    253     ;return n._emitter.addText(e),n})(e),i=n.filter(N).filter(x).map((n=>f(n,e,!1)))
    254     ;i.unshift(t);const r=i.sort(((e,n)=>{
    255     if(e.relevance!==n.relevance)return n.relevance-e.relevance
    256     ;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1
    257     ;if(N(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
    258     ;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
    259     let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
    260     ;const t=p.languageDetectRe.exec(n);if(t){const n=N(t[1])
    261     ;return n||(K(o.replace("{}",t[1])),
    262     K("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
    263     return n.split(/\s+/).find((e=>_(e)||N(e)))})(e);if(_(t))return
    264     ;if(O("before:highlightElement",{el:e,language:t
    265     }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
    266     ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
    267     console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
    268     console.warn("The element with unescaped HTML:"),
    269     console.warn(e)),p.throwUnescapedHTML))throw new X("One of your code blocks includes unescaped HTML.",e.innerHTML)
    270     ;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
    271     ;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
    272     ;e.classList.add("hljs"),e.classList.add("language-"+a)
    273     })(e,t,r.language),e.result={language:r.language,re:r.relevance,
    274     relevance:r.relevance},r.secondBest&&(e.secondBest={
    275     language:r.secondBest.language,relevance:r.secondBest.relevance
    276     }),O("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function v(){
    277     if("loading"===document.readyState)return w||window.addEventListener("DOMContentLoaded",(()=>{
    278     v()}),!1),void(w=!0);document.querySelectorAll(p.cssSelector).forEach(y)}
    279     function N(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
    280     function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    281     i[e.toLowerCase()]=n}))}function x(e){const n=N(e)
    282     ;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{
    283     e[t]&&e[t](n)}))}Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:v,
    284     highlightElement:y,
    285     highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
    286     q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=J(p,e)},
    287     initHighlighting:()=>{
    288     v(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
    289     initHighlightingOnLoad:()=>{
    290     v(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
    291     },registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
    292     if(P("Language definition for '{}' could not be registered.".replace("{}",e)),
    293     !s)throw n;P(n),i=c}
    294     i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&k(i.aliases,{
    295     languageName:e})},unregisterLanguage:e=>{delete a[e]
    296     ;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
    297     listLanguages:()=>Object.keys(a),getLanguage:N,registerAliases:k,
    298     autoDetection:x,inherit:J,addPlugin:e=>{(e=>{
    299     e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
    300     e["before:highlightBlock"](Object.assign({block:n.el},n))
    301     }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
    302     e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
    303     removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
    304     s=!1},t.safeMode=()=>{s=!0},t.versionString="11.11.1",t.regex={concat:b,
    305     lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
    306     ;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
    307     },ne=ee({});ne.newInstance=()=>ee({});const te=e=>({IMPORTANT:{scope:"meta",
    308     begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
    309     scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
    310     FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
    311     ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
    312     contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
    313     scope:"number",
    314     begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    315     relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
    316     }),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),oe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),le=re.concat(se).sort().reverse()
    317     ;var ce="[0-9](_*[0-9])*",de=`\\.(${ce})`,ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ue={
    318     className:"number",variants:[{
    319     begin:`(\\b(${ce})((${de})|\\.)?|(${de}))[eE][+-]?(${ce})[fFdD]?\\b`},{
    320     begin:`\\b(${ce})((${de})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    321     begin:`(${de})[fFdD]?\\b`},{begin:`\\b(${ce})[fFdD]\\b`},{
    322     begin:`\\b0[xX]((${ge})\\.?|(${ge})?\\.(${ge}))[pP][+-]?(${ce})[fFdD]?\\b`},{
    323     begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ge})[lL]?\\b`},{
    324     begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    325     relevance:0};function be(e,n,t){return-1===t?"":e.replace(n,(a=>be(e,n,t-1)))}
    326     const me="[A-Za-z$_][0-9A-Za-z$_]*",pe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],_e=["true","false","null","undefined","NaN","Infinity"],he=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],fe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ee=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ye=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],we=[].concat(Ee,he,fe)
    327     ;function ve(e){const n=e.regex,t=me,a={begin:/<[A-Za-z0-9\\._:-]+/,
    328     end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    329     const t=e[0].length+e.index,a=e.input[t]
    330     ;if("<"===a||","===a)return void n.ignoreMatch();let i
    331     ;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
    332     ;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
    333     ;const r=e.input.substring(t)
    334     ;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
    335     }},i={$pattern:me,keyword:pe,literal:_e,built_in:we,"variable.language":ye
    336     },r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
    337     className:"number",variants:[{
    338     begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
    339     begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
    340     begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    341     begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    342     begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    343     begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
    344     end:"\\}",keywords:i,contains:[]},d={begin:".?html`",end:"",starts:{end:"`",
    345     returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
    346     begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
    347     contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:".?gql`",end:"",
    348     starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
    349     subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
    350     contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
    351     variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    352     begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
    353     begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
    354     excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
    355     endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    356     }),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
    357     },p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
    358     ;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
    359     });const _=[].concat(m,c.contains),h=_.concat([{begin:/(\s*)\(/,end:/\)/,
    360     keywords:i,contains:["self"].concat(_)}]),f={className:"params",begin:/(\s*)\(/,
    361     end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
    362     match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
    363     scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
    364     match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
    365     match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
    366     className:"title.class",keywords:{_:[...he,...fe]}},w={variants:[{
    367     match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
    368     className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
    369     illegal:/%/},v={
    370     match:n.concat(/\b/,(N=[...Ee,"super","import"].map((e=>e+"\\s*\\(")),
    371     n.concat("(?!",N.join("|"),")")),t,n.lookahead(/\s*\(/)),
    372     className:"title.function",relevance:0};var N;const k={
    373     begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
    374     excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},x={
    375     match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
    376     contains:[{begin:/\(\)/},f]
    377     },O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
    378     match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)],
    379     keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
    380     ;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
    381     PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
    382     contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
    383     label:"use_strict",className:"meta",relevance:10,
    384     begin:/^\s*['"]use (strict|asm)['"]/
    385     },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
    386     scope:"attr",match:t+n.lookahead(":"),relevance:0},M,{
    387     begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    388     keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
    389     className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{
    390     className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
    391     className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
    392     excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0
    393     },{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
    394     match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
    395     "on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
    396     begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},w,{
    397     beginKeywords:"while if switch catch for"},{
    398     begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    399     returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
    400     className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+t,
    401     relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
    402     contains:[f]},v,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
    403     className:"variable.constant"},E,x,{match:/\$[(.]/}]}}
    404     const Ne=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ke=["Protocol","Type"].map(Ne),xe=["init","self"].map(Ne),Oe=["Any","Self"],Me=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ae=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ce=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Te=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Re=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),De=m(Re,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Ie=b(Re,De,"*"),Le=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Be=m(Le,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),$e=b(Le,Be,"*"),Fe=b(/[A-Z]/,Be,"*"),ze=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,$e,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],je=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    405     ;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
    406     begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
    407     ;Object.assign(t,{className:"variable",variants:[{
    408     begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
    409     className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]
    410     },r=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={
    411     begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
    412     end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,
    413     contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(o);const l={begin:/\$?\(\(/,
    414     end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
    415     },c=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    416     }),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    417     contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    418     name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
    419     keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],
    420     literal:["true","false"],
    421     built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
    422     },contains:[c,e.SHEBANG(),d,l,r,s,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{
    423     className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_c:e=>{
    424     const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    425     }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
    426     className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
    427     match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
    428     begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
    429     begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    430     end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
    431     begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
    432     className:"number",variants:[{match:/\b(0b[01']+)/},{
    433     match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/
    434     },{
    435     match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/
    436     },{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0
    437     },c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    438     keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"
    439     },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
    440     className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
    441     className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
    442     },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
    443     keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
    444     type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],
    445     literal:"true false NULL",
    446     built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
    447     },b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
    448     begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
    449     keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
    450     contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
    451     begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
    452     keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
    453     begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
    454     relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
    455     keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
    456     end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
    457     }]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    458     disableAutodetect:!0,illegal:"</",contains:[].concat(m,p,b,[c,{
    459     begin:e.IDENT_RE+"::",keywords:u},{className:"class",
    460     beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
    461     beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
    462     strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
    463     contains:[{begin:/\\\n/}]
    464     }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
    465     className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
    466     begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
    467     begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    468     end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
    469     begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
    470     className:"number",variants:[{
    471     begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"
    472     },{
    473     begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"
    474     }],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    475     keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    476     },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
    477     className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
    478     className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
    479     },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
    480     type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
    481     keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
    482     literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
    483     _type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
    484     },b={className:"function.dispatch",relevance:0,keywords:{
    485     _hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
    486     },
    487     begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
    488     },m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
    489     begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
    490     keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
    491     contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
    492     begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
    493     keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
    494     begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
    495     begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
    496     className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
    497     contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
    498     relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
    499     },s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
    500     aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",
    501     classNameAliases:{"function.dispatch":"built_in"},
    502     contains:[].concat(p,_,b,m,[c,{
    503     begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",
    504     end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
    505     match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
    506     className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
    507     keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    508     built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    509     literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
    510     begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
    511     begin:"\\b(0b[01']+)"},{
    512     begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    513     begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    514     }],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    515     },r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
    516     keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
    517     end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    518     },e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
    519     begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
    520     contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
    521     ;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
    522     o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    523     illegal:/\n/})];const g={variants:[{className:"string",
    524     begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1
    525     },c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",
    526     contains:[{beginKeywords:"in out"},t]
    527     },b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
    528     begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    529     keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    530     contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    531     begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    532     }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    533     end:"$",keywords:{
    534     keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
    535     }},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    536     illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    537     },t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    538     relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    539     contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    540     beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    541     contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    542     begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    543     className:"string",begin:/"/,end:/"/}]},{
    544     beginKeywords:"new return throw await else",relevance:0},{className:"function",
    545     begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
    546     end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    547     beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    548     relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
    549     contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
    550     begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    551     contains:[g,a,e.C_BLOCK_COMMENT_MODE]
    552     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
    553     const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
    554     name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
    555     keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
    556     contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    557     },t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    558     },{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    559     },t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    560     begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}]
    561     },t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{
    562     begin:/:/,end:/[;}{]/,
    563     contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
    564     begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    565     },contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
    566     excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
    567     relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
    568     },{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
    569     $pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{
    570     begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
    571     className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{
    572     const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
    573     className:"meta",relevance:10,
    574     match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
    575     },{className:"comment",variants:[{
    576     begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
    577     end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    578     className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    579     end:/$/}]}},grmr_go:e=>{const n={
    580     keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
    581     type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
    582     literal:["true","false","iota","nil"],
    583     built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
    584     };return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    585     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    586     variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    587     className:"number",variants:[{
    588     match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0
    589     },{
    590     match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,
    591     relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{
    592     match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{
    593     match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{
    594     begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",
    595     excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,
    596     endsParent:!0,keywords:n,illegal:/["']/}]}]}},grmr_graphql:e=>{const n=e.regex
    597     ;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,
    598     keywords:{
    599     keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
    600     literal:["true","false","null"]},
    601     contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
    602     scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
    603     begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
    604     end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
    605     scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
    606     relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
    607     className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
    608     begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
    609     end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
    610     begin:/\$\{(.*?)\}/}]},r={className:"literal",
    611     begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
    612     contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
    613     begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
    614     },o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
    615     },l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
    616     name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    617     contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
    618     begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
    619     className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
    620     const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+be("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
    621     keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],
    622     literal:["false","true","null"],
    623     type:["char","boolean","long","float","int","byte","short","double"],
    624     built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
    625     begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
    626     end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
    627     ;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
    628     contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    629     relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    630     begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    631     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
    632     className:"string",contains:[e.BACKSLASH_ESCAPE]
    633     },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    634     match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
    635     1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
    636     begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
    637     3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
    638     3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    639     beginKeywords:"new throw return else",relevance:0},{
    640     begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
    641     2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
    642     end:/\)/,keywords:i,relevance:0,
    643     contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ue,e.C_BLOCK_COMMENT_MODE]
    644     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ue,r]}},grmr_javascript:ve,
    645     grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
    646     beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{
    647     literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
    648     relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
    649     },e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
    650     illegal:"\\S"}},grmr_kotlin:e=>{const n={
    651     keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    652     built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    653     literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    654     },a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
    655     className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    656     variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
    657     illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    658     contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
    659     className:"meta",
    660     begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    661     },o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    662     end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
    663     },l=ue,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
    664     variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    665     contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
    666     {name:"Kotlin",aliases:["kt","kts"],keywords:n,
    667     contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    668     begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
    669     begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    670     begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
    671     returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    672     begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    673     contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    674     keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    675     endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    676     endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
    677     },e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
    678     begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
    679     3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    680     illegal:"extends implements",contains:[{
    681     beginKeywords:"public protected internal private constructor"
    682     },e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    683     excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
    684     excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
    685     end:"$",illegal:"\n"},l]}},grmr_less:e=>{
    686     const n=te(e),t=le,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
    687     className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
    688     relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
    689     attribute:ie.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
    690     relevance:0}
    691     ;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
    692     begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    693     excludeEnd:!0}
    694     },n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
    695     className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    696     },n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
    697     begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
    698     contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
    699     returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
    700     },n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b",
    701     end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
    702     },m={className:"keyword",
    703     begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    704     starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
    705     className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
    706     }],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
    707     begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
    708     returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    709     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
    710     begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag"
    711     },n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
    712     className:"selector-pseudo",begin:":("+re.join("|")+")"},{
    713     className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/,
    714     end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
    715     begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
    716     ;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
    717     {name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
    718     grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
    719     },i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
    720     })];return{name:"Lua",aliases:["pluto"],keywords:{
    721     $pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",
    722     keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    723     built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    724     },contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
    725     contains:[e.inherit(e.TITLE_MODE,{
    726     begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    727     begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
    728     },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    729     begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
    730     className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    731     contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
    732     begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
    733     begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    734     built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    735     },contains:[n,t]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    736     className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
    737     name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    738     keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    739     },contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
    740     end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_markdown:e=>{
    741     const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={
    742     variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
    743     begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    744     relevance:2},{
    745     begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    746     relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    747     begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
    748     },{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    749     returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    750     excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    751     end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
    752     variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]
    753     },i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{
    754     begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
    755     }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
    756     ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
    757     })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    758     className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
    759     begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    760     contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    761     end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
    762     end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    763     begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    764     begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    765     contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    766     begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    767     className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    768     className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal",
    769     match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}},
    770     grmr_objectivec:e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
    771     keyword:["@interface","@class","@protocol","@implementation"]};return{
    772     name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    773     keywords:{"variable.language":["this","super"],$pattern:n,
    774     keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],
    775     literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
    776     built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
    777     type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
    778     },illegal:"</",contains:[{className:"built_in",
    779     begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    780     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    781     className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    782     contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    783     keywords:{
    784     keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
    785     },contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    786     className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
    787     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
    788     begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
    789     contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
    790     relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
    791     $pattern:/[\w.]+/,
    792     keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot class close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl field fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    793     },i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
    794     end:/\}/},s={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},o={scope:"variable",
    795     variants:[{begin:/\$\d/},{
    796     begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    797     },{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={
    798     className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{
    799     match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{
    800     match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{
    801     match:/\b0b[0-1][0-1_]*\b/}],relevance:0
    802     },c=[e.BACKSLASH_ESCAPE,i,o],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,a,i="\\1")=>{
    803     const r="\\1"===i?i:n.concat(i,a)
    804     ;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
    805     },u=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),b=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    806     endsWithParent:!0}),r,{className:"string",contains:c,variants:[{
    807     begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    808     end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    809     begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    810     relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    811     contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    812     contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    813     begin:"-?\\w+\\s*=>",relevance:0}]},l,{
    814     begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    815     keywords:"split return print reverse grep",relevance:0,
    816     contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    817     begin:g("s|tr|y",n.either(...d,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{
    818     begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{
    819     className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    820     begin:u("(?:m|qr)?",/\//,/\//)},{begin:u("m|qr",n.either(...d,{capture:!0
    821     }),/\1/)},{begin:u("m|qr",/\(/,/\)/)},{begin:u("m|qr",/\[/,/\]/)},{
    822     begin:u("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",
    823     end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]
    824     },{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,
    825     contains:[e.TITLE_MODE,s,l]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",
    826     end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",
    827     className:"comment"}]}];return i.contains=b,r.contains=b,{name:"Perl",
    828     aliases:["pl","pm"],keywords:a,contains:b}},grmr_php:e=>{
    829     const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=n.concat(/[A-Z]+/,t),s={
    830     scope:"variable",match:"\\$+"+a},o={scope:"subst",variants:[{begin:/\$\w+/},{
    831     begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null
    832     }),c="[ \t\n]",d={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
    833     illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),l,{
    834     begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,
    835     contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,n)=>{
    836     n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{
    837     n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({
    838     begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},g={scope:"number",variants:[{
    839     begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
    840     begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
    841     begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
    842     }],relevance:0
    843     },u=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={
    844     keyword:b,literal:(e=>{const n=[];return e.forEach((e=>{
    845     n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
    846     })),n})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{
    847     match:[/new/,n.concat(c,"+"),n.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{
    848     1:"keyword",4:"title.class"}}]},f=n.concat(a,"\\b(?!\\()"),E={variants:[{
    849     match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant"
    850     }},{match:[/::/,/class/],scope:{2:"variable.language"}},{
    851     match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{1:"title.class",
    852     3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
    853     scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
    854     3:"variable.language"}}]},y={scope:"attr",
    855     match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},w={relevance:0,
    856     begin:/\(/,end:/\)/,keywords:p,contains:[y,s,E,e.C_BLOCK_COMMENT_MODE,d,g,h]
    857     },v={relevance:0,
    858     match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(b).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),a,n.concat(c,"*"),n.lookahead(/(?=\()/)],
    859     scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(v)
    860     ;const N=[y,E,e.C_BLOCK_COMMENT_MODE,d,g,h],k={
    861     begin:n.concat(/#\[\s*\\?/,n.either(i,r)),beginScope:"meta",end:/]/,
    862     endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{
    863     begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},
    864     contains:["self",...N]},...N,{scope:"meta",variants:[{match:i},{match:r}]}]}
    865     ;return{case_insensitive:!1,keywords:p,
    866     contains:[k,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{
    867     contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
    868     keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
    869     contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
    870     begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
    871     begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},s,v,E,{
    872     match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},h,{
    873     scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
    874     excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
    875     },e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
    876     begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,
    877     contains:["self",k,s,E,e.C_BLOCK_COMMENT_MODE,d,g]}]},{scope:"class",variants:[{
    878     beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    879     illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    880     beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    881     beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    882     contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
    883     beginKeywords:"use",relevance:0,end:";",contains:[{
    884     match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,g]}
    885     },grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
    886     begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
    887     end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
    888     },e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
    889     skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
    890     contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
    891     aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
    892     const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
    893     $pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
    894     built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    895     literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    896     type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    897     },r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
    898     end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
    899     className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    900     begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    901     contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
    902     begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    903     contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
    904     begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    905     contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    906     end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
    907     relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    908     begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    909     end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    910     contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    911     contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    912     },c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
    913     className:"number",relevance:0,variants:[{
    914     begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
    915     begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
    916     begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
    917     },{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
    918     }]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
    919     contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
    920     className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
    921     end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
    922     contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
    923     name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
    924     illegal:/(<\/|\?)|=>/,contains:[r,u,{scope:"variable.language",match:/\bself\b/
    925     },{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"
    926     },l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",
    927     3:"title.function"},contains:[m]},{variants:[{
    928     match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
    929     scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
    930     className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
    931     grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
    932     starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
    933     begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
    934     const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
    935     ;return{name:"R",keywords:{$pattern:t,
    936     keyword:"function if in break next repeat else for while",
    937     literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    938     built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    939     },contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
    940     starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
    941     endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
    942     scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
    943     }]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
    944     }),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
    945     variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    946     }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    947     }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    948     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    949     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    950     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    951     relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
    952     1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
    953     match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
    954     2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
    955     match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
    956     match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
    957     contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
    958     const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={
    959     "variable.constant":["__FILE__","__LINE__","__ENCODING__"],
    960     "variable.language":["self","super"],
    961     keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],
    962     built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],
    963     literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={
    964     begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]
    965     }),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    966     }),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,
    967     end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],
    968     variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{
    969     begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{
    970     begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,
    971     end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{
    972     begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
    973     begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    974     begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    975     begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    976     begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
    977     contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    978     contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
    979     relevance:0,variants:[{
    980     begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    981     begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    982     },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    983     begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    984     begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
    985     className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
    986     keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
    987     match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",
    988     4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{
    989     2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{
    990     1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
    991     className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{
    992     match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
    993     begin:e.IDENT_RE+"::"},{className:"symbol",
    994     begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    995     begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
    996     begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    997     className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
    998     relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
    999     keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
    1000     illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
    1001     begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
    1002     end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
    1003     ;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
    1004     },{className:"meta.prompt",
    1005     begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    1006     starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
    1007     aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
    1008     contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
    1009     grmr_rust:e=>{
    1010     const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),i=n.concat(t,e.IDENT_RE),r={
    1011     className:"title.function.invoke",relevance:0,
    1012     begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,n.lookahead(/\s*\(/))
    1013     },s="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
    1014     ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,
    1015     keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],
    1016     literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:"</",
    1017     contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    1018     }),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    1019     className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",
    1020     variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{
    1021     scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{
    1022     className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s
    1023     },{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{
    1024     begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{
    1025     begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{
    1026     className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",
    1027     begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{
    1028     begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",
    1029     4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",
    1030     3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",
    1031     3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],
    1032     className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
    1033     keyword:"Self",built_in:o,type:l}},{className:"punctuation",begin:"->"},r]}},
    1034     grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable",
    1035     begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
    1036     case_insensitive:!0,illegal:"[=/|']",
    1037     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
    1038     className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    1039     className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    1040     },n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    1041     begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    1042     begin:":("+a.join("|")+")"},{className:"selector-pseudo",
    1043     begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
    1044     contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
    1045     begin:"\\b("+oe.join("|")+")\\b"},{
    1046     begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    1047     },{begin:/:/,end:/[;}{]/,relevance:0,
    1048     contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]
    1049     },{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
    1050     begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    1051     keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i,
    1052     className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    1053     },r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
    1054     },n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
    1055     aliases:["console","shellsession"],contains:[{className:"meta.prompt",
    1056     begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
    1057     subLanguage:"bash"}}]}),grmr_sql:e=>{
    1058     const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),s={
    1059     match:n.concat(/\b/,n.either(...i),/\s*\(/),relevance:0,keywords:{built_in:i}}
    1060     ;function o(e){
    1061     return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)}
    1062     const l={scope:"keyword",
    1063     match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]),
    1064     relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
    1065     $pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
    1066     ;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
    1067     })(r,{when:e=>e.length<3}),literal:["true","false","unknown"],
    1068     type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],
    1069     built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    1070     },contains:[{scope:"type",
    1071     match:o(["double precision","large object","with timezone","without timezone"])
    1072     },l,s,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{
    1073     begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    1074     match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{scope:"operator",
    1075     match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},
    1076     grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{
    1077     contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,m(...ke,...xe)],
    1078     className:{2:"keyword"}},r={match:b(/\./,m(...Me)),relevance:0
    1079     },s=Me.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
    1080     className:"keyword",
    1081     match:m(...Me.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...xe)}]},l={
    1082     $pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Ce),literal:Ae},c=[i,r,o],g=[{
    1083     match:b(/\./,m(...Te)),relevance:0},{className:"built_in",
    1084     match:b(/\b/,m(...Te),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{
    1085     className:"operator",relevance:0,variants:[{match:Ie},{match:`\\.(\\.|${De})+`}]
    1086     }],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,
    1087     variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{
    1088     match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/
    1089     },{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{
    1090     match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
    1091     }),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
    1092     }),w=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/
    1093     }),v=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),w(e)]
    1094     }),N=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),w(e)]}),k={
    1095     className:"string",
    1096     variants:[v(),v("#"),v("##"),v("###"),N(),N("#"),N("##"),N("###")]
    1097     },x=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,
    1098     contains:[e.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,
    1099     contains:x},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t,
    1100     contains:[...x,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},A={
    1101     scope:"regexp",variants:[M("###"),M("##"),M("#"),O]},S={match:b(/`/,$e,/`/)
    1102     },C=[S,{className:"variable",match:/\$\d+/},{className:"variable",
    1103     match:`\\$${Be}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{
    1104     contains:[{begin:/\(/,end:/\)/,keywords:je,contains:[...p,f,k]}]}},{
    1105     scope:"keyword",match:b(/@/,m(...ze),d(m(/\(/,/\s+/)))},{scope:"meta",
    1106     match:b(/@/,$e)}],R={match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type",
    1107     match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Be,"+")
    1108     },{className:"type",match:Fe,relevance:0},{match:/[?!]+/,relevance:0},{
    1109     match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Fe)),relevance:0}]},D={
    1110     begin:/</,end:/>/,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D)
    1111     ;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
    1112     match:b($e,/\s*:/),keywords:"_|0",relevance:0
    1113     },...a,A,...c,...g,...p,f,k,...C,...T,R]},L={begin:/</,end:/>/,
    1114     keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l,
    1115     contains:[{begin:m(d(b($e,/\s*:/)),d(b($e,/\s+/,$e,/\s*:/))),end:/:/,
    1116     relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",
    1117     match:$e}]},...a,...c,...p,f,k,...T,R,I],endsParent:!0,illegal:/["']/},$={
    1118     match:[/(func|macro)/,/\s+/,m(S.match,$e,Ie)],className:{1:"keyword",
    1119     3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},F={
    1120     match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
    1121     contains:[L,B,n],illegal:/\[|%/},z={match:[/operator/,/\s+/,Ie],className:{
    1122     1:"keyword",3:"title"}},j={begin:[/precedencegroup/,/\s+/,Fe],className:{
    1123     1:"keyword",3:"title"},contains:[R],keywords:[...Se,...Ae],end:/}/},U={
    1124     begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,$e,/\s*/],
    1125     beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[L,...c,{begin:/:/,
    1126     end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:Fe},...c],
    1127     relevance:0}]};for(const e of k.variants){
    1128     const n=e.contains.find((e=>"interpol"===e.label));n.keywords=l
    1129     ;const t=[...c,...g,...p,f,k,...C];n.contains=[...t,{begin:/\(/,end:/\)/,
    1130     contains:["self",...t]}]}return{name:"Swift",keywords:l,contains:[...a,$,F,{
    1131     match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{
    1132     1:"keyword",3:"keyword",5:"title.function"}},{match:[/class\b/,/\s+/,/var\b/],
    1133     scope:{1:"keyword",3:"keyword"}},U,z,j,{beginKeywords:"import",end:/$/,
    1134     contains:[...a],relevance:0},A,...c,...g,...p,f,k,...C,...T,R,I]}},
    1135     grmr_typescript:e=>{
    1136     const n=e.regex,t=ve(e),a=me,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={
    1137     begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}
    1138     },s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{
    1139     keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE]
    1140     },o={$pattern:me,
    1141     keyword:pe.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]),
    1142     literal:_e,built_in:we.concat(i),"variable.language":ye},l={className:"meta",
    1143     begin:"@"+a},c=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n))
    1144     ;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
    1145     ;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(l)
    1146     ;const d=t.contains.find((e=>"attr"===e.scope)),g=Object.assign({},d,{
    1147     match:n.concat(a,n.lookahead(/\s*\?:/))})
    1148     ;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,g]),
    1149     t.contains=t.contains.concat([l,r,s,g]),
    1150     c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,
    1151     begin:/^\s*['"]use strict['"]/
    1152     }),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{
    1153     name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vbnet:e=>{
    1154     const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={
    1155     className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
    1156     begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
    1157     begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
    1158     },o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
    1159     }),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
    1160     ;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
    1161     classNameAliases:{label:"symbol"},keywords:{
    1162     keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    1163     built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    1164     type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    1165     literal:"true false nothing"},
    1166     illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    1167     className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    1168     end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
    1169     variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    1170     },{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    1171     begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    1172     className:"label",begin:/^\w+:/},o,l,{className:"meta",
    1173     begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    1174     end:/$/,keywords:{
    1175     keyword:"const disable else elseif enable end externalsource if region then"},
    1176     contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/)
    1177     ;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,
    1178     keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]
    1179     },contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],
    1180     className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{
    1181     match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{
    1182     begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",
    1183     3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,
    1184     className:"type"},{className:"keyword",
    1185     match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
    1186     },{className:"number",relevance:0,
    1187     match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
    1188     }]}},grmr_xml:e=>{
    1189     const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
    1190     className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
    1191     contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    1192     },r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
    1193     className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
    1194     endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
    1195     begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
    1196     className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
    1197     begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
    1198     name:"HTML, XML",
    1199     aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    1200     case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
    1201     end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
    1202     className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]
    1203     },e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
    1204     relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
    1205     relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
    1206     begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{
    1207     end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    1208     begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{
    1209     end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    1210     className:"tag",begin:/<>|<\/>/},{className:"tag",
    1211     begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
    1212     end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
    1213     className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
    1214     className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
    1215     },grmr_yaml:e=>{
    1216     const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
    1217     className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],
    1218     contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{
    1219     begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{
    1220     begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{
    1221     begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,
    1222     relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={
    1223     begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{
    1224     className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{
    1225     begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{
    1226     begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",
    1227     begin:"^---\\s*$",relevance:10},{className:"string",
    1228     begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    1229     begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    1230     relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
    1231     begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
    1232     },{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    1233     begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    1234     relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    1235     className:"number",
    1236     begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    1237     },{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,{
    1238     className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,
    1239     scope:"char.escape",relevance:0}]},a],c=[...l]
    1240     ;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
    1241     aliases:["yml"],contains:l}}});const Pe=ne;for(const e of Object.keys(Ue)){
    1242     const n=e.replace("grmr_","").replace("_","-");Pe.registerLanguage(n,Ue[e])}
    1243     return Pe}()
    1244     ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
     6var hljs=function(){"use strict";function e(n){
     7return n instanceof Map?n.clear=n.delete=n.set=()=>{
     8throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
     9throw Error("set is read-only")
     10}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
     11const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
     12})),n}class n{constructor(e){
     13void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
     14ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
     15return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
     16}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
     17;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope
     18;class r{constructor(e,n){
     19this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
     20this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
     21if(e.startsWith("language:"))return e.replace("language:","language-")
     22;if(e.includes(".")){const t=e.split(".")
     23;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
     24}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
     25closeNode(e){i(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
     26this.buffer+=`<span class="${e}">`}}const s=(e={})=>{const n={children:[]}
     27;return Object.assign(n,e),n};class o{constructor(){
     28this.rootNode=s(),this.stack=[this.rootNode]}get top(){
     29return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
     30this.top.children.push(e)}openNode(e){const n=s({scope:e})
     31;this.add(n),this.stack.push(n)}closeNode(){
     32if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
     33for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
     34walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
     35return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
     36n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
     37"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
     38o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
     39addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
     40this.closeNode()}__addSublanguage(e,n){const t=e.root
     41;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
     42return new r(this,this.options).value()}finalize(){
     43return this.closeAllNodes(),!0}}function c(e){
     44return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
     45function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
     46function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
     47const n=e[e.length-1]
     48;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
     49})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
     50function p(e){return RegExp(e.toString()+"|").exec("").length-1}
     51const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
     52;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
     53;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
     54i+=a.substring(0,e.index),
     55a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
     56"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
     57const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",N={
     58begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'",
     59illegal:"\\n",contains:[N]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",
     60contains:[N]},O=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
     61contains:[]},t);i.contains.push({scope:"doctag",
     62begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
     63end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
     64;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
     65;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
     66},M=O("//","$"),A=O("/\\*","\\*/"),S=O("#","$");var C=Object.freeze({
     67__proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{
     68scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:O,
     69C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
     70begin:w,relevance:0},C_NUMBER_RE:w,END_SAME_AS_BEGIN:e=>Object.assign(e,{
     71"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
     72n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:f,
     73MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
     74NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
     75PHRASAL_WORDS_MODE:{
     76begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
     77},QUOTE_STRING_MODE:x,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
     78end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},
     79RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
     80SHEBANG:(e={})=>{const n=/^#![ ]*\//
     81;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
     82end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
     83TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
     84UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
     85"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
     86void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
     87n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
     88e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
     89void 0===e.relevance&&(e.relevance=0))}function I(e,n){
     90Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
     91if(e.match){
     92if(e.begin||e.end)throw Error("begin & end are not supported with match")
     93;e.begin=e.match,delete e.match}}function B(e,n){
     94void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
     95;if(e.starts)throw Error("beforeMatch cannot be used with starts")
     96;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
     97})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
     98relevance:0,contains:[Object.assign(t,{endsParent:!0})]
     99},e.relevance=0,delete t.beforeMatch
     100},F=["of","and","for","in","not","or","if","then","parent","list","value"]
     101;function z(e,n,t="keyword"){const a=Object.create(null)
     102;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
     103Object.assign(a,z(e[t],n,t))})),a;function i(e,t){
     104n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
     105;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
     106return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const U={},P=e=>{
     107console.error(e)},K=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
     108U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0)
     109},H=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
     110;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
     111;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function Z(e){(e=>{
     112e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
     113delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
     114_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
     115}),(e=>{if(Array.isArray(e.begin)){
     116if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
     117H
     118;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"),
     119H;G(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
     120if(Array.isArray(e.end)){
     121if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
     122H
     123;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"),
     124H;G(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function W(e){
     125function n(n,t){
     126return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
     127}class t{constructor(){
     128this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
     129addRule(e,n){
     130n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
     131this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
     132;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
     133}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
     134;const n=this.matcherRe.exec(e);if(!n)return null
     135;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
     136;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
     137this.rules=[],this.multiRegexes=[],
     138this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
     139if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
     140;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
     141n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
     142return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
     143this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
     144const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
     145;let t=n.exec(e)
     146;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
     147const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
     148return t&&(this.regexIndex+=t.position+1,
     149this.regexIndex===this.count&&this.considerAll()),t}}
     150if(e.compilerExtensions||(e.compilerExtensions=[]),
     151e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
     152;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
     153;if(r.isCompiled)return o
     154;[R,L,Z,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
     155r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
     156;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
     157l=r.keywords.$pattern,
     158delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=z(r.keywords,e.case_insensitive)),
     159o.keywordPatternRe=n(l,!0),
     160s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
     161r.end&&(o.endRe=n(o.end)),
     162o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
     163r.illegal&&(o.illegalRe=n(r.illegal)),
     164r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
     165variants:null},n)))),e.cachedVariants?e.cachedVariants:Q(e)?a(e,{
     166starts:e.starts?a(e.starts):null
     167}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
     168})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
     169;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
     170}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
     171}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function Q(e){
     172return!!e&&(e.endsWithParent||Q(e.starts))}class X extends Error{
     173constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
     174const V=t,J=a,Y=Symbol("nomatch"),ee=t=>{
     175const a=Object.create(null),i=Object.create(null),r=[];let s=!0
     176;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
     177disableAutodetect:!0,name:"Plain text",contains:[]};let p={
     178ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
     179languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
     180cssSelector:"pre code",languages:null,__emitter:l};function _(e){
     181return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
     182;"object"==typeof n?(a=e,
     183t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
     184q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
     185i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};O("before:highlight",r)
     186;const s=r.result?r.result:f(r.language,r.code,t)
     187;return s.code=r.code,O("after:highlight",s),s}function f(e,t,i,r){
     188const l=Object.create(null);function c(){if(!O.keywords)return void A.addText(S)
     189;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t=""
     190;for(;n;){t+=S.substring(e,n.index)
     191;const i=v.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){
     192const[e,a]=r
     193;if(A.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
     194const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
     195;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a
     196;t+=S.substring(e),A.addText(t)}function d(){null!=O.subLanguage?(()=>{
     197if(""===S)return;let e=null;if("string"==typeof O.subLanguage){
     198if(!a[O.subLanguage])return void A.addText(S)
     199;e=f(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top
     200}else e=E(S,O.subLanguage.length?O.subLanguage:null)
     201;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language)
     202})():c(),S=""}function g(e,n){
     203""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1
     204;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
     205const a=v.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(S=i,c(),S=""),t++}}
     206function b(e,n){
     207return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),
     208e.beginScope&&(e.beginScope._wrap?(g(S,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
     209S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{
     210value:O}}),O}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
     211;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
     212;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
     213for(;e.endsParent&&e.parent;)e=e.parent;return e}}
     214if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
     215return 0===O.matcher.regexIndex?(S+=e[0],1):(D=!0,0)}function h(e){
     216const n=e[0],a=t.substring(e.index),i=m(O,e,a);if(!i)return Y;const r=O
     217;O.endScope&&O.endScope._wrap?(d(),
     218g(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(),
     219u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n),
     220d(),r.excludeEnd&&(S=n));do{
     221O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent
     222}while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
     223let y={};function w(a,r){const o=r&&r[0];if(S+=a,null==o)return d(),0
     224;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
     225if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
     226;throw n.languageName=e,n.badRule=y.rule,n}return 1}
     227if(y=r,"begin"===r.type)return(e=>{
     228const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
     229;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
     230;return a.skip?S+=t:(a.excludeBegin&&(S+=t),
     231d(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r)
     232;if("illegal"===r.type&&!i){
     233const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"<unnamed>")+'"')
     234;throw e.mode=O,e}if("end"===r.type){const e=h(r);if(e!==Y)return e}
     235if("illegal"===r.type&&""===o)return S+="\n",1
     236;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
     237;return S+=o,o.length}const v=N(e)
     238;if(!v)throw P(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
     239;const k=W(v);let x="",O=r||k;const M={},A=new p.__emitter(p);(()=>{const e=[]
     240;for(let n=O;n!==v;n=n.parent)n.scope&&e.unshift(n.scope)
     241;e.forEach((e=>A.openNode(e)))})();let S="",C=0,T=0,R=0,D=!1;try{
     242if(v.__emitTokens)v.__emitTokens(t,A);else{for(O.matcher.considerAll();;){
     243R++,D?D=!1:O.matcher.considerAll(),O.matcher.lastIndex=T
     244;const e=O.matcher.exec(t);if(!e)break;const n=w(t.substring(T,e.index),e)
     245;T=e.index+n}w(t.substring(T))}return A.finalize(),x=A.toHTML(),{language:e,
     246value:x,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){
     247if(n.message&&n.message.includes("Illegal"))return{language:e,value:V(t),
     248illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
     249context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:x},_emitter:A};if(s)return{
     250language:e,value:V(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O}
     251;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
     252const n={value:V(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
     253;return n._emitter.addText(e),n})(e),i=n.filter(N).filter(x).map((n=>f(n,e,!1)))
     254;i.unshift(t);const r=i.sort(((e,n)=>{
     255if(e.relevance!==n.relevance)return n.relevance-e.relevance
     256;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1
     257;if(N(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
     258;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
     259let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
     260;const t=p.languageDetectRe.exec(n);if(t){const n=N(t[1])
     261;return n||(K(o.replace("{}",t[1])),
     262K("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
     263return n.split(/\s+/).find((e=>_(e)||N(e)))})(e);if(_(t))return
     264;if(O("before:highlightElement",{el:e,language:t
     265}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
     266;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
     267console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
     268console.warn("The element with unescaped HTML:"),
     269console.warn(e)),p.throwUnescapedHTML))throw new X("One of your code blocks includes unescaped HTML.",e.innerHTML)
     270;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
     271;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
     272;e.classList.add("hljs"),e.classList.add("language-"+a)
     273})(e,t,r.language),e.result={language:r.language,re:r.relevance,
     274relevance:r.relevance},r.secondBest&&(e.secondBest={
     275language:r.secondBest.language,relevance:r.secondBest.relevance
     276}),O("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function v(){
     277if("loading"===document.readyState)return w||window.addEventListener("DOMContentLoaded",(()=>{
     278v()}),!1),void(w=!0);document.querySelectorAll(p.cssSelector).forEach(y)}
     279function N(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
     280function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
     281i[e.toLowerCase()]=n}))}function x(e){const n=N(e)
     282;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{
     283e[t]&&e[t](n)}))}Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:v,
     284highlightElement:y,
     285highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
     286q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=J(p,e)},
     287initHighlighting:()=>{
     288v(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
     289initHighlightingOnLoad:()=>{
     290v(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
     291},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
     292if(P("Language definition for '{}' could not be registered.".replace("{}",e)),
     293!s)throw n;P(n),i=c}
     294i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&k(i.aliases,{
     295languageName:e})},unregisterLanguage:e=>{delete a[e]
     296;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
     297listLanguages:()=>Object.keys(a),getLanguage:N,registerAliases:k,
     298autoDetection:x,inherit:J,addPlugin:e=>{(e=>{
     299e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
     300e["before:highlightBlock"](Object.assign({block:n.el},n))
     301}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
     302e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
     303removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
     304s=!1},t.safeMode=()=>{s=!0},t.versionString="11.11.1",t.regex={concat:b,
     305lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
     306;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
     307},ne=ee({});ne.newInstance=()=>ee({});const te=e=>({IMPORTANT:{scope:"meta",
     308begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
     309scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
     310FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
     311ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
     312contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
     313scope:"number",
     314begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
     315relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
     316}),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),oe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),le=re.concat(se).sort().reverse()
     317;var ce="[0-9](_*[0-9])*",de=`\\.(${ce})`,ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ue={
     318className:"number",variants:[{
     319begin:`(\\b(${ce})((${de})|\\.)?|(${de}))[eE][+-]?(${ce})[fFdD]?\\b`},{
     320begin:`\\b(${ce})((${de})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
     321begin:`(${de})[fFdD]?\\b`},{begin:`\\b(${ce})[fFdD]\\b`},{
     322begin:`\\b0[xX]((${ge})\\.?|(${ge})?\\.(${ge}))[pP][+-]?(${ce})[fFdD]?\\b`},{
     323begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ge})[lL]?\\b`},{
     324begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
     325relevance:0};function be(e,n,t){return-1===t?"":e.replace(n,(a=>be(e,n,t-1)))}
     326const me="[A-Za-z$_][0-9A-Za-z$_]*",pe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],_e=["true","false","null","undefined","NaN","Infinity"],he=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],fe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ee=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ye=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],we=[].concat(Ee,he,fe)
     327;function ve(e){const n=e.regex,t=me,a={begin:/<[A-Za-z0-9\\._:-]+/,
     328end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
     329const t=e[0].length+e.index,a=e.input[t]
     330;if("<"===a||","===a)return void n.ignoreMatch();let i
     331;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
     332;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
     333;const r=e.input.substring(t)
     334;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
     335}},i={$pattern:me,keyword:pe,literal:_e,built_in:we,"variable.language":ye
     336},r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
     337className:"number",variants:[{
     338begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
     339begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
     340begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
     341begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
     342begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
     343begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
     344end:"\\}",keywords:i,contains:[]},d={begin:".?html`",end:"",starts:{end:"`",
     345returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
     346begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
     347contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:".?gql`",end:"",
     348starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
     349subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
     350contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
     351variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
     352begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
     353begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
     354excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
     355endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
     356}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
     357},p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
     358;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
     359});const _=[].concat(m,c.contains),h=_.concat([{begin:/(\s*)\(/,end:/\)/,
     360keywords:i,contains:["self"].concat(_)}]),f={className:"params",begin:/(\s*)\(/,
     361end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
     362match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
     363scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
     364match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
     365match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
     366className:"title.class",keywords:{_:[...he,...fe]}},w={variants:[{
     367match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
     368className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
     369illegal:/%/},v={
     370match:n.concat(/\b/,(N=[...Ee,"super","import"].map((e=>e+"\\s*\\(")),
     371n.concat("(?!",N.join("|"),")")),t,n.lookahead(/\s*\(/)),
     372className:"title.function",relevance:0};var N;const k={
     373begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
     374excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},x={
     375match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
     376contains:[{begin:/\(\)/},f]
     377},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
     378match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)],
     379keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
     380;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
     381PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
     382contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
     383label:"use_strict",className:"meta",relevance:10,
     384begin:/^\s*['"]use (strict|asm)['"]/
     385},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
     386scope:"attr",match:t+n.lookahead(":"),relevance:0},M,{
     387begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
     388keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
     389className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{
     390className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
     391className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
     392excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0
     393},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
     394match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
     395"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
     396begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},w,{
     397beginKeywords:"while if switch catch for"},{
     398begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
     399returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
     400className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+t,
     401relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
     402contains:[f]},v,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
     403className:"variable.constant"},E,x,{match:/\$[(.]/}]}}
     404const Ne=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ke=["Protocol","Type"].map(Ne),xe=["init","self"].map(Ne),Oe=["Any","Self"],Me=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ae=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ce=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Te=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Re=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),De=m(Re,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Ie=b(Re,De,"*"),Le=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Be=m(Le,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),$e=b(Le,Be,"*"),Fe=b(/[A-Z]/,Be,"*"),ze=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,$e,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],je=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
     405;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
     406begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
     407;Object.assign(t,{className:"variable",variants:[{
     408begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
     409className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]
     410},r=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={
     411begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
     412end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,
     413contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(o);const l={begin:/\$?\(\(/,
     414end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
     415},c=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
     416}),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
     417contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
     418name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
     419keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],
     420literal:["true","false"],
     421built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
     422},contains:[c,e.SHEBANG(),d,l,r,s,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{
     423className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_c:e=>{
     424const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
     425}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
     426className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
     427match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
     428begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
     429begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
     430end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
     431begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
     432className:"number",variants:[{match:/\b(0b[01']+)/},{
     433match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/
     434},{
     435match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/
     436},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0
     437},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
     438keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"
     439},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
     440className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
     441className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
     442},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
     443keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
     444type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],
     445literal:"true false NULL",
     446built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
     447},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
     448begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
     449keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
     450contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
     451begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
     452keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
     453begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
     454relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
     455keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
     456end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
     457}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
     458disableAutodetect:!0,illegal:"</",contains:[].concat(m,p,b,[c,{
     459begin:e.IDENT_RE+"::",keywords:u},{className:"class",
     460beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
     461beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
     462strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
     463contains:[{begin:/\\\n/}]
     464}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
     465className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
     466begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
     467begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
     468end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
     469begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
     470className:"number",variants:[{
     471begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"
     472},{
     473begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"
     474}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
     475keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
     476},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
     477className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
     478className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
     479},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
     480type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
     481keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
     482literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
     483_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
     484},b={className:"function.dispatch",relevance:0,keywords:{
     485_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
     486},
     487begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
     488},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
     489begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
     490keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
     491contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
     492begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
     493keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
     494begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
     495begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
     496className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
     497contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
     498relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
     499},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
     500aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",
     501classNameAliases:{"function.dispatch":"built_in"},
     502contains:[].concat(p,_,b,m,[c,{
     503begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",
     504end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
     505match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
     506className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
     507keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]),
     508built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
     509literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
     510begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
     511begin:"\\b(0b[01']+)"},{
     512begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
     513begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
     514}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
     515},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
     516keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
     517end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
     518},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
     519begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
     520contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
     521;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
     522o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
     523illegal:/\n/})];const g={variants:[{className:"string",
     524begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1
     525},c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",
     526contains:[{beginKeywords:"in out"},t]
     527},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
     528begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
     529keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
     530contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
     531begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
     532}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
     533end:"$",keywords:{
     534keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
     535}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
     536illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
     537},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
     538relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
     539contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
     540beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
     541contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
     542begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
     543className:"string",begin:/"/,end:/"/}]},{
     544beginKeywords:"new return throw await else",relevance:0},{className:"function",
     545begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
     546end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
     547beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
     548relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
     549contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
     550begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
     551contains:[g,a,e.C_BLOCK_COMMENT_MODE]
     552},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
     553const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
     554name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
     555keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
     556contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
     557},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
     558},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
     559},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
     560begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}]
     561},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{
     562begin:/:/,end:/[;}{]/,
     563contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
     564begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
     565},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
     566excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
     567relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
     568},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
     569$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{
     570begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
     571className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{
     572const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
     573className:"meta",relevance:10,
     574match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
     575},{className:"comment",variants:[{
     576begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
     577end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
     578className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
     579end:/$/}]}},grmr_go:e=>{const n={
     580keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
     581type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
     582literal:["true","false","iota","nil"],
     583built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
     584};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
     585contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
     586variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
     587className:"number",variants:[{
     588match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0
     589},{
     590match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,
     591relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{
     592match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{
     593match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{
     594begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",
     595excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,
     596endsParent:!0,keywords:n,illegal:/["']/}]}]}},grmr_graphql:e=>{const n=e.regex
     597;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,
     598keywords:{
     599keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
     600literal:["true","false","null"]},
     601contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
     602scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
     603begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
     604end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
     605scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
     606relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
     607className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
     608begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
     609end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
     610begin:/\$\{(.*?)\}/}]},r={className:"literal",
     611begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
     612contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
     613begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
     614},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
     615},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
     616name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
     617contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
     618begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
     619className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
     620const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+be("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
     621keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],
     622literal:["false","true","null"],
     623type:["char","boolean","long","float","int","byte","short","double"],
     624built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
     625begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
     626end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
     627;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
     628contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
     629relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
     630begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
     631},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
     632className:"string",contains:[e.BACKSLASH_ESCAPE]
     633},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
     634match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
     6351:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
     636begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
     6373:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
     6383:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
     639beginKeywords:"new throw return else",relevance:0},{
     640begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
     6412:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
     642end:/\)/,keywords:i,relevance:0,
     643contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ue,e.C_BLOCK_COMMENT_MODE]
     644},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ue,r]}},grmr_javascript:ve,
     645grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
     646beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{
     647literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
     648relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
     649},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
     650illegal:"\\S"}},grmr_kotlin:e=>{const n={
     651keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
     652built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
     653literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
     654},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
     655className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
     656variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
     657illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
     658contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
     659className:"meta",
     660begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
     661},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
     662end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
     663},l=ue,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
     664variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
     665contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
     666{name:"Kotlin",aliases:["kt","kts"],keywords:n,
     667contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
     668begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
     669begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
     670begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
     671returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
     672begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
     673contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
     674keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
     675endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
     676endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
     677},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
     678begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
     6793:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
     680illegal:"extends implements",contains:[{
     681beginKeywords:"public protected internal private constructor"
     682},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
     683excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
     684excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
     685end:"$",illegal:"\n"},l]}},grmr_less:e=>{
     686const n=te(e),t=le,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
     687className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
     688relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
     689attribute:ie.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
     690relevance:0}
     691;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
     692begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
     693excludeEnd:!0}
     694},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
     695className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
     696},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
     697begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
     698contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
     699returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
     700},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b",
     701end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
     702},m={className:"keyword",
     703begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
     704starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
     705className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
     706}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
     707begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
     708returnEnd:!0,illegal:"[<='$\"]",relevance:0,
     709contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
     710begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag"
     711},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
     712className:"selector-pseudo",begin:":("+re.join("|")+")"},{
     713className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/,
     714end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
     715begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
     716;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
     717{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
     718grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
     719},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
     720})];return{name:"Lua",aliases:["pluto"],keywords:{
     721$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",
     722keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
     723built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
     724},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
     725contains:[e.inherit(e.TITLE_MODE,{
     726begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
     727begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
     728},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
     729begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
     730className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
     731contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
     732begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
     733begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
     734built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
     735},contains:[n,t]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
     736className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
     737name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
     738keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
     739},contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
     740end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_markdown:e=>{
     741const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={
     742variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
     743begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
     744relevance:2},{
     745begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
     746relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
     747begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
     748},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
     749returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
     750excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
     751end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
     752variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]
     753},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{
     754begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
     755}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
     756;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
     757})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
     758className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
     759begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
     760contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
     761end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
     762end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
     763begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
     764begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
     765contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
     766begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
     767className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
     768className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal",
     769match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}},
     770grmr_objectivec:e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
     771keyword:["@interface","@class","@protocol","@implementation"]};return{
     772name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
     773keywords:{"variable.language":["this","super"],$pattern:n,
     774keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],
     775literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
     776built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
     777type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
     778},illegal:"</",contains:[{className:"built_in",
     779begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
     780},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
     781className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
     782contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
     783keywords:{
     784keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
     785},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
     786className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
     787},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
     788begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
     789contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
     790relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
     791$pattern:/[\w.]+/,
     792keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot class close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl field fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
     793},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
     794end:/\}/},s={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},o={scope:"variable",
     795variants:[{begin:/\$\d/},{
     796begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
     797},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={
     798className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{
     799match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{
     800match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{
     801match:/\b0b[0-1][0-1_]*\b/}],relevance:0
     802},c=[e.BACKSLASH_ESCAPE,i,o],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,a,i="\\1")=>{
     803const r="\\1"===i?i:n.concat(i,a)
     804;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
     805},u=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),b=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
     806endsWithParent:!0}),r,{className:"string",contains:c,variants:[{
     807begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
     808end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
     809begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
     810relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
     811contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
     812contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
     813begin:"-?\\w+\\s*=>",relevance:0}]},l,{
     814begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
     815keywords:"split return print reverse grep",relevance:0,
     816contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
     817begin:g("s|tr|y",n.either(...d,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{
     818begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{
     819className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
     820begin:u("(?:m|qr)?",/\//,/\//)},{begin:u("m|qr",n.either(...d,{capture:!0
     821}),/\1/)},{begin:u("m|qr",/\(/,/\)/)},{begin:u("m|qr",/\[/,/\]/)},{
     822begin:u("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",
     823end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]
     824},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,
     825contains:[e.TITLE_MODE,s,l]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",
     826end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",
     827className:"comment"}]}];return i.contains=b,r.contains=b,{name:"Perl",
     828aliases:["pl","pm"],keywords:a,contains:b}},grmr_php:e=>{
     829const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=n.concat(/[A-Z]+/,t),s={
     830scope:"variable",match:"\\$+"+a},o={scope:"subst",variants:[{begin:/\$\w+/},{
     831begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null
     832}),c="[ \t\n]",d={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
     833illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),l,{
     834begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,
     835contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,n)=>{
     836n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{
     837n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({
     838begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},g={scope:"number",variants:[{
     839begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
     840begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
     841begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
     842}],relevance:0
     843},u=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={
     844keyword:b,literal:(e=>{const n=[];return e.forEach((e=>{
     845n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
     846})),n})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{
     847match:[/new/,n.concat(c,"+"),n.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{
     8481:"keyword",4:"title.class"}}]},f=n.concat(a,"\\b(?!\\()"),E={variants:[{
     849match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant"
     850}},{match:[/::/,/class/],scope:{2:"variable.language"}},{
     851match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{1:"title.class",
     8523:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
     853scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
     8543:"variable.language"}}]},y={scope:"attr",
     855match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},w={relevance:0,
     856begin:/\(/,end:/\)/,keywords:p,contains:[y,s,E,e.C_BLOCK_COMMENT_MODE,d,g,h]
     857},v={relevance:0,
     858match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(b).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),a,n.concat(c,"*"),n.lookahead(/(?=\()/)],
     859scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(v)
     860;const N=[y,E,e.C_BLOCK_COMMENT_MODE,d,g,h],k={
     861begin:n.concat(/#\[\s*\\?/,n.either(i,r)),beginScope:"meta",end:/]/,
     862endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{
     863begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},
     864contains:["self",...N]},...N,{scope:"meta",variants:[{match:i},{match:r}]}]}
     865;return{case_insensitive:!1,keywords:p,
     866contains:[k,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{
     867contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
     868keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
     869contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
     870begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
     871begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},s,v,E,{
     872match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},h,{
     873scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
     874excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
     875},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
     876begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,
     877contains:["self",k,s,E,e.C_BLOCK_COMMENT_MODE,d,g]}]},{scope:"class",variants:[{
     878beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
     879illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
     880beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
     881beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
     882contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
     883beginKeywords:"use",relevance:0,end:";",contains:[{
     884match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,g]}
     885},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
     886begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
     887end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
     888},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
     889skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
     890contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
     891aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
     892const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
     893$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
     894built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
     895literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
     896type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
     897},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
     898end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
     899className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
     900begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
     901contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
     902begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
     903contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
     904begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
     905contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
     906end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
     907relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
     908begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
     909end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
     910contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
     911contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
     912},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
     913className:"number",relevance:0,variants:[{
     914begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
     915begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
     916begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
     917},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
     918}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
     919contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
     920className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
     921end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
     922contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
     923name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
     924illegal:/(<\/|\?)|=>/,contains:[r,u,{scope:"variable.language",match:/\bself\b/
     925},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"
     926},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",
     9273:"title.function"},contains:[m]},{variants:[{
     928match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
     929scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
     930className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
     931grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
     932starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
     933begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
     934const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
     935;return{name:"R",keywords:{$pattern:t,
     936keyword:"function if in break next repeat else for while",
     937literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
     938built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
     939},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
     940starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
     941endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
     942scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
     943}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
     944}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
     945variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
     946}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
     947}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
     948}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
     949}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
     950}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
     951relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
     9521:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
     953match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
     9542:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
     955match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
     956match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
     957contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
     958const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={
     959"variable.constant":["__FILE__","__LINE__","__ENCODING__"],
     960"variable.language":["self","super"],
     961keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],
     962built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],
     963literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={
     964begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]
     965}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10
     966}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,
     967end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],
     968variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{
     969begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{
     970begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,
     971end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{
     972begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
     973begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
     974begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
     975begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
     976begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
     977contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
     978contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
     979relevance:0,variants:[{
     980begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
     981begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
     982},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
     983begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
     984begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
     985className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
     986keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
     987match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",
     9884:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{
     9892:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{
     9901:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
     991className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{
     992match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
     993begin:e.IDENT_RE+"::"},{className:"symbol",
     994begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
     995begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
     996begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
     997className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
     998relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
     999keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
     1000illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
     1001begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
     1002end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
     1003;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
     1004},{className:"meta.prompt",
     1005begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
     1006starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
     1007aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
     1008contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
     1009grmr_rust:e=>{
     1010const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),i=n.concat(t,e.IDENT_RE),r={
     1011className:"title.function.invoke",relevance:0,
     1012begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,n.lookahead(/\s*\(/))
     1013},s="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
     1014;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,
     1015keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],
     1016literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:"</",
     1017contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
     1018}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
     1019className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",
     1020variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{
     1021scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{
     1022className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s
     1023},{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{
     1024begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{
     1025begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{
     1026className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",
     1027begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{
     1028begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",
     10294:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",
     10303:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",
     10313:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],
     1032className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
     1033keyword:"Self",built_in:o,type:l}},{className:"punctuation",begin:"->"},r]}},
     1034grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable",
     1035begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
     1036case_insensitive:!0,illegal:"[=/|']",
     1037contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
     1038className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
     1039className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
     1040},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
     1041begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
     1042begin:":("+a.join("|")+")"},{className:"selector-pseudo",
     1043begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
     1044contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
     1045begin:"\\b("+oe.join("|")+")\\b"},{
     1046begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
     1047},{begin:/:/,end:/[;}{]/,relevance:0,
     1048contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]
     1049},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
     1050begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
     1051keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i,
     1052className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
     1053},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
     1054},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
     1055aliases:["console","shellsession"],contains:[{className:"meta.prompt",
     1056begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
     1057subLanguage:"bash"}}]}),grmr_sql:e=>{
     1058const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),s={
     1059match:n.concat(/\b/,n.either(...i),/\s*\(/),relevance:0,keywords:{built_in:i}}
     1060;function o(e){
     1061return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)}
     1062const l={scope:"keyword",
     1063match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]),
     1064relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
     1065$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
     1066;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
     1067})(r,{when:e=>e.length<3}),literal:["true","false","unknown"],
     1068type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],
     1069built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
     1070},contains:[{scope:"type",
     1071match:o(["double precision","large object","with timezone","without timezone"])
     1072},l,s,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{
     1073begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{
     1074match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{scope:"operator",
     1075match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},
     1076grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{
     1077contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,m(...ke,...xe)],
     1078className:{2:"keyword"}},r={match:b(/\./,m(...Me)),relevance:0
     1079},s=Me.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
     1080className:"keyword",
     1081match:m(...Me.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...xe)}]},l={
     1082$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Ce),literal:Ae},c=[i,r,o],g=[{
     1083match:b(/\./,m(...Te)),relevance:0},{className:"built_in",
     1084match:b(/\b/,m(...Te),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{
     1085className:"operator",relevance:0,variants:[{match:Ie},{match:`\\.(\\.|${De})+`}]
     1086}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,
     1087variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{
     1088match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/
     1089},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{
     1090match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
     1091}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
     1092}),w=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/
     1093}),v=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),w(e)]
     1094}),N=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),w(e)]}),k={
     1095className:"string",
     1096variants:[v(),v("#"),v("##"),v("###"),N(),N("#"),N("##"),N("###")]
     1097},x=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,
     1098contains:[e.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,
     1099contains:x},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t,
     1100contains:[...x,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},A={
     1101scope:"regexp",variants:[M("###"),M("##"),M("#"),O]},S={match:b(/`/,$e,/`/)
     1102},C=[S,{className:"variable",match:/\$\d+/},{className:"variable",
     1103match:`\\$${Be}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{
     1104contains:[{begin:/\(/,end:/\)/,keywords:je,contains:[...p,f,k]}]}},{
     1105scope:"keyword",match:b(/@/,m(...ze),d(m(/\(/,/\s+/)))},{scope:"meta",
     1106match:b(/@/,$e)}],R={match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type",
     1107match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Be,"+")
     1108},{className:"type",match:Fe,relevance:0},{match:/[?!]+/,relevance:0},{
     1109match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Fe)),relevance:0}]},D={
     1110begin:/</,end:/>/,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D)
     1111;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
     1112match:b($e,/\s*:/),keywords:"_|0",relevance:0
     1113},...a,A,...c,...g,...p,f,k,...C,...T,R]},L={begin:/</,end:/>/,
     1114keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l,
     1115contains:[{begin:m(d(b($e,/\s*:/)),d(b($e,/\s+/,$e,/\s*:/))),end:/:/,
     1116relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",
     1117match:$e}]},...a,...c,...p,f,k,...T,R,I],endsParent:!0,illegal:/["']/},$={
     1118match:[/(func|macro)/,/\s+/,m(S.match,$e,Ie)],className:{1:"keyword",
     11193:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},F={
     1120match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
     1121contains:[L,B,n],illegal:/\[|%/},z={match:[/operator/,/\s+/,Ie],className:{
     11221:"keyword",3:"title"}},j={begin:[/precedencegroup/,/\s+/,Fe],className:{
     11231:"keyword",3:"title"},contains:[R],keywords:[...Se,...Ae],end:/}/},U={
     1124begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,$e,/\s*/],
     1125beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[L,...c,{begin:/:/,
     1126end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:Fe},...c],
     1127relevance:0}]};for(const e of k.variants){
     1128const n=e.contains.find((e=>"interpol"===e.label));n.keywords=l
     1129;const t=[...c,...g,...p,f,k,...C];n.contains=[...t,{begin:/\(/,end:/\)/,
     1130contains:["self",...t]}]}return{name:"Swift",keywords:l,contains:[...a,$,F,{
     1131match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{
     11321:"keyword",3:"keyword",5:"title.function"}},{match:[/class\b/,/\s+/,/var\b/],
     1133scope:{1:"keyword",3:"keyword"}},U,z,j,{beginKeywords:"import",end:/$/,
     1134contains:[...a],relevance:0},A,...c,...g,...p,f,k,...C,...T,R,I]}},
     1135grmr_typescript:e=>{
     1136const n=e.regex,t=ve(e),a=me,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={
     1137begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}
     1138},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{
     1139keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE]
     1140},o={$pattern:me,
     1141keyword:pe.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]),
     1142literal:_e,built_in:we.concat(i),"variable.language":ye},l={className:"meta",
     1143begin:"@"+a},c=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n))
     1144;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
     1145;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(l)
     1146;const d=t.contains.find((e=>"attr"===e.scope)),g=Object.assign({},d,{
     1147match:n.concat(a,n.lookahead(/\s*\?:/))})
     1148;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,g]),
     1149t.contains=t.contains.concat([l,r,s,g]),
     1150c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,
     1151begin:/^\s*['"]use strict['"]/
     1152}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{
     1153name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vbnet:e=>{
     1154const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={
     1155className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
     1156begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
     1157begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
     1158},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
     1159}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
     1160;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
     1161classNameAliases:{label:"symbol"},keywords:{
     1162keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
     1163built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
     1164type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
     1165literal:"true false nothing"},
     1166illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
     1167className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
     1168end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
     1169variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
     1170},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
     1171begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
     1172className:"label",begin:/^\w+:/},o,l,{className:"meta",
     1173begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
     1174end:/$/,keywords:{
     1175keyword:"const disable else elseif enable end externalsource if region then"},
     1176contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/)
     1177;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,
     1178keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]
     1179},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],
     1180className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{
     1181match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{
     1182begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",
     11833:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,
     1184className:"type"},{className:"keyword",
     1185match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
     1186},{className:"number",relevance:0,
     1187match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
     1188}]}},grmr_xml:e=>{
     1189const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
     1190className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
     1191contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
     1192},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
     1193className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
     1194endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
     1195begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
     1196className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
     1197begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
     1198name:"HTML, XML",
     1199aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
     1200case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
     1201end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
     1202className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]
     1203},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
     1204relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
     1205relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
     1206begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{
     1207end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
     1208begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{
     1209end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
     1210className:"tag",begin:/<>|<\/>/},{className:"tag",
     1211begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
     1212end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
     1213className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
     1214className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
     1215},grmr_yaml:e=>{
     1216const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
     1217className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],
     1218contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{
     1219begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{
     1220begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{
     1221begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,
     1222relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={
     1223begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{
     1224className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{
     1225begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{
     1226begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",
     1227begin:"^---\\s*$",relevance:10},{className:"string",
     1228begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
     1229begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
     1230relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
     1231begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
     1232},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
     1233begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
     1234relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
     1235className:"number",
     1236begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
     1237},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,{
     1238className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,
     1239scope:"char.escape",relevance:0}]},a],c=[...l]
     1240;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
     1241aliases:["yml"],contains:l}}});const Pe=ne;for(const e of Object.keys(Ue)){
     1242const n=e.replace("grmr_","").replace("_","-");Pe.registerLanguage(n,Ue[e])}
     1243return Pe}()
     1244;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
  • ai-tool-center/tags/1.2.0/public/partials/aitoce-public-nimbot-display.php

    r3311710 r3311867  
    6868<style>
    6969    .aitoce-popup-chat-box {
    70         border-top-left-radius:
    71             <?php echo esc_attr($header_radius); ?>px;
    72         border-top-right-radius:
    73             <?php echo esc_attr($header_radius); ?>px;
    74         border-bottom-left-radius:
    75             <?php echo esc_attr($header_radius); ?>px;
    76         border-bottom-right-radius:
    77             <?php echo esc_attr($header_radius); ?>px;
     70        border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     71        border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
     72        border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     73        border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    7874    }
    7975
    8076    .aitoce-popup-chat-header {
    81         color:
    82             <?php echo esc_attr($header_text); ?>
    83         ;
    84         background-color:
    85             <?php echo esc_attr($header_background); ?>
    86         ;
    87         border-top-left-radius:
    88             <?php echo esc_attr($header_radius); ?>px;
    89         border-top-right-radius:
    90             <?php echo esc_attr($header_radius); ?>px;
     77        color: <?php echo esc_attr($header_text); ?>;
     78        background-color: <?php echo esc_attr($header_background); ?>;
     79        border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     80        border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
    9181    }
    9282
    9383    .aitoce-popup-chat-input-area {
    94         background-color:
    95             <?php echo esc_attr($header_background); ?>
    96         ;
    97         border-bottom-left-radius:
    98             <?php echo esc_attr($header_radius); ?>px;
    99         border-bottom-right-radius:
    100             <?php echo esc_attr($header_radius); ?>px;
     84        background-color: <?php echo esc_attr($header_background); ?>;
     85        border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     86        border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    10187    }
    10288
    10389    .aitoce-popup-chat-messages {
    104         height:
    105             <?php echo esc_attr($message_height); ?>px;
    106         max-height:
    107             <?php echo esc_attr($message_height); ?>px;
    108         background-color:
    109             <?php echo esc_attr($message_background); ?>
    110         ;
     90        height: <?php echo esc_attr($message_height); ?>px;
     91        max-height: <?php echo esc_attr($message_height); ?>px;
     92        background-color: <?php echo esc_attr($message_background); ?>;
    11193    }
    11294
    11395    .aitoce-popup-chat-input {
    114         color:
    115             <?php echo esc_attr($input_text); ?>
    116         ;
    117         background-color:
    118             <?php echo esc_attr($input_background); ?>
    119         ;
    120         border-radius:
    121             <?php echo esc_attr($input_radius); ?>px;
     96        color: <?php echo esc_attr($input_text); ?>;
     97        background-color: <?php echo esc_attr($input_background); ?>;
     98        border-radius: <?php echo esc_attr($input_radius); ?>px;
    12299    }
    123100
    124101    .aitoce-popup-user-message {
    125         color:
    126             <?php echo esc_attr($client_message_text); ?>
    127         ;
    128         background-color:
    129             <?php echo esc_attr($client_message_background); ?>
    130         ;
    131         border-radius:
    132             <?php echo esc_attr($client_message_radius); ?>px;
     102        color: <?php echo esc_attr($client_message_text); ?>;
     103        background-color: <?php echo esc_attr($client_message_background); ?>;
     104        border-radius: <?php echo esc_attr($client_message_radius); ?>px;
    133105    }
    134106
    135107    .aitoce-popup-bot-message {
    136         color:
    137             <?php echo esc_attr($nimbot_reply_text); ?>
    138         ;
    139         background-color:
    140             <?php echo esc_attr($nimbot_reply_background); ?>
    141         ;
    142         border-radius:
    143             <?php echo esc_attr($nimbot_reply_radius); ?>px;
     108        color: <?php echo esc_attr($nimbot_reply_text); ?>;
     109        background-color: <?php echo esc_attr($nimbot_reply_background); ?>;
     110        border-radius: <?php echo esc_attr($nimbot_reply_radius); ?>px;
    144111    }
    145112
    146113    .aitoce-popup-send-btn {
    147         color:
    148             <?php echo esc_attr($send_button_text); ?>
    149         ;
    150         background-color:
    151             <?php echo esc_attr($send_button_background); ?>
    152         ;
    153         border-radius:
    154             <?php echo esc_attr($send_button_radius); ?>px;
     114        color: <?php echo esc_attr($send_button_text); ?>;
     115        background-color: <?php echo esc_attr($send_button_background); ?>;
     116        border-radius: <?php echo esc_attr($send_button_radius); ?>px;
    155117    }
    156118
    157119    .aitoce-popup-send-btn:hover {
    158         color:
    159             <?php echo esc_attr($send_button_text_hover); ?>
    160         ;
    161         background-color:
    162             <?php echo esc_attr($send_button_background_hover); ?>
    163         ;
     120        color: <?php echo esc_attr($send_button_text_hover); ?>;
     121        background-color: <?php echo esc_attr($send_button_background_hover); ?>;
    164122    }
    165123</style>
     
    179137        <div id="aitoce-chat-input-area" class="aitoce-popup-chat-input-area">
    180138            <textarea id="aitoce-popup-input" class="aitoce-popup-chat-input" rows="2"
    181                 placeholder="Type a message..."></textarea>
     139                placeholder="Type a message..." aria-label="Popup Message Input"></textarea>
    182140            <div id="aitoce-popup-send-btn" class="aitoce-popup-send-btn">Send</div>
    183141        </div>
  • ai-tool-center/trunk/includes/class-aitoce-shortcodes.php

    r3311216 r3311867  
    7272        ob_start();
    7373        ?>
     74       
    7475        <style>
    7576            .aitoce-page-chat-box {
    76                 border-top-left-radius:
    77                     <?php echo esc_attr($header_radius); ?>
    78                     px;
    79                 border-top-right-radius:
    80                     <?php echo esc_attr($header_radius); ?>
    81                     px;
    82                 border-bottom-left-radius:
    83                     <?php echo esc_attr($header_radius); ?>
    84                     px;
    85                 border-bottom-right-radius:
    86                     <?php echo esc_attr($header_radius); ?>
    87                     px;
     77                border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     78                border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
     79                border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     80                border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    8881            }
    8982
    9083            .aitoce-page-chat-header {
    91                 color:
    92                     <?php echo esc_attr($header_text); ?>
    93                 ;
    94                 background-color:
    95                     <?php echo esc_attr($header_background); ?>
    96                 ;
    97                 border-top-left-radius:
    98                     <?php echo esc_attr($header_radius); ?>
    99                     px;
    100                 border-top-right-radius:
    101                     <?php echo esc_attr($header_radius); ?>
    102                     px;
     84                color: <?php echo esc_attr($header_text); ?>;
     85                background-color: <?php echo esc_attr($header_background); ?>;
     86                border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     87                border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
    10388            }
    10489
    10590            .aitoce-page-chat-input-area {
    106                 background-color:
    107                     <?php echo esc_attr($header_background); ?>
    108                 ;
    109                 border-bottom-left-radius:
    110                     <?php echo esc_attr($header_radius); ?>
    111                     px;
    112                 border-bottom-right-radius:
    113                     <?php echo esc_attr($header_radius); ?>
    114                     px;
     91                background-color: <?php echo esc_attr($header_background); ?>;
     92                border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     93                border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    11594            }
    11695
    11796            .aitoce-page-chat-messages {
    118                 height:
    119                     <?php echo esc_attr($message_height); ?>
    120                     px;
    121                 max-height:
    122                     <?php echo esc_attr($message_height); ?>
    123                     px;
    124                 background-color:
    125                     <?php echo esc_attr($message_background); ?>
    126                 ;
     97                height: <?php echo esc_attr($message_height); ?>px;
     98                max-height: <?php echo esc_attr($message_height); ?>px;
     99                background-color: <?php echo esc_attr($message_background); ?>;
    127100            }
    128101
    129102            .aitoce-page-chat-input {
    130                 color:
    131                     <?php echo esc_attr($input_text); ?>
    132                 ;
    133                 background-color:
    134                     <?php echo esc_attr($input_background); ?>
    135                 ;
    136                 border-radius:
    137                     <?php echo esc_attr($input_radius); ?>
    138                     px;
     103                color: <?php echo esc_attr($input_text); ?>;
     104                background-color: <?php echo esc_attr($input_background); ?>;
     105                border-radius: <?php echo esc_attr($input_radius); ?>px;
    139106            }
    140107
    141108            .aitoce-page-user-message {
    142                 color:
    143                     <?php echo esc_attr($client_message_text); ?>
    144                 ;
    145                 background-color:
    146                     <?php echo esc_attr($client_message_background); ?>
    147                 ;
    148                 border-radius:
    149                     <?php echo esc_attr($client_message_radius); ?>
    150                     px;
     109                color: <?php echo esc_attr($client_message_text); ?>;
     110                background-color: <?php echo esc_attr($client_message_background); ?>;
     111                border-radius: <?php echo esc_attr($client_message_radius); ?>px;
    151112            }
    152113
    153114            .aitoce-page-bot-message {
    154                 color:
    155                     <?php echo esc_attr($nimbot_reply_text); ?>
    156                 ;
    157                 background-color:
    158                     <?php echo esc_attr($nimbot_reply_background); ?>
    159                 ;
    160                 border-radius:
    161                     <?php echo esc_attr($nimbot_reply_radius); ?>
    162                     px;
     115                color: <?php echo esc_attr($nimbot_reply_text); ?>;
     116                background-color: <?php echo esc_attr($nimbot_reply_background); ?>;
     117                border-radius: <?php echo esc_attr($nimbot_reply_radius); ?>px;
    163118            }
    164119
    165120            .aitoce-page-send-btn {
    166                 color:
    167                     <?php echo esc_attr($send_button_text); ?>
    168                 ;
    169                 background-color:
    170                     <?php echo esc_attr($send_button_background); ?>
    171                 ;
    172                 border-radius:
    173                     <?php echo esc_attr($send_button_radius); ?>
    174                     px;
     121                color: <?php echo esc_attr($send_button_text); ?>;
     122                background-color: <?php echo esc_attr($send_button_background); ?>;
     123                border-radius: <?php echo esc_attr($send_button_radius); ?>px;
    175124            }
    176125
    177126            .aitoce-page-send-btn:hover {
    178                 color:
    179                     <?php echo esc_attr($send_button_text_hover); ?>
    180                 ;
    181                 background-color:
    182                     <?php echo esc_attr($send_button_background_hover); ?>
    183                 ;
     127                color: <?php echo esc_attr($send_button_text_hover); ?>;
     128                background-color: <?php echo esc_attr($send_button_background_hover); ?>;
    184129            }
    185130        </style>
     
    199144                <div id="aitoce-chat-input-area" class="aitoce-page-chat-input-area">
    200145                    <textarea id="aitoce-page-input" class="aitoce-page-chat-input" rows="3"
    201                         placeholder="<?php esc_html_e('Type a message...', 'ai-tool-center'); ?>"></textarea>
     146                        placeholder="<?php esc_html_e('Type a message...', 'ai-tool-center'); ?>" aria-label="Page Message Input"></textarea>
    202147                    <div id="aitoce-page-send-btn" class="aitoce-page-send-btn"><?php esc_html_e('Send', 'ai-tool-center'); ?>
    203148                    </div>
  • ai-tool-center/trunk/public/css/aitoce-nimbot-googlecode.css

    r3300306 r3311867  
    1212Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less
    1313*/
     14#aitoce-page-bot-message pre {
     15    padding: 5px;
     16    border-radius: 5px;
     17}
     18
    1419pre code.hljs {
    1520    display: block;
    1621    overflow-x: auto;
    17     padding: 0.6em;
     22    padding: 5px;
     23    border-radius: 5px;
    1824}
    1925
  • ai-tool-center/trunk/public/js/aitoce-public-nimbot-highlight.js

    r3300306 r3311867  
    44  License: BSD-3-Clause
    55 */
    6   var hljs=function(){"use strict";function e(n){
    7     return n instanceof Map?n.clear=n.delete=n.set=()=>{
    8     throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
    9     throw Error("set is read-only")
    10     }),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
    11     const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
    12     })),n}class n{constructor(e){
    13     void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    14     ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
    15     return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    16     }function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
    17     ;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope
    18     ;class r{constructor(e,n){
    19     this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
    20     this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
    21     if(e.startsWith("language:"))return e.replace("language:","language-")
    22     ;if(e.includes(".")){const t=e.split(".")
    23     ;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
    24     }return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
    25     closeNode(e){i(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    26     this.buffer+=`<span class="${e}">`}}const s=(e={})=>{const n={children:[]}
    27     ;return Object.assign(n,e),n};class o{constructor(){
    28     this.rootNode=s(),this.stack=[this.rootNode]}get top(){
    29     return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    30     this.top.children.push(e)}openNode(e){const n=s({scope:e})
    31     ;this.add(n),this.stack.push(n)}closeNode(){
    32     if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    33     for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    34     walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
    35     return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
    36     n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
    37     "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    38     o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
    39     addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
    40     this.closeNode()}__addSublanguage(e,n){const t=e.root
    41     ;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
    42     return new r(this,this.options).value()}finalize(){
    43     return this.closeAllNodes(),!0}}function c(e){
    44     return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
    45     function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
    46     function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
    47     const n=e[e.length-1]
    48     ;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
    49     })(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
    50     function p(e){return RegExp(e.toString()+"|").exec("").length-1}
    51     const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
    52     ;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
    53     ;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
    54     i+=a.substring(0,e.index),
    55     a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
    56     "("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
    57     const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",N={
    58     begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'",
    59     illegal:"\\n",contains:[N]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",
    60     contains:[N]},O=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
    61     contains:[]},t);i.contains.push({scope:"doctag",
    62     begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
    63     end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
    64     ;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
    65     ;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
    66     },M=O("//","$"),A=O("/\\*","\\*/"),S=O("#","$");var C=Object.freeze({
    67     __proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{
    68     scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:O,
    69     C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
    70     begin:w,relevance:0},C_NUMBER_RE:w,END_SAME_AS_BEGIN:e=>Object.assign(e,{
    71     "on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
    72     n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:f,
    73     MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
    74     NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
    75     PHRASAL_WORDS_MODE:{
    76     begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    77     },QUOTE_STRING_MODE:x,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
    78     end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},
    79     RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    80     SHEBANG:(e={})=>{const n=/^#![ ]*\//
    81     ;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
    82     end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
    83     TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
    84     UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
    85     "."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
    86     void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
    87     n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    88     e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    89     void 0===e.relevance&&(e.relevance=0))}function I(e,n){
    90     Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
    91     if(e.match){
    92     if(e.begin||e.end)throw Error("begin & end are not supported with match")
    93     ;e.begin=e.match,delete e.match}}function B(e,n){
    94     void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
    95     ;if(e.starts)throw Error("beforeMatch cannot be used with starts")
    96     ;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
    97     })),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
    98     relevance:0,contains:[Object.assign(t,{endsParent:!0})]
    99     },e.relevance=0,delete t.beforeMatch
    100     },F=["of","and","for","in","not","or","if","then","parent","list","value"]
    101     ;function z(e,n,t="keyword"){const a=Object.create(null)
    102     ;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
    103     Object.assign(a,z(e[t],n,t))})),a;function i(e,t){
    104     n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
    105     ;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
    106     return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const U={},P=e=>{
    107     console.error(e)},K=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
    108     U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0)
    109     },H=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
    110     ;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
    111     ;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function Z(e){(e=>{
    112     e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
    113     delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
    114     _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
    115     }),(e=>{if(Array.isArray(e.begin)){
    116     if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
    117     H
    118     ;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"),
    119     H;G(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
    120     if(Array.isArray(e.end)){
    121     if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
    122     H
    123     ;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"),
    124     H;G(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function W(e){
    125     function n(n,t){
    126     return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
    127     }class t{constructor(){
    128     this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    129     addRule(e,n){
    130     n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
    131     this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
    132     ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
    133     }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
    134     ;const n=this.matcherRe.exec(e);if(!n)return null
    135     ;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
    136     ;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
    137     this.rules=[],this.multiRegexes=[],
    138     this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    139     if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
    140     ;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
    141     n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
    142     return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
    143     this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
    144     const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
    145     ;let t=n.exec(e)
    146     ;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
    147     const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
    148     return t&&(this.regexIndex+=t.position+1,
    149     this.regexIndex===this.count&&this.considerAll()),t}}
    150     if(e.compilerExtensions||(e.compilerExtensions=[]),
    151     e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    152     ;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
    153     ;if(r.isCompiled)return o
    154     ;[R,L,Z,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
    155     r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
    156     ;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
    157     l=r.keywords.$pattern,
    158     delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=z(r.keywords,e.case_insensitive)),
    159     o.keywordPatternRe=n(l,!0),
    160     s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
    161     r.end&&(o.endRe=n(o.end)),
    162     o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
    163     r.illegal&&(o.illegalRe=n(r.illegal)),
    164     r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
    165     variants:null},n)))),e.cachedVariants?e.cachedVariants:Q(e)?a(e,{
    166     starts:e.starts?a(e.starts):null
    167     }):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
    168     })),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
    169     ;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
    170     }))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
    171     }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function Q(e){
    172     return!!e&&(e.endsWithParent||Q(e.starts))}class X extends Error{
    173     constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
    174     const V=t,J=a,Y=Symbol("nomatch"),ee=t=>{
    175     const a=Object.create(null),i=Object.create(null),r=[];let s=!0
    176     ;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
    177     disableAutodetect:!0,name:"Plain text",contains:[]};let p={
    178     ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
    179     languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    180     cssSelector:"div.aitoce-bot-message pre code",languages:null,__emitter:l};function _(e){
    181     return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
    182     ;"object"==typeof n?(a=e,
    183     t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    184     q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    185     i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};O("before:highlight",r)
    186     ;const s=r.result?r.result:f(r.language,r.code,t)
    187     ;return s.code=r.code,O("after:highlight",s),s}function f(e,t,i,r){
    188     const l=Object.create(null);function c(){if(!O.keywords)return void A.addText(S)
    189     ;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t=""
    190     ;for(;n;){t+=S.substring(e,n.index)
    191     ;const i=v.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){
    192     const[e,a]=r
    193     ;if(A.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
    194     const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
    195     ;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a
    196     ;t+=S.substring(e),A.addText(t)}function d(){null!=O.subLanguage?(()=>{
    197     if(""===S)return;let e=null;if("string"==typeof O.subLanguage){
    198     if(!a[O.subLanguage])return void A.addText(S)
    199     ;e=f(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top
    200     }else e=E(S,O.subLanguage.length?O.subLanguage:null)
    201     ;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language)
    202     })():c(),S=""}function g(e,n){
    203     ""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1
    204     ;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
    205     const a=v.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(S=i,c(),S=""),t++}}
    206     function b(e,n){
    207     return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),
    208     e.beginScope&&(e.beginScope._wrap?(g(S,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
    209     S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{
    210     value:O}}),O}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
    211     ;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
    212     ;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
    213     for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    214     if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
    215     return 0===O.matcher.regexIndex?(S+=e[0],1):(D=!0,0)}function h(e){
    216     const n=e[0],a=t.substring(e.index),i=m(O,e,a);if(!i)return Y;const r=O
    217     ;O.endScope&&O.endScope._wrap?(d(),
    218     g(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(),
    219     u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n),
    220     d(),r.excludeEnd&&(S=n));do{
    221     O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent
    222     }while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
    223     let y={};function w(a,r){const o=r&&r[0];if(S+=a,null==o)return d(),0
    224     ;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
    225     if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
    226     ;throw n.languageName=e,n.badRule=y.rule,n}return 1}
    227     if(y=r,"begin"===r.type)return(e=>{
    228     const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
    229     ;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
    230     ;return a.skip?S+=t:(a.excludeBegin&&(S+=t),
    231     d(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r)
    232     ;if("illegal"===r.type&&!i){
    233     const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"<unnamed>")+'"')
    234     ;throw e.mode=O,e}if("end"===r.type){const e=h(r);if(e!==Y)return e}
    235     if("illegal"===r.type&&""===o)return S+="\n",1
    236     ;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
    237     ;return S+=o,o.length}const v=N(e)
    238     ;if(!v)throw P(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    239     ;const k=W(v);let x="",O=r||k;const M={},A=new p.__emitter(p);(()=>{const e=[]
    240     ;for(let n=O;n!==v;n=n.parent)n.scope&&e.unshift(n.scope)
    241     ;e.forEach((e=>A.openNode(e)))})();let S="",C=0,T=0,R=0,D=!1;try{
    242     if(v.__emitTokens)v.__emitTokens(t,A);else{for(O.matcher.considerAll();;){
    243     R++,D?D=!1:O.matcher.considerAll(),O.matcher.lastIndex=T
    244     ;const e=O.matcher.exec(t);if(!e)break;const n=w(t.substring(T,e.index),e)
    245     ;T=e.index+n}w(t.substring(T))}return A.finalize(),x=A.toHTML(),{language:e,
    246     value:x,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){
    247     if(n.message&&n.message.includes("Illegal"))return{language:e,value:V(t),
    248     illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
    249     context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:x},_emitter:A};if(s)return{
    250     language:e,value:V(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O}
    251     ;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
    252     const n={value:V(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
    253     ;return n._emitter.addText(e),n})(e),i=n.filter(N).filter(x).map((n=>f(n,e,!1)))
    254     ;i.unshift(t);const r=i.sort(((e,n)=>{
    255     if(e.relevance!==n.relevance)return n.relevance-e.relevance
    256     ;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1
    257     ;if(N(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
    258     ;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
    259     let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
    260     ;const t=p.languageDetectRe.exec(n);if(t){const n=N(t[1])
    261     ;return n||(K(o.replace("{}",t[1])),
    262     K("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
    263     return n.split(/\s+/).find((e=>_(e)||N(e)))})(e);if(_(t))return
    264     ;if(O("before:highlightElement",{el:e,language:t
    265     }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
    266     ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
    267     console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
    268     console.warn("The element with unescaped HTML:"),
    269     console.warn(e)),p.throwUnescapedHTML))throw new X("One of your code blocks includes unescaped HTML.",e.innerHTML)
    270     ;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
    271     ;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
    272     ;e.classList.add("hljs"),e.classList.add("language-"+a)
    273     })(e,t,r.language),e.result={language:r.language,re:r.relevance,
    274     relevance:r.relevance},r.secondBest&&(e.secondBest={
    275     language:r.secondBest.language,relevance:r.secondBest.relevance
    276     }),O("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function v(){
    277     if("loading"===document.readyState)return w||window.addEventListener("DOMContentLoaded",(()=>{
    278     v()}),!1),void(w=!0);document.querySelectorAll(p.cssSelector).forEach(y)}
    279     function N(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
    280     function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    281     i[e.toLowerCase()]=n}))}function x(e){const n=N(e)
    282     ;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{
    283     e[t]&&e[t](n)}))}Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:v,
    284     highlightElement:y,
    285     highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
    286     q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=J(p,e)},
    287     initHighlighting:()=>{
    288     v(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
    289     initHighlightingOnLoad:()=>{
    290     v(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
    291     },registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
    292     if(P("Language definition for '{}' could not be registered.".replace("{}",e)),
    293     !s)throw n;P(n),i=c}
    294     i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&k(i.aliases,{
    295     languageName:e})},unregisterLanguage:e=>{delete a[e]
    296     ;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
    297     listLanguages:()=>Object.keys(a),getLanguage:N,registerAliases:k,
    298     autoDetection:x,inherit:J,addPlugin:e=>{(e=>{
    299     e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
    300     e["before:highlightBlock"](Object.assign({block:n.el},n))
    301     }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
    302     e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
    303     removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
    304     s=!1},t.safeMode=()=>{s=!0},t.versionString="11.11.1",t.regex={concat:b,
    305     lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
    306     ;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
    307     },ne=ee({});ne.newInstance=()=>ee({});const te=e=>({IMPORTANT:{scope:"meta",
    308     begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
    309     scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
    310     FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
    311     ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
    312     contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
    313     scope:"number",
    314     begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    315     relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
    316     }),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),oe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),le=re.concat(se).sort().reverse()
    317     ;var ce="[0-9](_*[0-9])*",de=`\\.(${ce})`,ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ue={
    318     className:"number",variants:[{
    319     begin:`(\\b(${ce})((${de})|\\.)?|(${de}))[eE][+-]?(${ce})[fFdD]?\\b`},{
    320     begin:`\\b(${ce})((${de})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    321     begin:`(${de})[fFdD]?\\b`},{begin:`\\b(${ce})[fFdD]\\b`},{
    322     begin:`\\b0[xX]((${ge})\\.?|(${ge})?\\.(${ge}))[pP][+-]?(${ce})[fFdD]?\\b`},{
    323     begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ge})[lL]?\\b`},{
    324     begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    325     relevance:0};function be(e,n,t){return-1===t?"":e.replace(n,(a=>be(e,n,t-1)))}
    326     const me="[A-Za-z$_][0-9A-Za-z$_]*",pe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],_e=["true","false","null","undefined","NaN","Infinity"],he=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],fe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ee=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ye=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],we=[].concat(Ee,he,fe)
    327     ;function ve(e){const n=e.regex,t=me,a={begin:/<[A-Za-z0-9\\._:-]+/,
    328     end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    329     const t=e[0].length+e.index,a=e.input[t]
    330     ;if("<"===a||","===a)return void n.ignoreMatch();let i
    331     ;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
    332     ;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
    333     ;const r=e.input.substring(t)
    334     ;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
    335     }},i={$pattern:me,keyword:pe,literal:_e,built_in:we,"variable.language":ye
    336     },r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
    337     className:"number",variants:[{
    338     begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
    339     begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
    340     begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    341     begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    342     begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    343     begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
    344     end:"\\}",keywords:i,contains:[]},d={begin:".?html`",end:"",starts:{end:"`",
    345     returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
    346     begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
    347     contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:".?gql`",end:"",
    348     starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
    349     subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
    350     contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
    351     variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    352     begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
    353     begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
    354     excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
    355     endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    356     }),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
    357     },p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
    358     ;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
    359     });const _=[].concat(m,c.contains),h=_.concat([{begin:/(\s*)\(/,end:/\)/,
    360     keywords:i,contains:["self"].concat(_)}]),f={className:"params",begin:/(\s*)\(/,
    361     end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
    362     match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
    363     scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
    364     match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
    365     match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
    366     className:"title.class",keywords:{_:[...he,...fe]}},w={variants:[{
    367     match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
    368     className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
    369     illegal:/%/},v={
    370     match:n.concat(/\b/,(N=[...Ee,"super","import"].map((e=>e+"\\s*\\(")),
    371     n.concat("(?!",N.join("|"),")")),t,n.lookahead(/\s*\(/)),
    372     className:"title.function",relevance:0};var N;const k={
    373     begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
    374     excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},x={
    375     match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
    376     contains:[{begin:/\(\)/},f]
    377     },O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
    378     match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)],
    379     keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
    380     ;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
    381     PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
    382     contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
    383     label:"use_strict",className:"meta",relevance:10,
    384     begin:/^\s*['"]use (strict|asm)['"]/
    385     },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
    386     scope:"attr",match:t+n.lookahead(":"),relevance:0},M,{
    387     begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    388     keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
    389     className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{
    390     className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
    391     className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
    392     excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0
    393     },{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
    394     match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
    395     "on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
    396     begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},w,{
    397     beginKeywords:"while if switch catch for"},{
    398     begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    399     returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
    400     className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+t,
    401     relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
    402     contains:[f]},v,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
    403     className:"variable.constant"},E,x,{match:/\$[(.]/}]}}
    404     const Ne=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ke=["Protocol","Type"].map(Ne),xe=["init","self"].map(Ne),Oe=["Any","Self"],Me=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ae=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ce=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Te=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Re=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),De=m(Re,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Ie=b(Re,De,"*"),Le=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Be=m(Le,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),$e=b(Le,Be,"*"),Fe=b(/[A-Z]/,Be,"*"),ze=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,$e,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],je=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    405     ;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
    406     begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
    407     ;Object.assign(t,{className:"variable",variants:[{
    408     begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
    409     className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]
    410     },r=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={
    411     begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
    412     end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,
    413     contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(o);const l={begin:/\$?\(\(/,
    414     end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
    415     },c=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    416     }),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    417     contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    418     name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
    419     keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],
    420     literal:["true","false"],
    421     built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
    422     },contains:[c,e.SHEBANG(),d,l,r,s,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{
    423     className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_c:e=>{
    424     const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    425     }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
    426     className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
    427     match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
    428     begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
    429     begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    430     end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
    431     begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
    432     className:"number",variants:[{match:/\b(0b[01']+)/},{
    433     match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/
    434     },{
    435     match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/
    436     },{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0
    437     },c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    438     keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"
    439     },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
    440     className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
    441     className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
    442     },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
    443     keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
    444     type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],
    445     literal:"true false NULL",
    446     built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
    447     },b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
    448     begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
    449     keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
    450     contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
    451     begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
    452     keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
    453     begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
    454     relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
    455     keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
    456     end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
    457     }]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    458     disableAutodetect:!0,illegal:"</",contains:[].concat(m,p,b,[c,{
    459     begin:e.IDENT_RE+"::",keywords:u},{className:"class",
    460     beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
    461     beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
    462     strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
    463     contains:[{begin:/\\\n/}]
    464     }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
    465     className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
    466     begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
    467     begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    468     end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
    469     begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
    470     className:"number",variants:[{
    471     begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"
    472     },{
    473     begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"
    474     }],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    475     keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    476     },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
    477     className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
    478     className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
    479     },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
    480     type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
    481     keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
    482     literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
    483     _type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
    484     },b={className:"function.dispatch",relevance:0,keywords:{
    485     _hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
    486     },
    487     begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
    488     },m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
    489     begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
    490     keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
    491     contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
    492     begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
    493     keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
    494     begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
    495     begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
    496     className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
    497     contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
    498     relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
    499     },s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
    500     aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",
    501     classNameAliases:{"function.dispatch":"built_in"},
    502     contains:[].concat(p,_,b,m,[c,{
    503     begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",
    504     end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
    505     match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
    506     className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
    507     keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    508     built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    509     literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
    510     begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
    511     begin:"\\b(0b[01']+)"},{
    512     begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    513     begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    514     }],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    515     },r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
    516     keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
    517     end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    518     },e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
    519     begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
    520     contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
    521     ;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
    522     o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    523     illegal:/\n/})];const g={variants:[{className:"string",
    524     begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1
    525     },c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",
    526     contains:[{beginKeywords:"in out"},t]
    527     },b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
    528     begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    529     keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    530     contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    531     begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    532     }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    533     end:"$",keywords:{
    534     keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
    535     }},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    536     illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    537     },t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    538     relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    539     contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    540     beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    541     contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    542     begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    543     className:"string",begin:/"/,end:/"/}]},{
    544     beginKeywords:"new return throw await else",relevance:0},{className:"function",
    545     begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
    546     end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    547     beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    548     relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
    549     contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
    550     begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    551     contains:[g,a,e.C_BLOCK_COMMENT_MODE]
    552     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
    553     const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
    554     name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
    555     keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
    556     contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    557     },t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    558     },{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    559     },t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    560     begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}]
    561     },t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{
    562     begin:/:/,end:/[;}{]/,
    563     contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
    564     begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    565     },contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
    566     excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
    567     relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
    568     },{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
    569     $pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{
    570     begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
    571     className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{
    572     const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
    573     className:"meta",relevance:10,
    574     match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
    575     },{className:"comment",variants:[{
    576     begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
    577     end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    578     className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    579     end:/$/}]}},grmr_go:e=>{const n={
    580     keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
    581     type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
    582     literal:["true","false","iota","nil"],
    583     built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
    584     };return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    585     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    586     variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    587     className:"number",variants:[{
    588     match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0
    589     },{
    590     match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,
    591     relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{
    592     match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{
    593     match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{
    594     begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",
    595     excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,
    596     endsParent:!0,keywords:n,illegal:/["']/}]}]}},grmr_graphql:e=>{const n=e.regex
    597     ;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,
    598     keywords:{
    599     keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
    600     literal:["true","false","null"]},
    601     contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
    602     scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
    603     begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
    604     end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
    605     scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
    606     relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
    607     className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
    608     begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
    609     end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
    610     begin:/\$\{(.*?)\}/}]},r={className:"literal",
    611     begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
    612     contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
    613     begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
    614     },o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
    615     },l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
    616     name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    617     contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
    618     begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
    619     className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
    620     const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+be("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
    621     keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],
    622     literal:["false","true","null"],
    623     type:["char","boolean","long","float","int","byte","short","double"],
    624     built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
    625     begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
    626     end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
    627     ;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
    628     contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    629     relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    630     begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    631     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
    632     className:"string",contains:[e.BACKSLASH_ESCAPE]
    633     },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    634     match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
    635     1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
    636     begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
    637     3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
    638     3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    639     beginKeywords:"new throw return else",relevance:0},{
    640     begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
    641     2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
    642     end:/\)/,keywords:i,relevance:0,
    643     contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ue,e.C_BLOCK_COMMENT_MODE]
    644     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ue,r]}},grmr_javascript:ve,
    645     grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
    646     beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{
    647     literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
    648     relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
    649     },e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
    650     illegal:"\\S"}},grmr_kotlin:e=>{const n={
    651     keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    652     built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    653     literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    654     },a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
    655     className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    656     variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
    657     illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    658     contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
    659     className:"meta",
    660     begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    661     },o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    662     end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
    663     },l=ue,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
    664     variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    665     contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
    666     {name:"Kotlin",aliases:["kt","kts"],keywords:n,
    667     contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    668     begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
    669     begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    670     begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
    671     returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    672     begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    673     contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    674     keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    675     endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    676     endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
    677     },e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
    678     begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
    679     3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    680     illegal:"extends implements",contains:[{
    681     beginKeywords:"public protected internal private constructor"
    682     },e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    683     excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
    684     excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
    685     end:"$",illegal:"\n"},l]}},grmr_less:e=>{
    686     const n=te(e),t=le,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
    687     className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
    688     relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
    689     attribute:ie.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
    690     relevance:0}
    691     ;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
    692     begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    693     excludeEnd:!0}
    694     },n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
    695     className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    696     },n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
    697     begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
    698     contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
    699     returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
    700     },n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b",
    701     end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
    702     },m={className:"keyword",
    703     begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    704     starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
    705     className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
    706     }],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
    707     begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
    708     returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    709     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
    710     begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag"
    711     },n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
    712     className:"selector-pseudo",begin:":("+re.join("|")+")"},{
    713     className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/,
    714     end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
    715     begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
    716     ;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
    717     {name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
    718     grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
    719     },i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
    720     })];return{name:"Lua",aliases:["pluto"],keywords:{
    721     $pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",
    722     keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    723     built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    724     },contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
    725     contains:[e.inherit(e.TITLE_MODE,{
    726     begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    727     begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
    728     },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    729     begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
    730     className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    731     contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
    732     begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
    733     begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    734     built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    735     },contains:[n,t]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    736     className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
    737     name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    738     keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    739     },contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
    740     end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_markdown:e=>{
    741     const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={
    742     variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
    743     begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    744     relevance:2},{
    745     begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    746     relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    747     begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
    748     },{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    749     returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    750     excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    751     end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
    752     variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]
    753     },i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{
    754     begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
    755     }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
    756     ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
    757     })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    758     className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
    759     begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    760     contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    761     end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
    762     end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    763     begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    764     begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    765     contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    766     begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    767     className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    768     className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal",
    769     match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}},
    770     grmr_objectivec:e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
    771     keyword:["@interface","@class","@protocol","@implementation"]};return{
    772     name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    773     keywords:{"variable.language":["this","super"],$pattern:n,
    774     keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],
    775     literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
    776     built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
    777     type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
    778     },illegal:"</",contains:[{className:"built_in",
    779     begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    780     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    781     className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    782     contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    783     keywords:{
    784     keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
    785     },contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    786     className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
    787     },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
    788     begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
    789     contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
    790     relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
    791     $pattern:/[\w.]+/,
    792     keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot class close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl field fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    793     },i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
    794     end:/\}/},s={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},o={scope:"variable",
    795     variants:[{begin:/\$\d/},{
    796     begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    797     },{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={
    798     className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{
    799     match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{
    800     match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{
    801     match:/\b0b[0-1][0-1_]*\b/}],relevance:0
    802     },c=[e.BACKSLASH_ESCAPE,i,o],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,a,i="\\1")=>{
    803     const r="\\1"===i?i:n.concat(i,a)
    804     ;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
    805     },u=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),b=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    806     endsWithParent:!0}),r,{className:"string",contains:c,variants:[{
    807     begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    808     end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    809     begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    810     relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    811     contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    812     contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    813     begin:"-?\\w+\\s*=>",relevance:0}]},l,{
    814     begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    815     keywords:"split return print reverse grep",relevance:0,
    816     contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    817     begin:g("s|tr|y",n.either(...d,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{
    818     begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{
    819     className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    820     begin:u("(?:m|qr)?",/\//,/\//)},{begin:u("m|qr",n.either(...d,{capture:!0
    821     }),/\1/)},{begin:u("m|qr",/\(/,/\)/)},{begin:u("m|qr",/\[/,/\]/)},{
    822     begin:u("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",
    823     end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]
    824     },{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,
    825     contains:[e.TITLE_MODE,s,l]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",
    826     end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",
    827     className:"comment"}]}];return i.contains=b,r.contains=b,{name:"Perl",
    828     aliases:["pl","pm"],keywords:a,contains:b}},grmr_php:e=>{
    829     const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=n.concat(/[A-Z]+/,t),s={
    830     scope:"variable",match:"\\$+"+a},o={scope:"subst",variants:[{begin:/\$\w+/},{
    831     begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null
    832     }),c="[ \t\n]",d={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
    833     illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),l,{
    834     begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,
    835     contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,n)=>{
    836     n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{
    837     n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({
    838     begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},g={scope:"number",variants:[{
    839     begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
    840     begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
    841     begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
    842     }],relevance:0
    843     },u=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={
    844     keyword:b,literal:(e=>{const n=[];return e.forEach((e=>{
    845     n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
    846     })),n})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{
    847     match:[/new/,n.concat(c,"+"),n.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{
    848     1:"keyword",4:"title.class"}}]},f=n.concat(a,"\\b(?!\\()"),E={variants:[{
    849     match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant"
    850     }},{match:[/::/,/class/],scope:{2:"variable.language"}},{
    851     match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{1:"title.class",
    852     3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
    853     scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
    854     3:"variable.language"}}]},y={scope:"attr",
    855     match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},w={relevance:0,
    856     begin:/\(/,end:/\)/,keywords:p,contains:[y,s,E,e.C_BLOCK_COMMENT_MODE,d,g,h]
    857     },v={relevance:0,
    858     match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(b).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),a,n.concat(c,"*"),n.lookahead(/(?=\()/)],
    859     scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(v)
    860     ;const N=[y,E,e.C_BLOCK_COMMENT_MODE,d,g,h],k={
    861     begin:n.concat(/#\[\s*\\?/,n.either(i,r)),beginScope:"meta",end:/]/,
    862     endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{
    863     begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},
    864     contains:["self",...N]},...N,{scope:"meta",variants:[{match:i},{match:r}]}]}
    865     ;return{case_insensitive:!1,keywords:p,
    866     contains:[k,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{
    867     contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
    868     keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
    869     contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
    870     begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
    871     begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},s,v,E,{
    872     match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},h,{
    873     scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
    874     excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
    875     },e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
    876     begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,
    877     contains:["self",k,s,E,e.C_BLOCK_COMMENT_MODE,d,g]}]},{scope:"class",variants:[{
    878     beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    879     illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    880     beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    881     beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    882     contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
    883     beginKeywords:"use",relevance:0,end:";",contains:[{
    884     match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,g]}
    885     },grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
    886     begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
    887     end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
    888     },e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
    889     skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
    890     contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
    891     aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
    892     const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
    893     $pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
    894     built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    895     literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    896     type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    897     },r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
    898     end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
    899     className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    900     begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    901     contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
    902     begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    903     contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
    904     begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    905     contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    906     end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
    907     relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    908     begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    909     end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    910     contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    911     contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    912     },c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
    913     className:"number",relevance:0,variants:[{
    914     begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
    915     begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
    916     begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
    917     },{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
    918     }]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
    919     contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
    920     className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
    921     end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
    922     contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
    923     name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
    924     illegal:/(<\/|\?)|=>/,contains:[r,u,{scope:"variable.language",match:/\bself\b/
    925     },{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"
    926     },l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",
    927     3:"title.function"},contains:[m]},{variants:[{
    928     match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
    929     scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
    930     className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
    931     grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
    932     starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
    933     begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
    934     const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
    935     ;return{name:"R",keywords:{$pattern:t,
    936     keyword:"function if in break next repeat else for while",
    937     literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    938     built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    939     },contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
    940     starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
    941     endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
    942     scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
    943     }]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
    944     }),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
    945     variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    946     }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    947     }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    948     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    949     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    950     }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    951     relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
    952     1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
    953     match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
    954     2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
    955     match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
    956     match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
    957     contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
    958     const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={
    959     "variable.constant":["__FILE__","__LINE__","__ENCODING__"],
    960     "variable.language":["self","super"],
    961     keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],
    962     built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],
    963     literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={
    964     begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]
    965     }),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    966     }),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,
    967     end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],
    968     variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{
    969     begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{
    970     begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,
    971     end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{
    972     begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
    973     begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    974     begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    975     begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    976     begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
    977     contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    978     contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
    979     relevance:0,variants:[{
    980     begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    981     begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    982     },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    983     begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    984     begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
    985     className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
    986     keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
    987     match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",
    988     4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{
    989     2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{
    990     1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
    991     className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{
    992     match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
    993     begin:e.IDENT_RE+"::"},{className:"symbol",
    994     begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    995     begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
    996     begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    997     className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
    998     relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
    999     keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
    1000     illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
    1001     begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
    1002     end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
    1003     ;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
    1004     },{className:"meta.prompt",
    1005     begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    1006     starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
    1007     aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
    1008     contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
    1009     grmr_rust:e=>{
    1010     const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),i=n.concat(t,e.IDENT_RE),r={
    1011     className:"title.function.invoke",relevance:0,
    1012     begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,n.lookahead(/\s*\(/))
    1013     },s="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
    1014     ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,
    1015     keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],
    1016     literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:"</",
    1017     contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    1018     }),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    1019     className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",
    1020     variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{
    1021     scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{
    1022     className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s
    1023     },{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{
    1024     begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{
    1025     begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{
    1026     className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",
    1027     begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{
    1028     begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",
    1029     4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",
    1030     3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",
    1031     3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],
    1032     className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
    1033     keyword:"Self",built_in:o,type:l}},{className:"punctuation",begin:"->"},r]}},
    1034     grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable",
    1035     begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
    1036     case_insensitive:!0,illegal:"[=/|']",
    1037     contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
    1038     className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    1039     className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    1040     },n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    1041     begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    1042     begin:":("+a.join("|")+")"},{className:"selector-pseudo",
    1043     begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
    1044     contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
    1045     begin:"\\b("+oe.join("|")+")\\b"},{
    1046     begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    1047     },{begin:/:/,end:/[;}{]/,relevance:0,
    1048     contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]
    1049     },{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
    1050     begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    1051     keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i,
    1052     className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    1053     },r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
    1054     },n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
    1055     aliases:["console","shellsession"],contains:[{className:"meta.prompt",
    1056     begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
    1057     subLanguage:"bash"}}]}),grmr_sql:e=>{
    1058     const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),s={
    1059     match:n.concat(/\b/,n.either(...i),/\s*\(/),relevance:0,keywords:{built_in:i}}
    1060     ;function o(e){
    1061     return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)}
    1062     const l={scope:"keyword",
    1063     match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]),
    1064     relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
    1065     $pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
    1066     ;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
    1067     })(r,{when:e=>e.length<3}),literal:["true","false","unknown"],
    1068     type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],
    1069     built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    1070     },contains:[{scope:"type",
    1071     match:o(["double precision","large object","with timezone","without timezone"])
    1072     },l,s,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{
    1073     begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    1074     match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{scope:"operator",
    1075     match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},
    1076     grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{
    1077     contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,m(...ke,...xe)],
    1078     className:{2:"keyword"}},r={match:b(/\./,m(...Me)),relevance:0
    1079     },s=Me.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
    1080     className:"keyword",
    1081     match:m(...Me.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...xe)}]},l={
    1082     $pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Ce),literal:Ae},c=[i,r,o],g=[{
    1083     match:b(/\./,m(...Te)),relevance:0},{className:"built_in",
    1084     match:b(/\b/,m(...Te),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{
    1085     className:"operator",relevance:0,variants:[{match:Ie},{match:`\\.(\\.|${De})+`}]
    1086     }],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,
    1087     variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{
    1088     match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/
    1089     },{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{
    1090     match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
    1091     }),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
    1092     }),w=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/
    1093     }),v=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),w(e)]
    1094     }),N=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),w(e)]}),k={
    1095     className:"string",
    1096     variants:[v(),v("#"),v("##"),v("###"),N(),N("#"),N("##"),N("###")]
    1097     },x=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,
    1098     contains:[e.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,
    1099     contains:x},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t,
    1100     contains:[...x,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},A={
    1101     scope:"regexp",variants:[M("###"),M("##"),M("#"),O]},S={match:b(/`/,$e,/`/)
    1102     },C=[S,{className:"variable",match:/\$\d+/},{className:"variable",
    1103     match:`\\$${Be}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{
    1104     contains:[{begin:/\(/,end:/\)/,keywords:je,contains:[...p,f,k]}]}},{
    1105     scope:"keyword",match:b(/@/,m(...ze),d(m(/\(/,/\s+/)))},{scope:"meta",
    1106     match:b(/@/,$e)}],R={match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type",
    1107     match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Be,"+")
    1108     },{className:"type",match:Fe,relevance:0},{match:/[?!]+/,relevance:0},{
    1109     match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Fe)),relevance:0}]},D={
    1110     begin:/</,end:/>/,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D)
    1111     ;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
    1112     match:b($e,/\s*:/),keywords:"_|0",relevance:0
    1113     },...a,A,...c,...g,...p,f,k,...C,...T,R]},L={begin:/</,end:/>/,
    1114     keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l,
    1115     contains:[{begin:m(d(b($e,/\s*:/)),d(b($e,/\s+/,$e,/\s*:/))),end:/:/,
    1116     relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",
    1117     match:$e}]},...a,...c,...p,f,k,...T,R,I],endsParent:!0,illegal:/["']/},$={
    1118     match:[/(func|macro)/,/\s+/,m(S.match,$e,Ie)],className:{1:"keyword",
    1119     3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},F={
    1120     match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
    1121     contains:[L,B,n],illegal:/\[|%/},z={match:[/operator/,/\s+/,Ie],className:{
    1122     1:"keyword",3:"title"}},j={begin:[/precedencegroup/,/\s+/,Fe],className:{
    1123     1:"keyword",3:"title"},contains:[R],keywords:[...Se,...Ae],end:/}/},U={
    1124     begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,$e,/\s*/],
    1125     beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[L,...c,{begin:/:/,
    1126     end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:Fe},...c],
    1127     relevance:0}]};for(const e of k.variants){
    1128     const n=e.contains.find((e=>"interpol"===e.label));n.keywords=l
    1129     ;const t=[...c,...g,...p,f,k,...C];n.contains=[...t,{begin:/\(/,end:/\)/,
    1130     contains:["self",...t]}]}return{name:"Swift",keywords:l,contains:[...a,$,F,{
    1131     match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{
    1132     1:"keyword",3:"keyword",5:"title.function"}},{match:[/class\b/,/\s+/,/var\b/],
    1133     scope:{1:"keyword",3:"keyword"}},U,z,j,{beginKeywords:"import",end:/$/,
    1134     contains:[...a],relevance:0},A,...c,...g,...p,f,k,...C,...T,R,I]}},
    1135     grmr_typescript:e=>{
    1136     const n=e.regex,t=ve(e),a=me,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={
    1137     begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}
    1138     },s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{
    1139     keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE]
    1140     },o={$pattern:me,
    1141     keyword:pe.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]),
    1142     literal:_e,built_in:we.concat(i),"variable.language":ye},l={className:"meta",
    1143     begin:"@"+a},c=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n))
    1144     ;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
    1145     ;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(l)
    1146     ;const d=t.contains.find((e=>"attr"===e.scope)),g=Object.assign({},d,{
    1147     match:n.concat(a,n.lookahead(/\s*\?:/))})
    1148     ;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,g]),
    1149     t.contains=t.contains.concat([l,r,s,g]),
    1150     c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,
    1151     begin:/^\s*['"]use strict['"]/
    1152     }),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{
    1153     name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vbnet:e=>{
    1154     const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={
    1155     className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
    1156     begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
    1157     begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
    1158     },o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
    1159     }),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
    1160     ;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
    1161     classNameAliases:{label:"symbol"},keywords:{
    1162     keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    1163     built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    1164     type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    1165     literal:"true false nothing"},
    1166     illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    1167     className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    1168     end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
    1169     variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    1170     },{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    1171     begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    1172     className:"label",begin:/^\w+:/},o,l,{className:"meta",
    1173     begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    1174     end:/$/,keywords:{
    1175     keyword:"const disable else elseif enable end externalsource if region then"},
    1176     contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/)
    1177     ;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,
    1178     keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]
    1179     },contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],
    1180     className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{
    1181     match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{
    1182     begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",
    1183     3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,
    1184     className:"type"},{className:"keyword",
    1185     match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
    1186     },{className:"number",relevance:0,
    1187     match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
    1188     }]}},grmr_xml:e=>{
    1189     const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
    1190     className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
    1191     contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    1192     },r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
    1193     className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
    1194     endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
    1195     begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
    1196     className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
    1197     begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
    1198     name:"HTML, XML",
    1199     aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    1200     case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
    1201     end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
    1202     className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]
    1203     },e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
    1204     relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
    1205     relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
    1206     begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{
    1207     end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    1208     begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{
    1209     end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    1210     className:"tag",begin:/<>|<\/>/},{className:"tag",
    1211     begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
    1212     end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
    1213     className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
    1214     className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
    1215     },grmr_yaml:e=>{
    1216     const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
    1217     className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],
    1218     contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{
    1219     begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{
    1220     begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{
    1221     begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,
    1222     relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={
    1223     begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{
    1224     className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{
    1225     begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{
    1226     begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",
    1227     begin:"^---\\s*$",relevance:10},{className:"string",
    1228     begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    1229     begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    1230     relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
    1231     begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
    1232     },{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    1233     begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    1234     relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    1235     className:"number",
    1236     begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    1237     },{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,{
    1238     className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,
    1239     scope:"char.escape",relevance:0}]},a],c=[...l]
    1240     ;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
    1241     aliases:["yml"],contains:l}}});const Pe=ne;for(const e of Object.keys(Ue)){
    1242     const n=e.replace("grmr_","").replace("_","-");Pe.registerLanguage(n,Ue[e])}
    1243     return Pe}()
    1244     ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
     6var hljs=function(){"use strict";function e(n){
     7return n instanceof Map?n.clear=n.delete=n.set=()=>{
     8throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
     9throw Error("set is read-only")
     10}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
     11const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
     12})),n}class n{constructor(e){
     13void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
     14ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
     15return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
     16}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
     17;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope
     18;class r{constructor(e,n){
     19this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
     20this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
     21if(e.startsWith("language:"))return e.replace("language:","language-")
     22;if(e.includes(".")){const t=e.split(".")
     23;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
     24}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
     25closeNode(e){i(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
     26this.buffer+=`<span class="${e}">`}}const s=(e={})=>{const n={children:[]}
     27;return Object.assign(n,e),n};class o{constructor(){
     28this.rootNode=s(),this.stack=[this.rootNode]}get top(){
     29return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
     30this.top.children.push(e)}openNode(e){const n=s({scope:e})
     31;this.add(n),this.stack.push(n)}closeNode(){
     32if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
     33for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
     34walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
     35return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
     36n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
     37"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
     38o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
     39addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
     40this.closeNode()}__addSublanguage(e,n){const t=e.root
     41;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
     42return new r(this,this.options).value()}finalize(){
     43return this.closeAllNodes(),!0}}function c(e){
     44return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
     45function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
     46function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
     47const n=e[e.length-1]
     48;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
     49})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
     50function p(e){return RegExp(e.toString()+"|").exec("").length-1}
     51const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
     52;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
     53;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
     54i+=a.substring(0,e.index),
     55a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
     56"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
     57const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",N={
     58begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'",
     59illegal:"\\n",contains:[N]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",
     60contains:[N]},O=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
     61contains:[]},t);i.contains.push({scope:"doctag",
     62begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
     63end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
     64;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
     65;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
     66},M=O("//","$"),A=O("/\\*","\\*/"),S=O("#","$");var C=Object.freeze({
     67__proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{
     68scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:O,
     69C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
     70begin:w,relevance:0},C_NUMBER_RE:w,END_SAME_AS_BEGIN:e=>Object.assign(e,{
     71"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
     72n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:f,
     73MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
     74NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
     75PHRASAL_WORDS_MODE:{
     76begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
     77},QUOTE_STRING_MODE:x,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
     78end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},
     79RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
     80SHEBANG:(e={})=>{const n=/^#![ ]*\//
     81;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
     82end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
     83TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
     84UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
     85"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
     86void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
     87n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
     88e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
     89void 0===e.relevance&&(e.relevance=0))}function I(e,n){
     90Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
     91if(e.match){
     92if(e.begin||e.end)throw Error("begin & end are not supported with match")
     93;e.begin=e.match,delete e.match}}function B(e,n){
     94void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
     95;if(e.starts)throw Error("beforeMatch cannot be used with starts")
     96;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
     97})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
     98relevance:0,contains:[Object.assign(t,{endsParent:!0})]
     99},e.relevance=0,delete t.beforeMatch
     100},F=["of","and","for","in","not","or","if","then","parent","list","value"]
     101;function z(e,n,t="keyword"){const a=Object.create(null)
     102;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
     103Object.assign(a,z(e[t],n,t))})),a;function i(e,t){
     104n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
     105;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
     106return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const U={},P=e=>{
     107console.error(e)},K=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
     108U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0)
     109},H=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
     110;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
     111;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function Z(e){(e=>{
     112e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
     113delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
     114_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
     115}),(e=>{if(Array.isArray(e.begin)){
     116if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
     117H
     118;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"),
     119H;G(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
     120if(Array.isArray(e.end)){
     121if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
     122H
     123;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"),
     124H;G(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function W(e){
     125function n(n,t){
     126return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
     127}class t{constructor(){
     128this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
     129addRule(e,n){
     130n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
     131this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
     132;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
     133}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
     134;const n=this.matcherRe.exec(e);if(!n)return null
     135;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
     136;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
     137this.rules=[],this.multiRegexes=[],
     138this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
     139if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
     140;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
     141n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
     142return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
     143this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
     144const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
     145;let t=n.exec(e)
     146;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
     147const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
     148return t&&(this.regexIndex+=t.position+1,
     149this.regexIndex===this.count&&this.considerAll()),t}}
     150if(e.compilerExtensions||(e.compilerExtensions=[]),
     151e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
     152;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
     153;if(r.isCompiled)return o
     154;[R,L,Z,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
     155r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
     156;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
     157l=r.keywords.$pattern,
     158delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=z(r.keywords,e.case_insensitive)),
     159o.keywordPatternRe=n(l,!0),
     160s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
     161r.end&&(o.endRe=n(o.end)),
     162o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
     163r.illegal&&(o.illegalRe=n(r.illegal)),
     164r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
     165variants:null},n)))),e.cachedVariants?e.cachedVariants:Q(e)?a(e,{
     166starts:e.starts?a(e.starts):null
     167}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
     168})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
     169;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
     170}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
     171}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function Q(e){
     172return!!e&&(e.endsWithParent||Q(e.starts))}class X extends Error{
     173constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
     174const V=t,J=a,Y=Symbol("nomatch"),ee=t=>{
     175const a=Object.create(null),i=Object.create(null),r=[];let s=!0
     176;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
     177disableAutodetect:!0,name:"Plain text",contains:[]};let p={
     178ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
     179languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
     180cssSelector:"pre code",languages:null,__emitter:l};function _(e){
     181return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
     182;"object"==typeof n?(a=e,
     183t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
     184q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
     185i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};O("before:highlight",r)
     186;const s=r.result?r.result:f(r.language,r.code,t)
     187;return s.code=r.code,O("after:highlight",s),s}function f(e,t,i,r){
     188const l=Object.create(null);function c(){if(!O.keywords)return void A.addText(S)
     189;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t=""
     190;for(;n;){t+=S.substring(e,n.index)
     191;const i=v.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){
     192const[e,a]=r
     193;if(A.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
     194const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
     195;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a
     196;t+=S.substring(e),A.addText(t)}function d(){null!=O.subLanguage?(()=>{
     197if(""===S)return;let e=null;if("string"==typeof O.subLanguage){
     198if(!a[O.subLanguage])return void A.addText(S)
     199;e=f(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top
     200}else e=E(S,O.subLanguage.length?O.subLanguage:null)
     201;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language)
     202})():c(),S=""}function g(e,n){
     203""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1
     204;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
     205const a=v.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(S=i,c(),S=""),t++}}
     206function b(e,n){
     207return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),
     208e.beginScope&&(e.beginScope._wrap?(g(S,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
     209S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{
     210value:O}}),O}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
     211;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
     212;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
     213for(;e.endsParent&&e.parent;)e=e.parent;return e}}
     214if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
     215return 0===O.matcher.regexIndex?(S+=e[0],1):(D=!0,0)}function h(e){
     216const n=e[0],a=t.substring(e.index),i=m(O,e,a);if(!i)return Y;const r=O
     217;O.endScope&&O.endScope._wrap?(d(),
     218g(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(),
     219u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n),
     220d(),r.excludeEnd&&(S=n));do{
     221O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent
     222}while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
     223let y={};function w(a,r){const o=r&&r[0];if(S+=a,null==o)return d(),0
     224;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
     225if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
     226;throw n.languageName=e,n.badRule=y.rule,n}return 1}
     227if(y=r,"begin"===r.type)return(e=>{
     228const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
     229;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
     230;return a.skip?S+=t:(a.excludeBegin&&(S+=t),
     231d(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r)
     232;if("illegal"===r.type&&!i){
     233const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"<unnamed>")+'"')
     234;throw e.mode=O,e}if("end"===r.type){const e=h(r);if(e!==Y)return e}
     235if("illegal"===r.type&&""===o)return S+="\n",1
     236;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
     237;return S+=o,o.length}const v=N(e)
     238;if(!v)throw P(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
     239;const k=W(v);let x="",O=r||k;const M={},A=new p.__emitter(p);(()=>{const e=[]
     240;for(let n=O;n!==v;n=n.parent)n.scope&&e.unshift(n.scope)
     241;e.forEach((e=>A.openNode(e)))})();let S="",C=0,T=0,R=0,D=!1;try{
     242if(v.__emitTokens)v.__emitTokens(t,A);else{for(O.matcher.considerAll();;){
     243R++,D?D=!1:O.matcher.considerAll(),O.matcher.lastIndex=T
     244;const e=O.matcher.exec(t);if(!e)break;const n=w(t.substring(T,e.index),e)
     245;T=e.index+n}w(t.substring(T))}return A.finalize(),x=A.toHTML(),{language:e,
     246value:x,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){
     247if(n.message&&n.message.includes("Illegal"))return{language:e,value:V(t),
     248illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
     249context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:x},_emitter:A};if(s)return{
     250language:e,value:V(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O}
     251;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
     252const n={value:V(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
     253;return n._emitter.addText(e),n})(e),i=n.filter(N).filter(x).map((n=>f(n,e,!1)))
     254;i.unshift(t);const r=i.sort(((e,n)=>{
     255if(e.relevance!==n.relevance)return n.relevance-e.relevance
     256;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1
     257;if(N(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
     258;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
     259let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
     260;const t=p.languageDetectRe.exec(n);if(t){const n=N(t[1])
     261;return n||(K(o.replace("{}",t[1])),
     262K("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
     263return n.split(/\s+/).find((e=>_(e)||N(e)))})(e);if(_(t))return
     264;if(O("before:highlightElement",{el:e,language:t
     265}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
     266;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
     267console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
     268console.warn("The element with unescaped HTML:"),
     269console.warn(e)),p.throwUnescapedHTML))throw new X("One of your code blocks includes unescaped HTML.",e.innerHTML)
     270;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
     271;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
     272;e.classList.add("hljs"),e.classList.add("language-"+a)
     273})(e,t,r.language),e.result={language:r.language,re:r.relevance,
     274relevance:r.relevance},r.secondBest&&(e.secondBest={
     275language:r.secondBest.language,relevance:r.secondBest.relevance
     276}),O("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function v(){
     277if("loading"===document.readyState)return w||window.addEventListener("DOMContentLoaded",(()=>{
     278v()}),!1),void(w=!0);document.querySelectorAll(p.cssSelector).forEach(y)}
     279function N(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
     280function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
     281i[e.toLowerCase()]=n}))}function x(e){const n=N(e)
     282;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{
     283e[t]&&e[t](n)}))}Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:v,
     284highlightElement:y,
     285highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
     286q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=J(p,e)},
     287initHighlighting:()=>{
     288v(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
     289initHighlightingOnLoad:()=>{
     290v(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
     291},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
     292if(P("Language definition for '{}' could not be registered.".replace("{}",e)),
     293!s)throw n;P(n),i=c}
     294i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&k(i.aliases,{
     295languageName:e})},unregisterLanguage:e=>{delete a[e]
     296;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
     297listLanguages:()=>Object.keys(a),getLanguage:N,registerAliases:k,
     298autoDetection:x,inherit:J,addPlugin:e=>{(e=>{
     299e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
     300e["before:highlightBlock"](Object.assign({block:n.el},n))
     301}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
     302e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
     303removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
     304s=!1},t.safeMode=()=>{s=!0},t.versionString="11.11.1",t.regex={concat:b,
     305lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
     306;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
     307},ne=ee({});ne.newInstance=()=>ee({});const te=e=>({IMPORTANT:{scope:"meta",
     308begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
     309scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
     310FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
     311ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
     312contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
     313scope:"number",
     314begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
     315relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
     316}),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),oe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),le=re.concat(se).sort().reverse()
     317;var ce="[0-9](_*[0-9])*",de=`\\.(${ce})`,ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ue={
     318className:"number",variants:[{
     319begin:`(\\b(${ce})((${de})|\\.)?|(${de}))[eE][+-]?(${ce})[fFdD]?\\b`},{
     320begin:`\\b(${ce})((${de})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
     321begin:`(${de})[fFdD]?\\b`},{begin:`\\b(${ce})[fFdD]\\b`},{
     322begin:`\\b0[xX]((${ge})\\.?|(${ge})?\\.(${ge}))[pP][+-]?(${ce})[fFdD]?\\b`},{
     323begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ge})[lL]?\\b`},{
     324begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
     325relevance:0};function be(e,n,t){return-1===t?"":e.replace(n,(a=>be(e,n,t-1)))}
     326const me="[A-Za-z$_][0-9A-Za-z$_]*",pe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],_e=["true","false","null","undefined","NaN","Infinity"],he=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],fe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ee=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ye=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],we=[].concat(Ee,he,fe)
     327;function ve(e){const n=e.regex,t=me,a={begin:/<[A-Za-z0-9\\._:-]+/,
     328end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
     329const t=e[0].length+e.index,a=e.input[t]
     330;if("<"===a||","===a)return void n.ignoreMatch();let i
     331;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
     332;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
     333;const r=e.input.substring(t)
     334;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
     335}},i={$pattern:me,keyword:pe,literal:_e,built_in:we,"variable.language":ye
     336},r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
     337className:"number",variants:[{
     338begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
     339begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
     340begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
     341begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
     342begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
     343begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
     344end:"\\}",keywords:i,contains:[]},d={begin:".?html`",end:"",starts:{end:"`",
     345returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
     346begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
     347contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:".?gql`",end:"",
     348starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
     349subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
     350contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
     351variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
     352begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
     353begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
     354excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
     355endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
     356}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
     357},p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
     358;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
     359});const _=[].concat(m,c.contains),h=_.concat([{begin:/(\s*)\(/,end:/\)/,
     360keywords:i,contains:["self"].concat(_)}]),f={className:"params",begin:/(\s*)\(/,
     361end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
     362match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
     363scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
     364match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
     365match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
     366className:"title.class",keywords:{_:[...he,...fe]}},w={variants:[{
     367match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
     368className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
     369illegal:/%/},v={
     370match:n.concat(/\b/,(N=[...Ee,"super","import"].map((e=>e+"\\s*\\(")),
     371n.concat("(?!",N.join("|"),")")),t,n.lookahead(/\s*\(/)),
     372className:"title.function",relevance:0};var N;const k={
     373begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
     374excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},x={
     375match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
     376contains:[{begin:/\(\)/},f]
     377},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
     378match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)],
     379keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
     380;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
     381PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
     382contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
     383label:"use_strict",className:"meta",relevance:10,
     384begin:/^\s*['"]use (strict|asm)['"]/
     385},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
     386scope:"attr",match:t+n.lookahead(":"),relevance:0},M,{
     387begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
     388keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
     389className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{
     390className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
     391className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
     392excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0
     393},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
     394match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
     395"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
     396begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},w,{
     397beginKeywords:"while if switch catch for"},{
     398begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
     399returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
     400className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+t,
     401relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
     402contains:[f]},v,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
     403className:"variable.constant"},E,x,{match:/\$[(.]/}]}}
     404const Ne=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ke=["Protocol","Type"].map(Ne),xe=["init","self"].map(Ne),Oe=["Any","Self"],Me=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ae=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ce=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Te=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Re=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),De=m(Re,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Ie=b(Re,De,"*"),Le=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Be=m(Le,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),$e=b(Le,Be,"*"),Fe=b(/[A-Z]/,Be,"*"),ze=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,$e,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],je=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
     405;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
     406begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
     407;Object.assign(t,{className:"variable",variants:[{
     408begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
     409className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]
     410},r=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={
     411begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
     412end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,
     413contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(o);const l={begin:/\$?\(\(/,
     414end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
     415},c=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
     416}),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
     417contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
     418name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
     419keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],
     420literal:["true","false"],
     421built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
     422},contains:[c,e.SHEBANG(),d,l,r,s,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{
     423className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_c:e=>{
     424const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
     425}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
     426className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
     427match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
     428begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
     429begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
     430end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
     431begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
     432className:"number",variants:[{match:/\b(0b[01']+)/},{
     433match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/
     434},{
     435match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/
     436},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0
     437},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
     438keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"
     439},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
     440className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
     441className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
     442},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
     443keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
     444type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],
     445literal:"true false NULL",
     446built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
     447},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
     448begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
     449keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
     450contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
     451begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
     452keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
     453begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
     454relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
     455keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
     456end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
     457}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
     458disableAutodetect:!0,illegal:"</",contains:[].concat(m,p,b,[c,{
     459begin:e.IDENT_RE+"::",keywords:u},{className:"class",
     460beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
     461beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
     462strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
     463contains:[{begin:/\\\n/}]
     464}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
     465className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
     466begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
     467begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
     468end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
     469begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
     470className:"number",variants:[{
     471begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"
     472},{
     473begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"
     474}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
     475keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
     476},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
     477className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
     478className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
     479},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
     480type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
     481keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
     482literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
     483_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
     484},b={className:"function.dispatch",relevance:0,keywords:{
     485_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
     486},
     487begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
     488},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
     489begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
     490keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
     491contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
     492begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
     493keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
     494begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
     495begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
     496className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
     497contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
     498relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
     499},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
     500aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",
     501classNameAliases:{"function.dispatch":"built_in"},
     502contains:[].concat(p,_,b,m,[c,{
     503begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",
     504end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
     505match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
     506className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
     507keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]),
     508built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
     509literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
     510begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
     511begin:"\\b(0b[01']+)"},{
     512begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
     513begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
     514}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
     515},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
     516keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
     517end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
     518},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
     519begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
     520contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
     521;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
     522o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
     523illegal:/\n/})];const g={variants:[{className:"string",
     524begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1
     525},c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",
     526contains:[{beginKeywords:"in out"},t]
     527},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
     528begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
     529keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
     530contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
     531begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
     532}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
     533end:"$",keywords:{
     534keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
     535}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
     536illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
     537},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
     538relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
     539contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
     540beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
     541contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
     542begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
     543className:"string",begin:/"/,end:/"/}]},{
     544beginKeywords:"new return throw await else",relevance:0},{className:"function",
     545begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
     546end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
     547beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
     548relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
     549contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
     550begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
     551contains:[g,a,e.C_BLOCK_COMMENT_MODE]
     552},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
     553const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
     554name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
     555keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
     556contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
     557},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
     558},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
     559},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
     560begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}]
     561},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{
     562begin:/:/,end:/[;}{]/,
     563contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
     564begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
     565},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
     566excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
     567relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
     568},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
     569$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{
     570begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
     571className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{
     572const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
     573className:"meta",relevance:10,
     574match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
     575},{className:"comment",variants:[{
     576begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
     577end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
     578className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
     579end:/$/}]}},grmr_go:e=>{const n={
     580keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
     581type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
     582literal:["true","false","iota","nil"],
     583built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
     584};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
     585contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
     586variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
     587className:"number",variants:[{
     588match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0
     589},{
     590match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,
     591relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{
     592match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{
     593match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{
     594begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",
     595excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,
     596endsParent:!0,keywords:n,illegal:/["']/}]}]}},grmr_graphql:e=>{const n=e.regex
     597;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,
     598keywords:{
     599keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
     600literal:["true","false","null"]},
     601contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
     602scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
     603begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
     604end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
     605scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
     606relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
     607className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
     608begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
     609end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
     610begin:/\$\{(.*?)\}/}]},r={className:"literal",
     611begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
     612contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
     613begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
     614},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
     615},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
     616name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
     617contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
     618begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
     619className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
     620const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+be("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
     621keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],
     622literal:["false","true","null"],
     623type:["char","boolean","long","float","int","byte","short","double"],
     624built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
     625begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
     626end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
     627;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
     628contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
     629relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
     630begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
     631},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
     632className:"string",contains:[e.BACKSLASH_ESCAPE]
     633},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
     634match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
     6351:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
     636begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
     6373:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
     6383:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
     639beginKeywords:"new throw return else",relevance:0},{
     640begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
     6412:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
     642end:/\)/,keywords:i,relevance:0,
     643contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ue,e.C_BLOCK_COMMENT_MODE]
     644},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ue,r]}},grmr_javascript:ve,
     645grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
     646beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{
     647literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
     648relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
     649},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
     650illegal:"\\S"}},grmr_kotlin:e=>{const n={
     651keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
     652built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
     653literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
     654},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
     655className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
     656variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
     657illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
     658contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
     659className:"meta",
     660begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
     661},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
     662end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
     663},l=ue,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
     664variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
     665contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
     666{name:"Kotlin",aliases:["kt","kts"],keywords:n,
     667contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
     668begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
     669begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
     670begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
     671returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
     672begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
     673contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
     674keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
     675endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
     676endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
     677},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
     678begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
     6793:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
     680illegal:"extends implements",contains:[{
     681beginKeywords:"public protected internal private constructor"
     682},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
     683excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
     684excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
     685end:"$",illegal:"\n"},l]}},grmr_less:e=>{
     686const n=te(e),t=le,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
     687className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
     688relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
     689attribute:ie.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
     690relevance:0}
     691;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
     692begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
     693excludeEnd:!0}
     694},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
     695className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
     696},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
     697begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
     698contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
     699returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
     700},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b",
     701end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
     702},m={className:"keyword",
     703begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
     704starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
     705className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
     706}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
     707begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
     708returnEnd:!0,illegal:"[<='$\"]",relevance:0,
     709contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
     710begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag"
     711},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
     712className:"selector-pseudo",begin:":("+re.join("|")+")"},{
     713className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/,
     714end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
     715begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
     716;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
     717{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
     718grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
     719},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
     720})];return{name:"Lua",aliases:["pluto"],keywords:{
     721$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",
     722keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
     723built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
     724},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
     725contains:[e.inherit(e.TITLE_MODE,{
     726begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
     727begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
     728},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
     729begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
     730className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
     731contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
     732begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
     733begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
     734built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
     735},contains:[n,t]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
     736className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
     737name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
     738keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
     739},contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
     740end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_markdown:e=>{
     741const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={
     742variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
     743begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
     744relevance:2},{
     745begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
     746relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
     747begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
     748},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
     749returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
     750excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
     751end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
     752variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]
     753},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{
     754begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
     755}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
     756;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
     757})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
     758className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
     759begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
     760contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
     761end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
     762end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
     763begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
     764begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
     765contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
     766begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
     767className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
     768className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal",
     769match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}},
     770grmr_objectivec:e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
     771keyword:["@interface","@class","@protocol","@implementation"]};return{
     772name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
     773keywords:{"variable.language":["this","super"],$pattern:n,
     774keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],
     775literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
     776built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
     777type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
     778},illegal:"</",contains:[{className:"built_in",
     779begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
     780},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
     781className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
     782contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
     783keywords:{
     784keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
     785},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
     786className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
     787},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
     788begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
     789contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
     790relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
     791$pattern:/[\w.]+/,
     792keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot class close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl field fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
     793},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
     794end:/\}/},s={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},o={scope:"variable",
     795variants:[{begin:/\$\d/},{
     796begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
     797},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={
     798className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{
     799match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{
     800match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{
     801match:/\b0b[0-1][0-1_]*\b/}],relevance:0
     802},c=[e.BACKSLASH_ESCAPE,i,o],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,a,i="\\1")=>{
     803const r="\\1"===i?i:n.concat(i,a)
     804;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
     805},u=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),b=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
     806endsWithParent:!0}),r,{className:"string",contains:c,variants:[{
     807begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
     808end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
     809begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
     810relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
     811contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
     812contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
     813begin:"-?\\w+\\s*=>",relevance:0}]},l,{
     814begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
     815keywords:"split return print reverse grep",relevance:0,
     816contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
     817begin:g("s|tr|y",n.either(...d,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{
     818begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{
     819className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
     820begin:u("(?:m|qr)?",/\//,/\//)},{begin:u("m|qr",n.either(...d,{capture:!0
     821}),/\1/)},{begin:u("m|qr",/\(/,/\)/)},{begin:u("m|qr",/\[/,/\]/)},{
     822begin:u("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",
     823end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]
     824},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,
     825contains:[e.TITLE_MODE,s,l]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",
     826end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",
     827className:"comment"}]}];return i.contains=b,r.contains=b,{name:"Perl",
     828aliases:["pl","pm"],keywords:a,contains:b}},grmr_php:e=>{
     829const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=n.concat(/[A-Z]+/,t),s={
     830scope:"variable",match:"\\$+"+a},o={scope:"subst",variants:[{begin:/\$\w+/},{
     831begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null
     832}),c="[ \t\n]",d={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
     833illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),l,{
     834begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,
     835contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,n)=>{
     836n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{
     837n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({
     838begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},g={scope:"number",variants:[{
     839begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
     840begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
     841begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
     842}],relevance:0
     843},u=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={
     844keyword:b,literal:(e=>{const n=[];return e.forEach((e=>{
     845n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
     846})),n})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{
     847match:[/new/,n.concat(c,"+"),n.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{
     8481:"keyword",4:"title.class"}}]},f=n.concat(a,"\\b(?!\\()"),E={variants:[{
     849match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant"
     850}},{match:[/::/,/class/],scope:{2:"variable.language"}},{
     851match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{1:"title.class",
     8523:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
     853scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
     8543:"variable.language"}}]},y={scope:"attr",
     855match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},w={relevance:0,
     856begin:/\(/,end:/\)/,keywords:p,contains:[y,s,E,e.C_BLOCK_COMMENT_MODE,d,g,h]
     857},v={relevance:0,
     858match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(b).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),a,n.concat(c,"*"),n.lookahead(/(?=\()/)],
     859scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(v)
     860;const N=[y,E,e.C_BLOCK_COMMENT_MODE,d,g,h],k={
     861begin:n.concat(/#\[\s*\\?/,n.either(i,r)),beginScope:"meta",end:/]/,
     862endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{
     863begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},
     864contains:["self",...N]},...N,{scope:"meta",variants:[{match:i},{match:r}]}]}
     865;return{case_insensitive:!1,keywords:p,
     866contains:[k,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{
     867contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
     868keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
     869contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
     870begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
     871begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},s,v,E,{
     872match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},h,{
     873scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
     874excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
     875},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
     876begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,
     877contains:["self",k,s,E,e.C_BLOCK_COMMENT_MODE,d,g]}]},{scope:"class",variants:[{
     878beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
     879illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
     880beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
     881beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
     882contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
     883beginKeywords:"use",relevance:0,end:";",contains:[{
     884match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,g]}
     885},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
     886begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
     887end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
     888},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
     889skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
     890contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
     891aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
     892const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
     893$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
     894built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
     895literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
     896type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
     897},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
     898end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
     899className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
     900begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
     901contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
     902begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
     903contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
     904begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
     905contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
     906end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
     907relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
     908begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
     909end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
     910contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
     911contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
     912},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
     913className:"number",relevance:0,variants:[{
     914begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
     915begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
     916begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
     917},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
     918}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
     919contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
     920className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
     921end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
     922contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
     923name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
     924illegal:/(<\/|\?)|=>/,contains:[r,u,{scope:"variable.language",match:/\bself\b/
     925},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"
     926},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",
     9273:"title.function"},contains:[m]},{variants:[{
     928match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
     929scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
     930className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
     931grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
     932starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
     933begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
     934const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
     935;return{name:"R",keywords:{$pattern:t,
     936keyword:"function if in break next repeat else for while",
     937literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
     938built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
     939},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
     940starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
     941endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
     942scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
     943}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
     944}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
     945variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
     946}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
     947}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
     948}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
     949}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
     950}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
     951relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
     9521:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
     953match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
     9542:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
     955match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
     956match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
     957contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
     958const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={
     959"variable.constant":["__FILE__","__LINE__","__ENCODING__"],
     960"variable.language":["self","super"],
     961keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],
     962built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],
     963literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={
     964begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]
     965}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10
     966}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,
     967end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],
     968variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{
     969begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{
     970begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,
     971end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{
     972begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
     973begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
     974begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
     975begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
     976begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
     977contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
     978contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
     979relevance:0,variants:[{
     980begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
     981begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
     982},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
     983begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
     984begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
     985className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
     986keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
     987match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",
     9884:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{
     9892:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{
     9901:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
     991className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{
     992match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
     993begin:e.IDENT_RE+"::"},{className:"symbol",
     994begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
     995begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
     996begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
     997className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
     998relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
     999keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
     1000illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
     1001begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
     1002end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
     1003;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
     1004},{className:"meta.prompt",
     1005begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
     1006starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
     1007aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
     1008contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
     1009grmr_rust:e=>{
     1010const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),i=n.concat(t,e.IDENT_RE),r={
     1011className:"title.function.invoke",relevance:0,
     1012begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,n.lookahead(/\s*\(/))
     1013},s="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
     1014;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,
     1015keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],
     1016literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:"</",
     1017contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
     1018}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
     1019className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",
     1020variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{
     1021scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{
     1022className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s
     1023},{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{
     1024begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{
     1025begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{
     1026className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",
     1027begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{
     1028begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",
     10294:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",
     10303:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",
     10313:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],
     1032className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
     1033keyword:"Self",built_in:o,type:l}},{className:"punctuation",begin:"->"},r]}},
     1034grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable",
     1035begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
     1036case_insensitive:!0,illegal:"[=/|']",
     1037contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
     1038className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
     1039className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
     1040},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
     1041begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
     1042begin:":("+a.join("|")+")"},{className:"selector-pseudo",
     1043begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
     1044contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
     1045begin:"\\b("+oe.join("|")+")\\b"},{
     1046begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
     1047},{begin:/:/,end:/[;}{]/,relevance:0,
     1048contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]
     1049},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
     1050begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
     1051keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i,
     1052className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
     1053},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
     1054},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
     1055aliases:["console","shellsession"],contains:[{className:"meta.prompt",
     1056begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
     1057subLanguage:"bash"}}]}),grmr_sql:e=>{
     1058const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),s={
     1059match:n.concat(/\b/,n.either(...i),/\s*\(/),relevance:0,keywords:{built_in:i}}
     1060;function o(e){
     1061return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)}
     1062const l={scope:"keyword",
     1063match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]),
     1064relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
     1065$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
     1066;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
     1067})(r,{when:e=>e.length<3}),literal:["true","false","unknown"],
     1068type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],
     1069built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
     1070},contains:[{scope:"type",
     1071match:o(["double precision","large object","with timezone","without timezone"])
     1072},l,s,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{
     1073begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{
     1074match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{scope:"operator",
     1075match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},
     1076grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{
     1077contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,m(...ke,...xe)],
     1078className:{2:"keyword"}},r={match:b(/\./,m(...Me)),relevance:0
     1079},s=Me.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
     1080className:"keyword",
     1081match:m(...Me.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...xe)}]},l={
     1082$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Ce),literal:Ae},c=[i,r,o],g=[{
     1083match:b(/\./,m(...Te)),relevance:0},{className:"built_in",
     1084match:b(/\b/,m(...Te),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{
     1085className:"operator",relevance:0,variants:[{match:Ie},{match:`\\.(\\.|${De})+`}]
     1086}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,
     1087variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{
     1088match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/
     1089},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{
     1090match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
     1091}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
     1092}),w=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/
     1093}),v=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),w(e)]
     1094}),N=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),w(e)]}),k={
     1095className:"string",
     1096variants:[v(),v("#"),v("##"),v("###"),N(),N("#"),N("##"),N("###")]
     1097},x=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,
     1098contains:[e.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,
     1099contains:x},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t,
     1100contains:[...x,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},A={
     1101scope:"regexp",variants:[M("###"),M("##"),M("#"),O]},S={match:b(/`/,$e,/`/)
     1102},C=[S,{className:"variable",match:/\$\d+/},{className:"variable",
     1103match:`\\$${Be}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{
     1104contains:[{begin:/\(/,end:/\)/,keywords:je,contains:[...p,f,k]}]}},{
     1105scope:"keyword",match:b(/@/,m(...ze),d(m(/\(/,/\s+/)))},{scope:"meta",
     1106match:b(/@/,$e)}],R={match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type",
     1107match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Be,"+")
     1108},{className:"type",match:Fe,relevance:0},{match:/[?!]+/,relevance:0},{
     1109match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Fe)),relevance:0}]},D={
     1110begin:/</,end:/>/,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D)
     1111;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
     1112match:b($e,/\s*:/),keywords:"_|0",relevance:0
     1113},...a,A,...c,...g,...p,f,k,...C,...T,R]},L={begin:/</,end:/>/,
     1114keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l,
     1115contains:[{begin:m(d(b($e,/\s*:/)),d(b($e,/\s+/,$e,/\s*:/))),end:/:/,
     1116relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",
     1117match:$e}]},...a,...c,...p,f,k,...T,R,I],endsParent:!0,illegal:/["']/},$={
     1118match:[/(func|macro)/,/\s+/,m(S.match,$e,Ie)],className:{1:"keyword",
     11193:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},F={
     1120match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
     1121contains:[L,B,n],illegal:/\[|%/},z={match:[/operator/,/\s+/,Ie],className:{
     11221:"keyword",3:"title"}},j={begin:[/precedencegroup/,/\s+/,Fe],className:{
     11231:"keyword",3:"title"},contains:[R],keywords:[...Se,...Ae],end:/}/},U={
     1124begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,$e,/\s*/],
     1125beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[L,...c,{begin:/:/,
     1126end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:Fe},...c],
     1127relevance:0}]};for(const e of k.variants){
     1128const n=e.contains.find((e=>"interpol"===e.label));n.keywords=l
     1129;const t=[...c,...g,...p,f,k,...C];n.contains=[...t,{begin:/\(/,end:/\)/,
     1130contains:["self",...t]}]}return{name:"Swift",keywords:l,contains:[...a,$,F,{
     1131match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{
     11321:"keyword",3:"keyword",5:"title.function"}},{match:[/class\b/,/\s+/,/var\b/],
     1133scope:{1:"keyword",3:"keyword"}},U,z,j,{beginKeywords:"import",end:/$/,
     1134contains:[...a],relevance:0},A,...c,...g,...p,f,k,...C,...T,R,I]}},
     1135grmr_typescript:e=>{
     1136const n=e.regex,t=ve(e),a=me,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={
     1137begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}
     1138},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{
     1139keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE]
     1140},o={$pattern:me,
     1141keyword:pe.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]),
     1142literal:_e,built_in:we.concat(i),"variable.language":ye},l={className:"meta",
     1143begin:"@"+a},c=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n))
     1144;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
     1145;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(l)
     1146;const d=t.contains.find((e=>"attr"===e.scope)),g=Object.assign({},d,{
     1147match:n.concat(a,n.lookahead(/\s*\?:/))})
     1148;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,g]),
     1149t.contains=t.contains.concat([l,r,s,g]),
     1150c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,
     1151begin:/^\s*['"]use strict['"]/
     1152}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{
     1153name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vbnet:e=>{
     1154const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={
     1155className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
     1156begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
     1157begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
     1158},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
     1159}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
     1160;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
     1161classNameAliases:{label:"symbol"},keywords:{
     1162keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
     1163built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
     1164type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
     1165literal:"true false nothing"},
     1166illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
     1167className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
     1168end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
     1169variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
     1170},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
     1171begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
     1172className:"label",begin:/^\w+:/},o,l,{className:"meta",
     1173begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
     1174end:/$/,keywords:{
     1175keyword:"const disable else elseif enable end externalsource if region then"},
     1176contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/)
     1177;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,
     1178keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]
     1179},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],
     1180className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{
     1181match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{
     1182begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",
     11833:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,
     1184className:"type"},{className:"keyword",
     1185match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
     1186},{className:"number",relevance:0,
     1187match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
     1188}]}},grmr_xml:e=>{
     1189const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
     1190className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
     1191contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
     1192},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
     1193className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
     1194endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
     1195begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
     1196className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
     1197begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
     1198name:"HTML, XML",
     1199aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
     1200case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
     1201end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
     1202className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]
     1203},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
     1204relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
     1205relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
     1206begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{
     1207end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
     1208begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{
     1209end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
     1210className:"tag",begin:/<>|<\/>/},{className:"tag",
     1211begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
     1212end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
     1213className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
     1214className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
     1215},grmr_yaml:e=>{
     1216const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
     1217className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],
     1218contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{
     1219begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{
     1220begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{
     1221begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,
     1222relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={
     1223begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{
     1224className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{
     1225begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{
     1226begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",
     1227begin:"^---\\s*$",relevance:10},{className:"string",
     1228begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
     1229begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
     1230relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
     1231begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
     1232},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
     1233begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
     1234relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
     1235className:"number",
     1236begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
     1237},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,{
     1238className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,
     1239scope:"char.escape",relevance:0}]},a],c=[...l]
     1240;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
     1241aliases:["yml"],contains:l}}});const Pe=ne;for(const e of Object.keys(Ue)){
     1242const n=e.replace("grmr_","").replace("_","-");Pe.registerLanguage(n,Ue[e])}
     1243return Pe}()
     1244;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
  • ai-tool-center/trunk/public/partials/aitoce-public-nimbot-display.php

    r3311710 r3311867  
    6868<style>
    6969    .aitoce-popup-chat-box {
    70         border-top-left-radius:
    71             <?php echo esc_attr($header_radius); ?>px;
    72         border-top-right-radius:
    73             <?php echo esc_attr($header_radius); ?>px;
    74         border-bottom-left-radius:
    75             <?php echo esc_attr($header_radius); ?>px;
    76         border-bottom-right-radius:
    77             <?php echo esc_attr($header_radius); ?>px;
     70        border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     71        border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
     72        border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     73        border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    7874    }
    7975
    8076    .aitoce-popup-chat-header {
    81         color:
    82             <?php echo esc_attr($header_text); ?>
    83         ;
    84         background-color:
    85             <?php echo esc_attr($header_background); ?>
    86         ;
    87         border-top-left-radius:
    88             <?php echo esc_attr($header_radius); ?>px;
    89         border-top-right-radius:
    90             <?php echo esc_attr($header_radius); ?>px;
     77        color: <?php echo esc_attr($header_text); ?>;
     78        background-color: <?php echo esc_attr($header_background); ?>;
     79        border-top-left-radius: <?php echo esc_attr($header_radius); ?>px;
     80        border-top-right-radius: <?php echo esc_attr($header_radius); ?>px;
    9181    }
    9282
    9383    .aitoce-popup-chat-input-area {
    94         background-color:
    95             <?php echo esc_attr($header_background); ?>
    96         ;
    97         border-bottom-left-radius:
    98             <?php echo esc_attr($header_radius); ?>px;
    99         border-bottom-right-radius:
    100             <?php echo esc_attr($header_radius); ?>px;
     84        background-color: <?php echo esc_attr($header_background); ?>;
     85        border-bottom-left-radius: <?php echo esc_attr($header_radius); ?>px;
     86        border-bottom-right-radius: <?php echo esc_attr($header_radius); ?>px;
    10187    }
    10288
    10389    .aitoce-popup-chat-messages {
    104         height:
    105             <?php echo esc_attr($message_height); ?>px;
    106         max-height:
    107             <?php echo esc_attr($message_height); ?>px;
    108         background-color:
    109             <?php echo esc_attr($message_background); ?>
    110         ;
     90        height: <?php echo esc_attr($message_height); ?>px;
     91        max-height: <?php echo esc_attr($message_height); ?>px;
     92        background-color: <?php echo esc_attr($message_background); ?>;
    11193    }
    11294
    11395    .aitoce-popup-chat-input {
    114         color:
    115             <?php echo esc_attr($input_text); ?>
    116         ;
    117         background-color:
    118             <?php echo esc_attr($input_background); ?>
    119         ;
    120         border-radius:
    121             <?php echo esc_attr($input_radius); ?>px;
     96        color: <?php echo esc_attr($input_text); ?>;
     97        background-color: <?php echo esc_attr($input_background); ?>;
     98        border-radius: <?php echo esc_attr($input_radius); ?>px;
    12299    }
    123100
    124101    .aitoce-popup-user-message {
    125         color:
    126             <?php echo esc_attr($client_message_text); ?>
    127         ;
    128         background-color:
    129             <?php echo esc_attr($client_message_background); ?>
    130         ;
    131         border-radius:
    132             <?php echo esc_attr($client_message_radius); ?>px;
     102        color: <?php echo esc_attr($client_message_text); ?>;
     103        background-color: <?php echo esc_attr($client_message_background); ?>;
     104        border-radius: <?php echo esc_attr($client_message_radius); ?>px;
    133105    }
    134106
    135107    .aitoce-popup-bot-message {
    136         color:
    137             <?php echo esc_attr($nimbot_reply_text); ?>
    138         ;
    139         background-color:
    140             <?php echo esc_attr($nimbot_reply_background); ?>
    141         ;
    142         border-radius:
    143             <?php echo esc_attr($nimbot_reply_radius); ?>px;
     108        color: <?php echo esc_attr($nimbot_reply_text); ?>;
     109        background-color: <?php echo esc_attr($nimbot_reply_background); ?>;
     110        border-radius: <?php echo esc_attr($nimbot_reply_radius); ?>px;
    144111    }
    145112
    146113    .aitoce-popup-send-btn {
    147         color:
    148             <?php echo esc_attr($send_button_text); ?>
    149         ;
    150         background-color:
    151             <?php echo esc_attr($send_button_background); ?>
    152         ;
    153         border-radius:
    154             <?php echo esc_attr($send_button_radius); ?>px;
     114        color: <?php echo esc_attr($send_button_text); ?>;
     115        background-color: <?php echo esc_attr($send_button_background); ?>;
     116        border-radius: <?php echo esc_attr($send_button_radius); ?>px;
    155117    }
    156118
    157119    .aitoce-popup-send-btn:hover {
    158         color:
    159             <?php echo esc_attr($send_button_text_hover); ?>
    160         ;
    161         background-color:
    162             <?php echo esc_attr($send_button_background_hover); ?>
    163         ;
     120        color: <?php echo esc_attr($send_button_text_hover); ?>;
     121        background-color: <?php echo esc_attr($send_button_background_hover); ?>;
    164122    }
    165123</style>
     
    179137        <div id="aitoce-chat-input-area" class="aitoce-popup-chat-input-area">
    180138            <textarea id="aitoce-popup-input" class="aitoce-popup-chat-input" rows="2"
    181                 placeholder="Type a message..."></textarea>
     139                placeholder="Type a message..." aria-label="Popup Message Input"></textarea>
    182140            <div id="aitoce-popup-send-btn" class="aitoce-popup-send-btn">Send</div>
    183141        </div>
Note: See TracChangeset for help on using the changeset viewer.