hermes-agent-web-chat 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,57 @@
1
+ (function(Q,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],r):(Q=typeof globalThis<"u"?globalThis:Q||self,r(Q.HermesAgentWebChat={},Q.Vue))})(this,function(Q,r){"use strict";var Tc=Object.defineProperty;var fr=Q=>{throw TypeError(Q)};var Sc=(Q,r,Te)=>r in Q?Tc(Q,r,{enumerable:!0,configurable:!0,writable:!0,value:Te}):Q[r]=Te;var te=(Q,r,Te)=>Sc(Q,typeof r!="symbol"?r+"":r,Te),wc=(Q,r,Te)=>r.has(Q)||fr("Cannot "+Te);var gr=(Q,r,Te)=>r.has(Q)?fr("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(Q):r.set(Q,Te);var Jt=(Q,r,Te)=>(wc(Q,r,"access private method"),Te);var Ye,Ln,mr;const Te=Symbol("hermes");function ut(){const t=r.inject(Te);if(!t)throw new Error("useHermes() 必须在 <HermesChat> 组件内部使用");return t}const hr={class:"sidebar"},br={class:"conv-list"},_r=["onClick"],Er={class:"conv-title"},yr=["onClick"],kr={key:0,class:"conv-empty"},Tr={class:"modal"},Sr={class:"modal-actions"},wr=r.defineComponent({__name:"Sidebar",setup(t){const{state:e,newConversation:n,deleteConversation:s,selectConversation:o,setSystemInstructions:a}=ut(),i=r.computed(()=>[...e.conversations].sort((h,g)=>g.updatedAt-h.updatedAt)),c=r.ref(!1),u=r.ref(e.systemInstructions);function d(){u.value=e.systemInstructions,c.value=!0}function f(){a(u.value),c.value=!1}return(h,g)=>(r.openBlock(),r.createElementBlock("aside",hr,[g[5]||(g[5]=r.createElementVNode("div",{class:"sidebar-head"},[r.createElementVNode("div",{class:"brand"},"会话列表")],-1)),r.createElementVNode("button",{class:"new-btn",onClick:g[0]||(g[0]=(...E)=>r.unref(n)&&r.unref(n)(...E))},"+ 新建会话"),r.createElementVNode("div",br,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(i.value,E=>(r.openBlock(),r.createElementBlock("div",{key:E.id,class:r.normalizeClass(["conv-item",{active:E.id===r.unref(e).currentConversationId}]),onClick:M=>r.unref(o)(E.id)},[r.createElementVNode("span",Er,r.toDisplayString(E.title),1),r.createElementVNode("button",{class:"conv-del",title:"删除会话",onClick:r.withModifiers(M=>r.unref(s)(E.id),["stop"])}," × ",8,yr)],10,_r))),128)),i.value.length?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",kr,"暂无会话"))]),r.createElementVNode("div",{class:"sidebar-foot"},[r.createElementVNode("button",{class:"instr-btn",onClick:d},"⚙ 系统指令")]),(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[c.value?(r.openBlock(),r.createElementBlock("div",{key:0,class:"modal-mask",onClick:g[3]||(g[3]=r.withModifiers(E=>c.value=!1,["self"]))},[r.createElementVNode("div",Tr,[g[4]||(g[4]=r.createElementVNode("div",{class:"modal-title"},"系统指令(可选)",-1)),r.withDirectives(r.createElementVNode("textarea",{"onUpdate:modelValue":g[1]||(g[1]=E=>u.value=E),class:"modal-input",rows:"6",placeholder:"为所有会话设置系统指令…"},null,512),[[r.vModelText,u.value]]),r.createElementVNode("div",Sr,[r.createElementVNode("button",{class:"btn-ghost",onClick:g[2]||(g[2]=E=>c.value=!1)},"取消"),r.createElementVNode("button",{class:"btn-primary",onClick:f},"保存")])])])):r.createCommentVNode("",!0)]))]))}});function Qt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let Ve=Qt();function Dn(t){Ve=t}const vn=/[&<>"']/,Nr=new RegExp(vn.source,"g"),Bn=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,xr=new RegExp(Bn.source,"g"),Ar={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Pn=t=>Ar[t];function Ne(t,e){if(e){if(vn.test(t))return t.replace(Nr,Pn)}else if(Bn.test(t))return t.replace(xr,Pn);return t}const Rr=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Or(t){return t.replace(Rr,(e,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Ir=/(^|[^\[])\^/g;function J(t,e){let n=typeof t=="string"?t:t.source;e=e||"";const s={replace:(o,a)=>{let i=typeof a=="string"?a:a.source;return i=i.replace(Ir,"$1"),n=n.replace(o,i),s},getRegex:()=>new RegExp(n,e)};return s}function $n(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}const dt={exec:()=>null};function Un(t,e){const n=t.replace(/\|/g,(a,i,c)=>{let u=!1,d=i;for(;--d>=0&&c[d]==="\\";)u=!u;return u?"|":" |"}),s=n.split(/ \|/);let o=0;if(s[0].trim()||s.shift(),s.length>0&&!s[s.length-1].trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;o<s.length;o++)s[o]=s[o].trim().replace(/\\\|/g,"|");return s}function At(t,e,n){const s=t.length;if(s===0)return"";let o=0;for(;o<s&&t.charAt(s-o-1)===e;)o++;return t.slice(0,s-o)}function Cr(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let s=0;s<t.length;s++)if(t[s]==="\\")s++;else if(t[s]===e[0])n++;else if(t[s]===e[1]&&(n--,n<0))return s;return-1}function zn(t,e,n,s){const o=e.href,a=e.title?Ne(e.title):null,i=t[1].replace(/\\([\[\]])/g,"$1");if(t[0].charAt(0)!=="!"){s.state.inLink=!0;const c={type:"link",raw:n,href:o,title:a,text:i,tokens:s.inlineTokens(i)};return s.state.inLink=!1,c}return{type:"image",raw:n,href:o,title:a,text:Ne(i)}}function Mr(t,e){const n=t.match(/^(\s+)(?:```)/);if(n===null)return e;const s=n[1];return e.split(`
2
+ `).map(o=>{const a=o.match(/^\s+/);if(a===null)return o;const[i]=a;return i.length>=s.length?o.slice(s.length):o}).join(`
3
+ `)}class Rt{constructor(e){te(this,"options");te(this,"rules");te(this,"lexer");this.options=e||Ve}space(e){const n=this.rules.block.newline.exec(e);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(e){const n=this.rules.block.code.exec(e);if(n){const s=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?s:At(s,`
4
+ `)}}}fences(e){const n=this.rules.block.fences.exec(e);if(n){const s=n[0],o=Mr(s,n[3]||"");return{type:"code",raw:s,lang:n[2]?n[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):n[2],text:o}}}heading(e){const n=this.rules.block.heading.exec(e);if(n){let s=n[2].trim();if(/#$/.test(s)){const o=At(s,"#");(this.options.pedantic||!o||/ $/.test(o))&&(s=o.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:s,tokens:this.lexer.inline(s)}}}hr(e){const n=this.rules.block.hr.exec(e);if(n)return{type:"hr",raw:n[0]}}blockquote(e){const n=this.rules.block.blockquote.exec(e);if(n){let s=n[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,`
5
+ $1`);s=At(s.replace(/^ *>[ \t]?/gm,""),`
6
+ `);const o=this.lexer.state.top;this.lexer.state.top=!0;const a=this.lexer.blockTokens(s);return this.lexer.state.top=o,{type:"blockquote",raw:n[0],tokens:a,text:s}}}list(e){let n=this.rules.block.list.exec(e);if(n){let s=n[1].trim();const o=s.length>1,a={type:"list",raw:"",ordered:o,start:o?+s.slice(0,-1):"",loose:!1,items:[]};s=o?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=o?s:"[*+-]");const i=new RegExp(`^( {0,3}${s})((?:[ ][^\\n]*)?(?:\\n|$))`);let c="",u="",d=!1;for(;e;){let f=!1;if(!(n=i.exec(e))||this.rules.block.hr.test(e))break;c=n[0],e=e.substring(c.length);let h=n[2].split(`
7
+ `,1)[0].replace(/^\t+/,P=>" ".repeat(3*P.length)),g=e.split(`
8
+ `,1)[0],E=0;this.options.pedantic?(E=2,u=h.trimStart()):(E=n[2].search(/[^ ]/),E=E>4?1:E,u=h.slice(E),E+=n[1].length);let M=!1;if(!h&&/^ *$/.test(g)&&(c+=g+`
9
+ `,e=e.substring(g.length+1),f=!0),!f){const P=new RegExp(`^ {0,${Math.min(3,E-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),N=new RegExp(`^ {0,${Math.min(3,E-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),H=new RegExp(`^ {0,${Math.min(3,E-1)}}(?:\`\`\`|~~~)`),T=new RegExp(`^ {0,${Math.min(3,E-1)}}#`);for(;e;){const B=e.split(`
10
+ `,1)[0];if(g=B,this.options.pedantic&&(g=g.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),H.test(g)||T.test(g)||P.test(g)||N.test(e))break;if(g.search(/[^ ]/)>=E||!g.trim())u+=`
11
+ `+g.slice(E);else{if(M||h.search(/[^ ]/)>=4||H.test(h)||T.test(h)||N.test(h))break;u+=`
12
+ `+g}!M&&!g.trim()&&(M=!0),c+=B+`
13
+ `,e=e.substring(B.length+1),h=g.slice(E)}}a.loose||(d?a.loose=!0:/\n *\n *$/.test(c)&&(d=!0));let I=null,R;this.options.gfm&&(I=/^\[[ xX]\] /.exec(u),I&&(R=I[0]!=="[ ] ",u=u.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:c,task:!!I,checked:R,loose:!1,text:u,tokens:[]}),a.raw+=c}a.items[a.items.length-1].raw=c.trimEnd(),a.items[a.items.length-1].text=u.trimEnd(),a.raw=a.raw.trimEnd();for(let f=0;f<a.items.length;f++)if(this.lexer.state.top=!1,a.items[f].tokens=this.lexer.blockTokens(a.items[f].text,[]),!a.loose){const h=a.items[f].tokens.filter(E=>E.type==="space"),g=h.length>0&&h.some(E=>/\n.*\n/.test(E.raw));a.loose=g}if(a.loose)for(let f=0;f<a.items.length;f++)a.items[f].loose=!0;return a}}html(e){const n=this.rules.block.html.exec(e);if(n)return{type:"html",block:!0,raw:n[0],pre:n[1]==="pre"||n[1]==="script"||n[1]==="style",text:n[0]}}def(e){const n=this.rules.block.def.exec(e);if(n){const s=n[1].toLowerCase().replace(/\s+/g," "),o=n[2]?n[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=n[3]?n[3].substring(1,n[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):n[3];return{type:"def",tag:s,raw:n[0],href:o,title:a}}}table(e){const n=this.rules.block.table.exec(e);if(!n||!/[:|]/.test(n[2]))return;const s=Un(n[1]),o=n[2].replace(/^\||\| *$/g,"").split("|"),a=n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(`
14
+ `):[],i={type:"table",raw:n[0],header:[],align:[],rows:[]};if(s.length===o.length){for(const c of o)/^ *-+: *$/.test(c)?i.align.push("right"):/^ *:-+: *$/.test(c)?i.align.push("center"):/^ *:-+ *$/.test(c)?i.align.push("left"):i.align.push(null);for(const c of s)i.header.push({text:c,tokens:this.lexer.inline(c)});for(const c of a)i.rows.push(Un(c,i.header.length).map(u=>({text:u,tokens:this.lexer.inline(u)})));return i}}lheading(e){const n=this.rules.block.lheading.exec(e);if(n)return{type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:this.lexer.inline(n[1])}}paragraph(e){const n=this.rules.block.paragraph.exec(e);if(n){const s=n[1].charAt(n[1].length-1)===`
15
+ `?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:s,tokens:this.lexer.inline(s)}}}text(e){const n=this.rules.block.text.exec(e);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(e){const n=this.rules.inline.escape.exec(e);if(n)return{type:"escape",raw:n[0],text:Ne(n[1])}}tag(e){const n=this.rules.inline.tag.exec(e);if(n)return!this.lexer.state.inLink&&/^<a /i.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const s=n[2].trim();if(!this.options.pedantic&&/^</.test(s)){if(!/>$/.test(s))return;const i=At(s.slice(0,-1),"\\");if((s.length-i.length)%2===0)return}else{const i=Cr(n[2],"()");if(i>-1){const u=(n[0].indexOf("!")===0?5:4)+n[1].length+i;n[2]=n[2].substring(0,i),n[0]=n[0].substring(0,u).trim(),n[3]=""}}let o=n[2],a="";if(this.options.pedantic){const i=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);i&&(o=i[1],a=i[3])}else a=n[3]?n[3].slice(1,-1):"";return o=o.trim(),/^</.test(o)&&(this.options.pedantic&&!/>$/.test(s)?o=o.slice(1):o=o.slice(1,-1)),zn(n,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer)}}reflink(e,n){let s;if((s=this.rules.inline.reflink.exec(e))||(s=this.rules.inline.nolink.exec(e))){const o=(s[2]||s[1]).replace(/\s+/g," "),a=n[o.toLowerCase()];if(!a){const i=s[0].charAt(0);return{type:"text",raw:i,text:i}}return zn(s,a,s[0],this.lexer)}}emStrong(e,n,s=""){let o=this.rules.inline.emStrongLDelim.exec(e);if(!o||o[3]&&s.match(/[\p{L}\p{N}]/u))return;if(!(o[1]||o[2]||"")||!s||this.rules.inline.punctuation.exec(s)){const i=[...o[0]].length-1;let c,u,d=i,f=0;const h=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,n=n.slice(-1*e.length+i);(o=h.exec(n))!=null;){if(c=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!c)continue;if(u=[...c].length,o[3]||o[4]){d+=u;continue}else if((o[5]||o[6])&&i%3&&!((i+u)%3)){f+=u;continue}if(d-=u,d>0)continue;u=Math.min(u,u+d+f);const g=[...o[0]][0].length,E=e.slice(0,i+o.index+g+u);if(Math.min(i,u)%2){const I=E.slice(1,-1);return{type:"em",raw:E,text:I,tokens:this.lexer.inlineTokens(I)}}const M=E.slice(2,-2);return{type:"strong",raw:E,text:M,tokens:this.lexer.inlineTokens(M)}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let s=n[2].replace(/\n/g," ");const o=/[^ ]/.test(s),a=/^ /.test(s)&&/ $/.test(s);return o&&a&&(s=s.substring(1,s.length-1)),s=Ne(s,!0),{type:"codespan",raw:n[0],text:s}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(e){const n=this.rules.inline.autolink.exec(e);if(n){let s,o;return n[2]==="@"?(s=Ne(n[1]),o="mailto:"+s):(s=Ne(n[1]),o=s),{type:"link",raw:n[0],text:s,href:o,tokens:[{type:"text",raw:s,text:s}]}}}url(e){var s;let n;if(n=this.rules.inline.url.exec(e)){let o,a;if(n[2]==="@")o=Ne(n[0]),a="mailto:"+o;else{let i;do i=n[0],n[0]=((s=this.rules.inline._backpedal.exec(n[0]))==null?void 0:s[0])??"";while(i!==n[0]);o=Ne(n[0]),n[1]==="www."?a="http://"+n[0]:a=n[0]}return{type:"link",raw:n[0],text:o,href:a,tokens:[{type:"text",raw:o,text:o}]}}}inlineText(e){const n=this.rules.inline.text.exec(e);if(n){let s;return this.lexer.state.inRawBlock?s=n[0]:s=Ne(n[0]),{type:"text",raw:n[0],text:s}}}}const Lr=/^(?: *(?:\n|$))+/,Dr=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,vr=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Br=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Fn=/(?:[*+-]|\d{1,9}[.)])/,Hn=J(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,Fn).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),en=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Pr=/^[^\n]+/,tn=/(?!\s*\])(?:\\.|[^\[\]\\])+/,$r=J(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",tn).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ur=J(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Fn).getRegex(),Ot="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",nn=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,zr=J("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",nn).replace("tag",Ot).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Vn=J(en).replace("hr",pt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ot).getRegex(),sn={blockquote:J(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Vn).getRegex(),code:Dr,def:$r,fences:vr,heading:Br,hr:pt,html:zr,lheading:Hn,list:Ur,newline:Lr,paragraph:Vn,table:dt,text:Pr},Gn=J("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ot).getRegex(),Fr={...sn,table:Gn,paragraph:J(en).replace("hr",pt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Gn).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ot).getRegex()},Hr={...sn,html:J(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",nn).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:dt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:J(en).replace("hr",pt).replace("heading",` *#{1,6} *[^
16
+ ]`).replace("lheading",Hn).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Kn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Vr=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Wn=/^( {2,}|\\)\n(?!\s*$)/,Gr=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,ft="\\p{P}\\p{S}",Kr=J(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,ft).getRegex(),Wr=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,qr=J(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,ft).getRegex(),Yr=J("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,ft).getRegex(),Zr=J("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,ft).getRegex(),Xr=J(/\\([punct])/,"gu").replace(/punct/g,ft).getRegex(),jr=J(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Jr=J(nn).replace("(?:-->|$)","-->").getRegex(),Qr=J("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Jr).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),It=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ei=J(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",It).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),qn=J(/^!?\[(label)\]\[(ref)\]/).replace("label",It).replace("ref",tn).getRegex(),Yn=J(/^!?\[(ref)\](?:\[\])?/).replace("ref",tn).getRegex(),ti=J("reflink|nolink(?!\\()","g").replace("reflink",qn).replace("nolink",Yn).getRegex(),rn={_backpedal:dt,anyPunctuation:Xr,autolink:jr,blockSkip:Wr,br:Wn,code:Vr,del:dt,emStrongLDelim:qr,emStrongRDelimAst:Yr,emStrongRDelimUnd:Zr,escape:Kn,link:ei,nolink:Yn,punctuation:Kr,reflink:qn,reflinkSearch:ti,tag:Qr,text:Gr,url:dt},ni={...rn,link:J(/^!?\[(label)\]\((.*?)\)/).replace("label",It).getRegex(),reflink:J(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",It).getRegex()},on={...rn,escape:J(Kn).replace("])","~|])").getRegex(),url:J(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},si={...on,br:J(Wn).replace("{2,}","*").getRegex(),text:J(on.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ct={normal:sn,gfm:Fr,pedantic:Hr},gt={normal:rn,gfm:on,breaks:si,pedantic:ni};class Le{constructor(e){te(this,"tokens");te(this,"options");te(this,"state");te(this,"tokenizer");te(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Ve,this.options.tokenizer=this.options.tokenizer||new Rt,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:Ct.normal,inline:gt.normal};this.options.pedantic?(n.block=Ct.pedantic,n.inline=gt.pedantic):this.options.gfm&&(n.block=Ct.gfm,this.options.breaks?n.inline=gt.breaks:n.inline=gt.gfm),this.tokenizer.rules=n}static get rules(){return{block:Ct,inline:gt}}static lex(e,n){return new Le(n).lex(e)}static lexInline(e,n){return new Le(n).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,`
17
+ `),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){const s=this.inlineQueue[n];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[]){this.options.pedantic?e=e.replace(/\t/g," ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(c,u,d)=>u+" ".repeat(d.length));let s,o,a,i;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(c=>(s=c.call({lexer:this},e,n))?(e=e.substring(s.raw.length),n.push(s),!0):!1))){if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length),s.raw.length===1&&n.length>0?n[n.length-1].raw+=`
18
+ `:n.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length),o=n[n.length-1],o&&(o.type==="paragraph"||o.type==="text")?(o.raw+=`
19
+ `+s.raw,o.text+=`
20
+ `+s.text,this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length),o=n[n.length-1],o&&(o.type==="paragraph"||o.type==="text")?(o.raw+=`
21
+ `+s.raw,o.text+=`
22
+ `+s.raw,this.inlineQueue[this.inlineQueue.length-1].src=o.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),n.push(s);continue}if(a=e,this.options.extensions&&this.options.extensions.startBlock){let c=1/0;const u=e.slice(1);let d;this.options.extensions.startBlock.forEach(f=>{d=f.call({lexer:this},u),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(this.state.top&&(s=this.tokenizer.paragraph(a))){o=n[n.length-1],i&&o.type==="paragraph"?(o.raw+=`
23
+ `+s.raw,o.text+=`
24
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(s),i=a.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length),o=n[n.length-1],o&&o.type==="text"?(o.raw+=`
25
+ `+s.raw,o.text+=`
26
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(s);continue}if(e){const c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){let s,o,a,i=e,c,u,d;if(this.tokens.links){const f=Object.keys(this.tokens.links);if(f.length>0)for(;(c=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)f.includes(c[0].slice(c[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,c.index)+"["+"a".repeat(c[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(c=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,c.index)+"["+"a".repeat(c[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(c=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,c.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(u||(d=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(s=f.call({lexer:this},e,n))?(e=e.substring(s.raw.length),n.push(s),!0):!1))){if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),o=n[n.length-1],o&&s.type==="text"&&o.type==="text"?(o.raw+=s.raw,o.text+=s.text):n.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length),o=n[n.length-1],o&&s.type==="text"&&o.type==="text"?(o.raw+=s.raw,o.text+=s.text):n.push(s);continue}if(s=this.tokenizer.emStrong(e,i,d)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),n.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),n.push(s);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline){let f=1/0;const h=e.slice(1);let g;this.options.extensions.startInline.forEach(E=>{g=E.call({lexer:this},h),typeof g=="number"&&g>=0&&(f=Math.min(f,g))}),f<1/0&&f>=0&&(a=e.substring(0,f+1))}if(s=this.tokenizer.inlineText(a)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(d=s.raw.slice(-1)),u=!0,o=n[n.length-1],o&&o.type==="text"?(o.raw+=s.raw,o.text+=s.text):n.push(s);continue}if(e){const f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return n}}class Mt{constructor(e){te(this,"options");this.options=e||Ve}code(e,n,s){var a;const o=(a=(n||"").match(/^\S*/))==null?void 0:a[0];return e=e.replace(/\n$/,"")+`
27
+ `,o?'<pre><code class="language-'+Ne(o)+'">'+(s?e:Ne(e,!0))+`</code></pre>
28
+ `:"<pre><code>"+(s?e:Ne(e,!0))+`</code></pre>
29
+ `}blockquote(e){return`<blockquote>
30
+ ${e}</blockquote>
31
+ `}html(e,n){return e}heading(e,n,s){return`<h${n}>${e}</h${n}>
32
+ `}hr(){return`<hr>
33
+ `}list(e,n,s){const o=n?"ol":"ul",a=n&&s!==1?' start="'+s+'"':"";return"<"+o+a+`>
34
+ `+e+"</"+o+`>
35
+ `}listitem(e,n,s){return`<li>${e}</li>
36
+ `}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph(e){return`<p>${e}</p>
37
+ `}table(e,n){return n&&(n=`<tbody>${n}</tbody>`),`<table>
38
+ <thead>
39
+ `+e+`</thead>
40
+ `+n+`</table>
41
+ `}tablerow(e){return`<tr>
42
+ ${e}</tr>
43
+ `}tablecell(e,n){const s=n.header?"th":"td";return(n.align?`<${s} align="${n.align}">`:`<${s}>`)+e+`</${s}>
44
+ `}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return"<br>"}del(e){return`<del>${e}</del>`}link(e,n,s){const o=$n(e);if(o===null)return s;e=o;let a='<a href="'+e+'"';return n&&(a+=' title="'+n+'"'),a+=">"+s+"</a>",a}image(e,n,s){const o=$n(e);if(o===null)return s;e=o;let a=`<img src="${e}" alt="${s}"`;return n&&(a+=` title="${n}"`),a+=">",a}text(e){return e}}class an{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,n,s){return""+s}image(e,n,s){return""+s}br(){return""}}class De{constructor(e){te(this,"options");te(this,"renderer");te(this,"textRenderer");this.options=e||Ve,this.options.renderer=this.options.renderer||new Mt,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new an}static parse(e,n){return new De(n).parse(e)}static parseInline(e,n){return new De(n).parseInline(e)}parse(e,n=!0){let s="";for(let o=0;o<e.length;o++){const a=e[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[a.type]){const i=a,c=this.options.extensions.renderers[i.type].call({parser:this},i);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(i.type)){s+=c||"";continue}}switch(a.type){case"space":continue;case"hr":{s+=this.renderer.hr();continue}case"heading":{const i=a;s+=this.renderer.heading(this.parseInline(i.tokens),i.depth,Or(this.parseInline(i.tokens,this.textRenderer)));continue}case"code":{const i=a;s+=this.renderer.code(i.text,i.lang,!!i.escaped);continue}case"table":{const i=a;let c="",u="";for(let f=0;f<i.header.length;f++)u+=this.renderer.tablecell(this.parseInline(i.header[f].tokens),{header:!0,align:i.align[f]});c+=this.renderer.tablerow(u);let d="";for(let f=0;f<i.rows.length;f++){const h=i.rows[f];u="";for(let g=0;g<h.length;g++)u+=this.renderer.tablecell(this.parseInline(h[g].tokens),{header:!1,align:i.align[g]});d+=this.renderer.tablerow(u)}s+=this.renderer.table(c,d);continue}case"blockquote":{const i=a,c=this.parse(i.tokens);s+=this.renderer.blockquote(c);continue}case"list":{const i=a,c=i.ordered,u=i.start,d=i.loose;let f="";for(let h=0;h<i.items.length;h++){const g=i.items[h],E=g.checked,M=g.task;let I="";if(g.task){const R=this.renderer.checkbox(!!E);d?g.tokens.length>0&&g.tokens[0].type==="paragraph"?(g.tokens[0].text=R+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&g.tokens[0].tokens[0].type==="text"&&(g.tokens[0].tokens[0].text=R+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:R+" "}):I+=R+" "}I+=this.parse(g.tokens,d),f+=this.renderer.listitem(I,M,!!E)}s+=this.renderer.list(f,c,u);continue}case"html":{const i=a;s+=this.renderer.html(i.text,i.block);continue}case"paragraph":{const i=a;s+=this.renderer.paragraph(this.parseInline(i.tokens));continue}case"text":{let i=a,c=i.tokens?this.parseInline(i.tokens):i.text;for(;o+1<e.length&&e[o+1].type==="text";)i=e[++o],c+=`
45
+ `+(i.tokens?this.parseInline(i.tokens):i.text);s+=n?this.renderer.paragraph(c):c;continue}default:{const i='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(i),"";throw new Error(i)}}}return s}parseInline(e,n){n=n||this.renderer;let s="";for(let o=0;o<e.length;o++){const a=e[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[a.type]){const i=this.options.extensions.renderers[a.type].call({parser:this},a);if(i!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){s+=i||"";continue}}switch(a.type){case"escape":{const i=a;s+=n.text(i.text);break}case"html":{const i=a;s+=n.html(i.text);break}case"link":{const i=a;s+=n.link(i.href,i.title,this.parseInline(i.tokens,n));break}case"image":{const i=a;s+=n.image(i.href,i.title,i.text);break}case"strong":{const i=a;s+=n.strong(this.parseInline(i.tokens,n));break}case"em":{const i=a;s+=n.em(this.parseInline(i.tokens,n));break}case"codespan":{const i=a;s+=n.codespan(i.text);break}case"br":{s+=n.br();break}case"del":{const i=a;s+=n.del(this.parseInline(i.tokens,n));break}case"text":{const i=a;s+=n.text(i.text);break}default:{const i='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(i),"";throw new Error(i)}}}return s}}class mt{constructor(e){te(this,"options");this.options=e||Ve}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}}te(mt,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class ri{constructor(...e){gr(this,Ye);te(this,"defaults",Qt());te(this,"options",this.setOptions);te(this,"parse",Jt(this,Ye,Ln).call(this,Le.lex,De.parse));te(this,"parseInline",Jt(this,Ye,Ln).call(this,Le.lexInline,De.parseInline));te(this,"Parser",De);te(this,"Renderer",Mt);te(this,"TextRenderer",an);te(this,"Lexer",Le);te(this,"Tokenizer",Rt);te(this,"Hooks",mt);this.use(...e)}walkTokens(e,n){var o,a;let s=[];for(const i of e)switch(s=s.concat(n.call(this,i)),i.type){case"table":{const c=i;for(const u of c.header)s=s.concat(this.walkTokens(u.tokens,n));for(const u of c.rows)for(const d of u)s=s.concat(this.walkTokens(d.tokens,n));break}case"list":{const c=i;s=s.concat(this.walkTokens(c.items,n));break}default:{const c=i;(a=(o=this.defaults.extensions)==null?void 0:o.childTokens)!=null&&a[c.type]?this.defaults.extensions.childTokens[c.type].forEach(u=>{const d=c[u].flat(1/0);s=s.concat(this.walkTokens(d,n))}):c.tokens&&(s=s.concat(this.walkTokens(c.tokens,n)))}}return s}use(...e){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(s=>{const o={...s};if(o.async=this.defaults.async||o.async||!1,s.extensions&&(s.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){const i=n.renderers[a.name];i?n.renderers[a.name]=function(...c){let u=a.renderer.apply(this,c);return u===!1&&(u=i.apply(this,c)),u}:n.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const i=n[a.level];i?i.unshift(a.tokenizer):n[a.level]=[a.tokenizer],a.start&&(a.level==="block"?n.startBlock?n.startBlock.push(a.start):n.startBlock=[a.start]:a.level==="inline"&&(n.startInline?n.startInline.push(a.start):n.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(n.childTokens[a.name]=a.childTokens)}),o.extensions=n),s.renderer){const a=this.defaults.renderer||new Mt(this.defaults);for(const i in s.renderer){if(!(i in a))throw new Error(`renderer '${i}' does not exist`);if(i==="options")continue;const c=i,u=s.renderer[c],d=a[c];a[c]=(...f)=>{let h=u.apply(a,f);return h===!1&&(h=d.apply(a,f)),h||""}}o.renderer=a}if(s.tokenizer){const a=this.defaults.tokenizer||new Rt(this.defaults);for(const i in s.tokenizer){if(!(i in a))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;const c=i,u=s.tokenizer[c],d=a[c];a[c]=(...f)=>{let h=u.apply(a,f);return h===!1&&(h=d.apply(a,f)),h}}o.tokenizer=a}if(s.hooks){const a=this.defaults.hooks||new mt;for(const i in s.hooks){if(!(i in a))throw new Error(`hook '${i}' does not exist`);if(i==="options")continue;const c=i,u=s.hooks[c],d=a[c];mt.passThroughHooks.has(i)?a[c]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(g=>d.call(a,g));const h=u.call(a,f);return d.call(a,h)}:a[c]=(...f)=>{let h=u.apply(a,f);return h===!1&&(h=d.apply(a,f)),h}}o.hooks=a}if(s.walkTokens){const a=this.defaults.walkTokens,i=s.walkTokens;o.walkTokens=function(c){let u=[];return u.push(i.call(this,c)),a&&(u=u.concat(a.call(this,c))),u}}this.defaults={...this.defaults,...o}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,n){return Le.lex(e,n??this.defaults)}parser(e,n){return De.parse(e,n??this.defaults)}}Ye=new WeakSet,Ln=function(e,n){return(s,o)=>{const a={...o},i={...this.defaults,...a};this.defaults.async===!0&&a.async===!1&&(i.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),i.async=!0);const c=Jt(this,Ye,mr).call(this,!!i.silent,!!i.async);if(typeof s>"u"||s===null)return c(new Error("marked(): input parameter is undefined or null"));if(typeof s!="string")return c(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(s)+", string expected"));if(i.hooks&&(i.hooks.options=i),i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(s):s).then(u=>e(u,i)).then(u=>i.hooks?i.hooks.processAllTokens(u):u).then(u=>i.walkTokens?Promise.all(this.walkTokens(u,i.walkTokens)).then(()=>u):u).then(u=>n(u,i)).then(u=>i.hooks?i.hooks.postprocess(u):u).catch(c);try{i.hooks&&(s=i.hooks.preprocess(s));let u=e(s,i);i.hooks&&(u=i.hooks.processAllTokens(u)),i.walkTokens&&this.walkTokens(u,i.walkTokens);let d=n(u,i);return i.hooks&&(d=i.hooks.postprocess(d)),d}catch(u){return c(u)}}},mr=function(e,n){return s=>{if(s.message+=`
46
+ Please report this to https://github.com/markedjs/marked.`,e){const o="<p>An error occurred:</p><pre>"+Ne(s.message+"",!0)+"</pre>";return n?Promise.resolve(o):o}if(n)return Promise.reject(s);throw s}};const Ge=new ri;function X(t,e){return Ge.parse(t,e)}X.options=X.setOptions=function(t){return Ge.setOptions(t),X.defaults=Ge.defaults,Dn(X.defaults),X},X.getDefaults=Qt,X.defaults=Ve,X.use=function(...t){return Ge.use(...t),X.defaults=Ge.defaults,Dn(X.defaults),X},X.walkTokens=function(t,e){return Ge.walkTokens(t,e)},X.parseInline=Ge.parseInline,X.Parser=De,X.parser=De.parse,X.Renderer=Mt,X.TextRenderer=an,X.Lexer=Le,X.lexer=Le.lex,X.Tokenizer=Rt,X.Hooks=mt,X.parse=X,X.options,X.setOptions,X.use,X.walkTokens,X.parseInline,De.parse,Le.lex;/*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */function Zn(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,s=Array(e);n<e;n++)s[n]=t[n];return s}function ii(t){if(Array.isArray(t))return t}function oi(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var s,o,a,i,c=[],u=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(u=(s=a.call(n)).done)&&(c.push(s.value),c.length!==e);u=!0);}catch(f){d=!0,o=f}finally{try{if(!u&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(d)throw o}}return c}}function ai(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
47
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function li(t,e){return ii(t)||oi(t,e)||ci(t,e)||ai()}function ci(t,e){if(t){if(typeof t=="string")return Zn(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Zn(t,e):void 0}}const Xn=Object.entries,jn=Object.setPrototypeOf,ui=Object.isFrozen,di=Object.getPrototypeOf,pi=Object.getOwnPropertyDescriptor;let fe=Object.freeze,ge=Object.seal,Je=Object.create,Jn=typeof Reflect<"u"&&Reflect,ln=Jn.apply,cn=Jn.construct;fe||(fe=function(e){return e}),ge||(ge=function(e){return e}),ln||(ln=function(e,n){for(var s=arguments.length,o=new Array(s>2?s-2:0),a=2;a<s;a++)o[a-2]=arguments[a];return e.apply(n,o)}),cn||(cn=function(e){for(var n=arguments.length,s=new Array(n>1?n-1:0),o=1;o<n;o++)s[o-1]=arguments[o];return new e(...s)});const Qe=ae(Array.prototype.forEach),fi=ae(Array.prototype.lastIndexOf),Qn=ae(Array.prototype.pop),et=ae(Array.prototype.push),gi=ae(Array.prototype.splice),Ue=Array.isArray,ht=ae(String.prototype.toLowerCase),un=ae(String.prototype.toString),es=ae(String.prototype.match),bt=ae(String.prototype.replace),ts=ae(String.prototype.indexOf),mi=ae(String.prototype.trim),hi=ae(Number.prototype.toString),bi=ae(Boolean.prototype.toString),ns=typeof BigInt>"u"?null:ae(BigInt.prototype.toString),ss=typeof Symbol>"u"?null:ae(Symbol.prototype.toString),ce=ae(Object.prototype.hasOwnProperty),_t=ae(Object.prototype.toString),ue=ae(RegExp.prototype.test),Ke=_i(TypeError);function ae(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,s=new Array(n>1?n-1:0),o=1;o<n;o++)s[o-1]=arguments[o];return ln(t,e,s)}}function _i(t){return function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return cn(t,n)}}function G(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ht;if(jn&&jn(t,null),!Ue(e))return t;let s=e.length;for(;s--;){let o=e[s];if(typeof o=="string"){const a=n(o);a!==o&&(ui(e)||(e[s]=a),o=a)}t[o]=!0}return t}function Ei(t){for(let e=0;e<t.length;e++)ce(t,e)||(t[e]=null);return t}function Ee(t){const e=Je(null);for(const s of Xn(t)){var n=li(s,2);const o=n[0],a=n[1];ce(t,o)&&(Ue(a)?e[o]=Ei(a):a&&typeof a=="object"&&a.constructor===Object?e[o]=Ee(a):e[o]=a)}return e}function yi(t){switch(typeof t){case"string":return t;case"number":return hi(t);case"boolean":return bi(t);case"bigint":return ns?ns(t):"0";case"symbol":return ss?ss(t):"Symbol()";case"undefined":return _t(t);case"function":case"object":{if(t===null)return _t(t);const e=t,n=ve(e,"toString");if(typeof n=="function"){const s=n(e);return typeof s=="string"?s:_t(s)}return _t(t)}default:return _t(t)}}function ve(t,e){for(;t!==null;){const s=pi(t,e);if(s){if(s.get)return ae(s.get);if(typeof s.value=="function")return ae(s.value)}t=di(t)}function n(){return null}return n}function ki(t){try{return ue(t,""),!0}catch{return!1}}const rs=fe(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),dn=fe(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),pn=fe(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Ti=fe(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),fn=fe(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Si=fe(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),is=fe(["#text"]),os=fe(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),gn=fe(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),as=fe(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Lt=fe(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),wi=ge(/{{[\w\W]*|^[\w\W]*}}/g),Ni=ge(/<%[\w\W]*|^[\w\W]*%>/g),xi=ge(/\${[\w\W]*/g),Ai=ge(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ri=ge(/^aria-[\-\w]+$/),ls=ge(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Oi=ge(/^(?:\w+script|data):/i),Ii=ge(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ci=ge(/^html$/i),Mi=ge(/^[a-z][.\w]*(-[.\w]+)+$/i),cs=ge(/<[/\w!]/g),us=ge(/<[/\w]/g),Li=ge(/<\/no(script|embed|frames)/i),Di=ge(/\/>/i),xe={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},vi=function(){return typeof window>"u"?null:window},Bi=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let s=null;const o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(s=n.getAttribute(o));const a="dompurify"+(s?"#"+s:"");try{return e.createPolicy(a,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},ds=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ze=function(e,n,s,o){return ce(e,n)&&Ue(e[n])?G(o.base?Ee(o.base):{},e[n],o.transform):s};function ps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:vi();const e=y=>ps(y);if(e.version="3.4.12",e.removed=[],!t||!t.document||t.document.nodeType!==xe.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const s=n,o=s.currentScript;t.DocumentFragment;const a=t.HTMLTemplateElement,i=t.Node,c=t.Element,u=t.NodeFilter,d=t.NamedNodeMap;d===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const f=t.DOMParser,h=t.trustedTypes,g=c.prototype,E=ve(g,"cloneNode"),M=ve(g,"remove"),I=ve(g,"nextSibling"),R=ve(g,"childNodes"),P=ve(g,"parentNode"),N=ve(g,"shadowRoot"),H=ve(g,"attributes"),T=i&&i.prototype?ve(i.prototype,"nodeType"):null,B=i&&i.prototype?ve(i.prototype,"nodeName"):null;if(typeof a=="function"){const y=n.createElement("template");y.content&&y.content.ownerDocument&&(n=y.content.ownerDocument)}let _,C="",L,K=!1,he=0;const me=function(){if(he>0)throw Ke('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},O=function(l){me(),he++;try{return _.createHTML(l)}finally{he--}},V=function(l){me(),he++;try{return _.createScriptURL(l)}finally{he--}},W=function(){return K||(L=Bi(h,o),K=!0),L},le=n,m=le.implementation,S=le.createNodeIterator,w=le.createDocumentFragment,F=le.getElementsByTagName,q=s.importNode;let U=ds();e.isSupported=typeof Xn=="function"&&typeof P=="function"&&m&&m.createHTMLDocument!==void 0;const pe=wi,Ae=Ni,ye=xi,Re=Ai,Ft=Ri,Ht=Oi,Tt=Ii,yn=Mi;let Vt=ls,ne=null;const Gt=G({},[...rs,...dn,...pn,...fn,...is]);let ee=null;const St=G({},[...os,...gn,...as,...Lt]);let Y=Object.seal(Je(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ze=null,rt=null;const D=Object.seal(Je(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let wt=!0,oe=!0,j=!1,Xe=!0,be=!1,Oe=!0,Ie=!1,k=!1,A=null,z=null,Z=!1,se=!1,Se=!1,it=!1,Kt=!0,js=!1;const Js="user-content-";let kn=!0,Tn=!1,ot={},Be=null;const Sn=G({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Qs=null;const er=G({},["audio","video","img","source","image","track"]);let wn=null;const tr=G({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Wt="http://www.w3.org/1998/Math/MathML",qt="http://www.w3.org/2000/svg",Pe="http://www.w3.org/1999/xhtml";let at=Pe,Nn=!1,xn=null;const oc=G({},[Wt,qt,Pe],un),nr=fe(["mi","mo","mn","ms","mtext"]);let An=G({},nr);const sr=fe(["annotation-xml"]);let Rn=G({},sr);const ac=G({},["title","style","font","a","script"]);let Nt=null;const lc=["application/xhtml+xml","text/html"],cc="text/html";let re=null,lt=null;const uc=n.createElement("form"),rr=function(l){return l instanceof RegExp||l instanceof Function},On=function(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(lt&&lt===l)return;(!l||typeof l!="object")&&(l={}),l=Ee(l),Nt=lc.indexOf(l.PARSER_MEDIA_TYPE)===-1?cc:l.PARSER_MEDIA_TYPE,re=Nt==="application/xhtml+xml"?un:ht,ne=ze(l,"ALLOWED_TAGS",Gt,{transform:re}),ee=ze(l,"ALLOWED_ATTR",St,{transform:re}),xn=ze(l,"ALLOWED_NAMESPACES",oc,{transform:un}),wn=ze(l,"ADD_URI_SAFE_ATTR",tr,{transform:re,base:tr}),Qs=ze(l,"ADD_DATA_URI_TAGS",er,{transform:re,base:er}),Be=ze(l,"FORBID_CONTENTS",Sn,{transform:re}),Ze=ze(l,"FORBID_TAGS",Ee({}),{transform:re}),rt=ze(l,"FORBID_ATTR",Ee({}),{transform:re}),ot=ce(l,"USE_PROFILES")?l.USE_PROFILES&&typeof l.USE_PROFILES=="object"?Ee(l.USE_PROFILES):l.USE_PROFILES:!1,wt=l.ALLOW_ARIA_ATTR!==!1,oe=l.ALLOW_DATA_ATTR!==!1,j=l.ALLOW_UNKNOWN_PROTOCOLS||!1,Xe=l.ALLOW_SELF_CLOSE_IN_ATTR!==!1,be=l.SAFE_FOR_TEMPLATES||!1,Oe=l.SAFE_FOR_XML!==!1,Ie=l.WHOLE_DOCUMENT||!1,se=l.RETURN_DOM||!1,Se=l.RETURN_DOM_FRAGMENT||!1,it=l.RETURN_TRUSTED_TYPE||!1,Z=l.FORCE_BODY||!1,Kt=l.SANITIZE_DOM!==!1,js=l.SANITIZE_NAMED_PROPS||!1,kn=l.KEEP_CONTENT!==!1,Tn=l.IN_PLACE||!1,Vt=ki(l.ALLOWED_URI_REGEXP)?l.ALLOWED_URI_REGEXP:ls,at=typeof l.NAMESPACE=="string"?l.NAMESPACE:Pe,An=ce(l,"MATHML_TEXT_INTEGRATION_POINTS")&&l.MATHML_TEXT_INTEGRATION_POINTS&&typeof l.MATHML_TEXT_INTEGRATION_POINTS=="object"?Ee(l.MATHML_TEXT_INTEGRATION_POINTS):G({},nr),Rn=ce(l,"HTML_INTEGRATION_POINTS")&&l.HTML_INTEGRATION_POINTS&&typeof l.HTML_INTEGRATION_POINTS=="object"?Ee(l.HTML_INTEGRATION_POINTS):G({},sr);const p=ce(l,"CUSTOM_ELEMENT_HANDLING")&&l.CUSTOM_ELEMENT_HANDLING&&typeof l.CUSTOM_ELEMENT_HANDLING=="object"?Ee(l.CUSTOM_ELEMENT_HANDLING):Je(null);if(Y=Je(null),ce(p,"tagNameCheck")&&rr(p.tagNameCheck)&&(Y.tagNameCheck=p.tagNameCheck),ce(p,"attributeNameCheck")&&rr(p.attributeNameCheck)&&(Y.attributeNameCheck=p.attributeNameCheck),ce(p,"allowCustomizedBuiltInElements")&&typeof p.allowCustomizedBuiltInElements=="boolean"&&(Y.allowCustomizedBuiltInElements=p.allowCustomizedBuiltInElements),ge(Y),be&&(oe=!1),Se&&(se=!0),ot&&(ne=G({},is),ee=Je(null),ot.html===!0&&(G(ne,rs),G(ee,os)),ot.svg===!0&&(G(ne,dn),G(ee,gn),G(ee,Lt)),ot.svgFilters===!0&&(G(ne,pn),G(ee,gn),G(ee,Lt)),ot.mathMl===!0&&(G(ne,fn),G(ee,as),G(ee,Lt))),D.tagCheck=null,D.attributeCheck=null,ce(l,"ADD_TAGS")&&(typeof l.ADD_TAGS=="function"?D.tagCheck=l.ADD_TAGS:Ue(l.ADD_TAGS)&&(ne===Gt&&(ne=Ee(ne)),G(ne,l.ADD_TAGS,re))),ce(l,"ADD_ATTR")&&(typeof l.ADD_ATTR=="function"?D.attributeCheck=l.ADD_ATTR:Ue(l.ADD_ATTR)&&(ee===St&&(ee=Ee(ee)),G(ee,l.ADD_ATTR,re))),ce(l,"ADD_URI_SAFE_ATTR")&&Ue(l.ADD_URI_SAFE_ATTR)&&G(wn,l.ADD_URI_SAFE_ATTR,re),ce(l,"FORBID_CONTENTS")&&Ue(l.FORBID_CONTENTS)&&(Be===Sn&&(Be=Ee(Be)),G(Be,l.FORBID_CONTENTS,re)),ce(l,"ADD_FORBID_CONTENTS")&&Ue(l.ADD_FORBID_CONTENTS)&&(Be===Sn&&(Be=Ee(Be)),G(Be,l.ADD_FORBID_CONTENTS,re)),kn&&(ne["#text"]=!0),Ie&&G(ne,["html","head","body"]),ne.table&&(G(ne,["tbody"]),delete Ze.tbody),l.TRUSTED_TYPES_POLICY){if(typeof l.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof l.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const b=_;_=l.TRUSTED_TYPES_POLICY;try{C=O("")}catch(x){throw _=b,x}}else l.TRUSTED_TYPES_POLICY===null?(_=void 0,C=""):(_===void 0&&(_=W()),_&&typeof C=="string"&&(C=O("")));fe&&fe(l),lt=l},ir=G({},[...dn,...pn,...Ti]),or=G({},[...fn,...Si]),dc=function(l,p,b){return p.namespaceURI===Pe?l==="svg":p.namespaceURI===Wt?l==="svg"&&(b==="annotation-xml"||An[b]):!!ir[l]},pc=function(l,p,b){return p.namespaceURI===Pe?l==="math":p.namespaceURI===qt?l==="math"&&Rn[b]:!!or[l]},fc=function(l,p,b){return p.namespaceURI===qt&&!Rn[b]||p.namespaceURI===Wt&&!An[b]?!1:!or[l]&&(ac[l]||!ir[l])},gc=function(l){let p=P(l);(!p||!p.tagName)&&(p={namespaceURI:at,tagName:"template"});const b=ht(l.tagName),x=ht(p.tagName);return xn[l.namespaceURI]?l.namespaceURI===qt?dc(b,p,x):l.namespaceURI===Wt?pc(b,p,x):l.namespaceURI===Pe?fc(b,p,x):!!(Nt==="application/xhtml+xml"&&xn[l.namespaceURI]):!1},He=function(l){et(e.removed,{element:l});try{P(l).removeChild(l)}catch{if(M(l),!P(l))throw Ke("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Yt=function(l){In(l);const p=R(l);if(p){const x=[];Qe(p,v=>{et(x,v)}),Qe(x,v=>{try{M(v)}catch{}})}const b=H(l);if(b)for(let x=b.length-1;x>=0;--x){const v=b[x],$=v&&v.name;if(typeof $=="string")try{l.removeAttribute($)}catch{}}},je=function(l,p){try{et(e.removed,{attribute:p.getAttributeNode(l),from:p})}catch{et(e.removed,{attribute:null,from:p})}if(p.removeAttribute(l),l==="is")if(se||Se)try{He(p)}catch{}else try{p.setAttribute(l,"")}catch{}},mc=function(l){const p=H(l);if(p)for(let b=p.length-1;b>=0;--b){const x=p[b],v=x&&x.name;if(!(typeof v!="string"||ee[re(v)]))try{l.removeAttribute(v)}catch{}}},In=function(l){const p=[l];for(;p.length>0;){const b=p.pop();(T?T(b):b.nodeType)===xe.element&&mc(b);const v=R(b);if(v)for(let $=v.length-1;$>=0;--$)p.push(v[$])}},hc=function(l){if(!Oe)return;const p=[l];for(;p.length>0;){const b=p.pop(),x=T?T(b):b.nodeType;if(x===xe.processingInstruction||x===xe.comment&&ue(us,b.data)){try{M(b)}catch{}continue}if(x===xe.element){const $=b,ie=re(B?B(b):b.nodeName);try{$.hasAttribute&&$.hasAttribute("patchsrc")&&$.removeAttribute("patchsrc"),$.hasAttribute&&$.hasAttribute("for")&&ie!=="label"&&ie!=="output"&&$.removeAttribute("for")}catch{}}const v=R(b);if(v)for(let $=v.length-1;$>=0;--$)p.push(v[$])}},ar=function(l){let p=null,b=null;if(Z)l="<remove></remove>"+l;else{const $=es(l,/^[\r\n\t ]+/);b=$&&$[0]}Nt==="application/xhtml+xml"&&at===Pe&&(l='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+l+"</body></html>");const x=_?O(l):l;if(at===Pe)try{p=new f().parseFromString(x,Nt)}catch{}if(!p||!p.documentElement){p=m.createDocument(at,"template",null);try{p.documentElement.innerHTML=Nn?C:x}catch{}}const v=p.body||p.documentElement;return l&&b&&v.insertBefore(n.createTextNode(b),v.childNodes[0]||null),at===Pe?F.call(p,Ie?"html":"body")[0]:Ie?p.documentElement:v},lr=function(l){return S.call(l.ownerDocument||l,l,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Zt=function(l){return l=bt(l,pe," "),l=bt(l,Ae," "),l=bt(l,ye," "),l},Cn=function(l){var p;l.normalize();const b=S.call(l.ownerDocument||l,l,u.SHOW_TEXT|u.SHOW_COMMENT|u.SHOW_CDATA_SECTION|u.SHOW_PROCESSING_INSTRUCTION,null);let x=b.nextNode();for(;x;)x.data=Zt(x.data),x=b.nextNode();const v=(p=l.querySelectorAll)===null||p===void 0?void 0:p.call(l,"template");v&&Qe(v,$=>{ct($.content)&&Cn($.content)})},Xt=function(l){const p=B?B(l):null;return typeof p!="string"||re(p)!=="form"?!1:typeof l.nodeName!="string"||typeof l.textContent!="string"||typeof l.removeChild!="function"||l.attributes!==H(l)||typeof l.removeAttribute!="function"||typeof l.setAttribute!="function"||typeof l.namespaceURI!="string"||typeof l.insertBefore!="function"||typeof l.hasChildNodes!="function"||l.nodeType!==T(l)||l.childNodes!==R(l)},ct=function(l){if(!T||typeof l!="object"||l===null)return!1;try{return T(l)===xe.documentFragment}catch{return!1}},xt=function(l){if(!T||typeof l!="object"||l===null)return!1;try{return typeof T(l)=="number"}catch{return!1}};function $e(y,l,p){y.length!==0&&Qe(y,b=>{b.call(e,l,p,lt)})}const bc=function(l,p){return!!(Oe&&l.hasChildNodes()&&!xt(l.firstElementChild)&&ue(cs,l.textContent)&&ue(cs,l.innerHTML)||Oe&&l.namespaceURI===Pe&&p==="style"&&xt(l.firstElementChild)||l.nodeType===xe.processingInstruction||Oe&&l.nodeType===xe.comment&&ue(us,l.data))},_c=function(l,p){if(!Ze[p]&&dr(p)&&(Y.tagNameCheck instanceof RegExp&&ue(Y.tagNameCheck,p)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(p)))return!1;if(kn&&!Be[p]){const b=P(l),x=R(l);if(x&&b){const v=x.length;for(let $=v-1;$>=0;--$){const ie=Tn?x[$]:E(x[$],!0);b.insertBefore(ie,I(l))}}}return He(l),!0},cr=function(l,p){if($e(U.beforeSanitizeElements,l,null),l!==p&&P(l)===null)return!0;if(Xt(l))return He(l),!0;const b=re(B?B(l):l.nodeName);if($e(U.uponSanitizeElement,l,{tagName:b,allowedTags:ne}),l!==p&&P(l)===null)return!0;if(bc(l,b))return He(l),!0;if(Ze[b]||!(D.tagCheck instanceof Function&&D.tagCheck(b))&&!ne[b]){const v=_c(l,b);return v===!1&&$e(U.afterSanitizeElements,l,null),v}if((T?T(l):l.nodeType)===xe.element&&!gc(l)||(b==="noscript"||b==="noembed"||b==="noframes")&&ue(Li,l.innerHTML))return He(l),!0;if(be&&l.nodeType===xe.text){const v=Zt(l.textContent);l.textContent!==v&&(et(e.removed,{element:l.cloneNode()}),l.textContent=v)}return $e(U.afterSanitizeElements,l,null),!1},ur=function(l,p,b){if(rt[p]||Oe&&p==="patchsrc"||Oe&&p==="for"&&l!=="label"&&l!=="output"||Kt&&(p==="id"||p==="name")&&(b in n||b in uc))return!1;const x=ee[p]||D.attributeCheck instanceof Function&&D.attributeCheck(p,l);if(!(oe&&ue(Re,p))){if(!(wt&&ue(Ft,p))){if(x){if(!wn[p]){if(!ue(Vt,bt(b,Tt,""))){if(!((p==="src"||p==="xlink:href"||p==="href")&&l!=="script"&&ts(b,"data:")===0&&Qs[l])){if(!(j&&!ue(Ht,bt(b,Tt,"")))){if(b)return!1}}}}}else if(!(dr(l)&&(Y.tagNameCheck instanceof RegExp&&ue(Y.tagNameCheck,l)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(l))&&(Y.attributeNameCheck instanceof RegExp&&ue(Y.attributeNameCheck,p)||Y.attributeNameCheck instanceof Function&&Y.attributeNameCheck(p,l))||p==="is"&&Y.allowCustomizedBuiltInElements&&(Y.tagNameCheck instanceof RegExp&&ue(Y.tagNameCheck,b)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(b))))return!1}}return!0},Ec=G({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),dr=function(l){return!Ec[ht(l)]&&ue(yn,l)},yc=function(l,p,b,x){if(_&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!b)switch(h.getAttributeType(l,p)){case"TrustedHTML":return O(x);case"TrustedScriptURL":return V(x)}return x},kc=function(l,p,b,x){try{b?l.setAttributeNS(b,p,x):l.setAttribute(p,x),Xt(l)?He(l):Qn(e.removed)}catch{je(p,l)}},pr=function(l){$e(U.beforeSanitizeAttributes,l,null);const p=l.attributes;if(!p||Xt(l))return;const b={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ee,forceKeepAttr:void 0};let x=p.length;const v=re(l.nodeName);for(;x--;){const $=p[x],ie=$.name,_e=$.namespaceURI,Ce=$.value,we=re(ie),Me=Ce;let ke=ie==="value"?Me:mi(Me);if(b.attrName=we,b.attrValue=ke,b.keepAttr=!0,b.forceKeepAttr=void 0,$e(U.uponSanitizeAttribute,l,b),ke=b.attrValue,js&&(we==="id"||we==="name")&&ts(ke,Js)!==0&&(je(ie,l),ke=Js+ke),Oe&&ue(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ke)){je(ie,l);continue}if(we==="attributename"&&es(ke,"href")){je(ie,l);continue}if(!b.forceKeepAttr){if(!b.keepAttr){je(ie,l);continue}if(!Xe&&ue(Di,ke)){je(ie,l);continue}if(be&&(ke=Zt(ke)),!ur(v,we,ke)){je(ie,l);continue}ke=yc(v,we,_e,ke),ke!==Me&&kc(l,ie,_e,ke)}}$e(U.afterSanitizeAttributes,l,null)},jt=function(l){let p=null;const b=lr(l);for($e(U.beforeSanitizeShadowDOM,l,null);p=b.nextNode();)if($e(U.uponSanitizeShadowNode,p,null),cr(p,l),pr(p),ct(p.content)&&jt(p.content),(T?T(p):p.nodeType)===xe.element){const v=N(p);ct(v)&&(Mn(v),jt(v))}$e(U.afterSanitizeShadowDOM,l,null)},Mn=function(l){const p=[{node:l,shadow:null}];for(;p.length>0;){const b=p.pop();if(b.shadow){jt(b.shadow);continue}const x=b.node,$=(T?T(x):x.nodeType)===xe.element,ie=R(x);if(ie)for(let _e=ie.length-1;_e>=0;--_e)p.push({node:ie[_e],shadow:null});if($){const _e=B?B(x):null;if(typeof _e=="string"&&re(_e)==="template"){const Ce=x.content;ct(Ce)&&p.push({node:Ce,shadow:null})}}if($){const _e=N(x);ct(_e)&&p.push({node:null,shadow:_e},{node:_e,shadow:null})}}};return e.sanitize=function(y){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=null,b=null,x=null,v=null;if(Nn=!y,Nn&&(y="<!-->"),typeof y!="string"&&!xt(y)&&(y=yi(y),typeof y!="string"))throw Ke("dirty is not a string, aborting");if(!e.isSupported)return y;k?(ne=A,ee=z):On(l),(U.uponSanitizeElement.length>0||U.uponSanitizeAttribute.length>0)&&(ne=Ee(ne)),U.uponSanitizeAttribute.length>0&&(ee=Ee(ee)),e.removed=[];const $=Tn&&typeof y!="string"&&xt(y);if($){hc(y);const we=B?B(y):y.nodeName;if(typeof we=="string"){const Me=re(we);if(!ne[Me]||Ze[Me])throw Yt(y),Ke("root node is forbidden and cannot be sanitized in-place")}if(Xt(y))throw Yt(y),Ke("root node is clobbered and cannot be sanitized in-place");try{Mn(y)}catch(Me){throw Yt(y),Me}}else if(xt(y))p=ar("<!---->"),b=p.ownerDocument.importNode(y,!0),b.nodeType===xe.element&&b.nodeName==="BODY"||b.nodeName==="HTML"?p=b:p.appendChild(b),Mn(b);else{if(!se&&!be&&!Ie&&y.indexOf("<")===-1)return _&&it?O(y):y;if(p=ar(y),!p)return se?null:it?C:""}p&&Z&&He(p.firstChild);const ie=$?y:p,_e=lr(ie);try{for(;x=_e.nextNode();)cr(x,ie),pr(x),ct(x.content)&&jt(x.content)}catch(we){throw $&&(Yt(y),Qe(e.removed,Me=>{Me.element&&In(Me.element)})),we}if($)return Qe(e.removed,we=>{we.element&&In(we.element)}),be&&Cn(y),y;if(se){if(be&&Cn(p),Se)for(v=w.call(p.ownerDocument);p.firstChild;)v.appendChild(p.firstChild);else v=p;return(ee.shadowroot||ee.shadowrootmode)&&(v=q.call(s,v,!0)),v}let Ce=Ie?p.outerHTML:p.innerHTML;return Ie&&ne["!doctype"]&&p.ownerDocument&&p.ownerDocument.doctype&&p.ownerDocument.doctype.name&&ue(Ci,p.ownerDocument.doctype.name)&&(Ce="<!DOCTYPE "+p.ownerDocument.doctype.name+`>
48
+ `+Ce),be&&(Ce=Zt(Ce)),_&&it?O(Ce):Ce},e.setConfig=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};On(y),k=!0,A=ne,z=ee},e.clearConfig=function(){lt=null,k=!1,A=null,z=null,_=L,C=""},e.isValidAttribute=function(y,l,p){lt||On({});const b=re(y),x=re(l);return ur(b,x,p)},e.addHook=function(y,l){typeof l=="function"&&ce(U,y)&&et(U[y],l)},e.removeHook=function(y,l){if(ce(U,y)){if(l!==void 0){const p=fi(U[y],l);return p===-1?void 0:gi(U[y],p,1)[0]}return Qn(U[y])}},e.removeHooks=function(y){ce(U,y)&&(U[y]=[])},e.removeAllHooks=function(){U=ds()},e}var Pi=ps();function $i(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function fs(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(e=>{const n=t[e],s=typeof n;(s==="object"||s==="function")&&!Object.isFrozen(n)&&fs(n)}),t}class gs{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function ms(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Fe(t,...e){const n=Object.create(null);for(const s in t)n[s]=t[s];return e.forEach(function(s){for(const o in s)n[o]=s[o]}),n}const Ui="</span>",hs=t=>!!t.scope,zi=(t,{prefix:e})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const n=t.split(".");return[`${e}${n.shift()}`,...n.map((s,o)=>`${s}${"_".repeat(o+1)}`)].join(" ")}return`${e}${t}`};class Fi{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=ms(e)}openNode(e){if(!hs(e))return;const n=zi(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){hs(e)&&(this.buffer+=Ui)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const bs=(t={})=>{const e={children:[]};return Object.assign(e,t),e};class mn{constructor(){this.rootNode=bs(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=bs({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return typeof n=="string"?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(s=>this._walk(e,s)),e.closeNode(n)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(n=>typeof n=="string")?e.children=[e.children.join("")]:e.children.forEach(n=>{mn._collapse(n)}))}}class Hi extends mn{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,n){const s=e.root;n&&(s.scope=`language:${n}`),this.add(s)}toHTML(){return new Fi(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Et(t){return t?typeof t=="string"?t:t.source:null}function _s(t){return We("(?=",t,")")}function Vi(t){return We("(?:",t,")*")}function Gi(t){return We("(?:",t,")?")}function We(...t){return t.map(n=>Et(n)).join("")}function Ki(t){const e=t[t.length-1];return typeof e=="object"&&e.constructor===Object?(t.splice(t.length-1,1),e):{}}function hn(...t){return"("+(Ki(t).capture?"":"?:")+t.map(s=>Et(s)).join("|")+")"}function Es(t){return new RegExp(t.toString()+"|").exec("").length-1}function Wi(t,e){const n=t&&t.exec(e);return n&&n.index===0}const qi=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function bn(t,{joinWith:e}){let n=0;return t.map(s=>{n+=1;const o=n;let a=Et(s),i="";for(;a.length>0;){const c=qi.exec(a);if(!c){i+=a;break}i+=a.substring(0,c.index),a=a.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?i+="\\"+String(Number(c[1])+o):(i+=c[0],c[0]==="("&&n++)}return i}).map(s=>`(${s})`).join(e)}const Yi=/\b\B/,ys="[a-zA-Z]\\w*",_n="[a-zA-Z_]\\w*",ks="\\b\\d+(\\.\\d+)?",Ts="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Ss="\\b(0b[01]+)",Zi="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Xi=(t={})=>{const e=/^#![ ]*\//;return t.binary&&(t.begin=We(e,/.*\b/,t.binary,/\b.*/)),Fe({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(n,s)=>{n.index!==0&&s.ignoreMatch()}},t)},yt={begin:"\\\\[\\s\\S]",relevance:0},ji={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yt]},Ji={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yt]},Qi={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/},Dt=function(t,e,n={}){const s=Fe({scope:"comment",begin:t,end:e,contains:[]},n);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const o=hn("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,}/);return s.contains.push({begin:We(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},eo=Dt("//","$"),to=Dt("/\\*","\\*/"),no=Dt("#","$"),so={scope:"number",begin:ks,relevance:0},ro={scope:"number",begin:Ts,relevance:0},io={scope:"number",begin:Ss,relevance:0},oo={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yt,{begin:/\[/,end:/\]/,relevance:0,contains:[yt]}]},ao={scope:"title",begin:ys,relevance:0},lo={scope:"title",begin:_n,relevance:0},co={begin:"\\.\\s*"+_n,relevance:0};var vt=Object.freeze({__proto__:null,APOS_STRING_MODE:ji,BACKSLASH_ESCAPE:yt,BINARY_NUMBER_MODE:io,BINARY_NUMBER_RE:Ss,COMMENT:Dt,C_BLOCK_COMMENT_MODE:to,C_LINE_COMMENT_MODE:eo,C_NUMBER_MODE:ro,C_NUMBER_RE:Ts,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:no,IDENT_RE:ys,MATCH_NOTHING_RE:Yi,METHOD_GUARD:co,NUMBER_MODE:so,NUMBER_RE:ks,PHRASAL_WORDS_MODE:Qi,QUOTE_STRING_MODE:Ji,REGEXP_MODE:oo,RE_STARTERS_RE:Zi,SHEBANG:Xi,TITLE_MODE:ao,UNDERSCORE_IDENT_RE:_n,UNDERSCORE_TITLE_MODE:lo});function uo(t,e){t.input[t.index-1]==="."&&e.ignoreMatch()}function po(t,e){t.className!==void 0&&(t.scope=t.className,delete t.className)}function fo(t,e){e&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=uo,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function go(t,e){Array.isArray(t.illegal)&&(t.illegal=hn(...t.illegal))}function mo(t,e){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function ho(t,e){t.relevance===void 0&&(t.relevance=1)}const bo=(t,e)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},t);Object.keys(t).forEach(s=>{delete t[s]}),t.keywords=n.keywords,t.begin=We(n.beforeMatch,_s(n.begin)),t.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},t.relevance=0,delete n.beforeMatch},_o=["of","and","for","in","not","or","if","then","parent","list","value"],Eo="keyword";function ws(t,e,n=Eo){const s=Object.create(null);return typeof t=="string"?o(n,t.split(" ")):Array.isArray(t)?o(n,t):Object.keys(t).forEach(function(a){Object.assign(s,ws(t[a],e,a))}),s;function o(a,i){e&&(i=i.map(c=>c.toLowerCase())),i.forEach(function(c){const u=c.split("|");s[u[0]]=[a,yo(u[0],u[1])]})}}function yo(t,e){return e?Number(e):ko(t)?0:1}function ko(t){return _o.includes(t.toLowerCase())}const Ns={},qe=t=>{console.error(t)},xs=(t,...e)=>{console.log(`WARN: ${t}`,...e)},tt=(t,e)=>{Ns[`${t}/${e}`]||(console.log(`Deprecated as of ${t}. ${e}`),Ns[`${t}/${e}`]=!0)},Bt=new Error;function As(t,e,{key:n}){let s=0;const o=t[n],a={},i={};for(let c=1;c<=e.length;c++)i[c+s]=o[c],a[c+s]=!0,s+=Es(e[c-1]);t[n]=i,t[n]._emit=a,t[n]._multi=!0}function To(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw qe("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Bt;if(typeof t.beginScope!="object"||t.beginScope===null)throw qe("beginScope must be object"),Bt;As(t,t.begin,{key:"beginScope"}),t.begin=bn(t.begin,{joinWith:""})}}function So(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw qe("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Bt;if(typeof t.endScope!="object"||t.endScope===null)throw qe("endScope must be object"),Bt;As(t,t.end,{key:"endScope"}),t.end=bn(t.end,{joinWith:""})}}function wo(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function No(t){wo(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),To(t),So(t)}function xo(t){function e(i,c){return new RegExp(Et(i),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(c?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=Es(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const c=this.regexes.map(u=>u[1]);this.matcherRe=e(bn(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;const u=this.matcherRe.exec(c);if(!u)return null;const d=u.findIndex((h,g)=>g>0&&h!==void 0),f=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,f)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];const u=new n;return this.rules.slice(c).forEach(([d,f])=>u.addRule(d,f)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){const u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){const f=this.getMatcher(0);f.lastIndex=this.lastIndex+1,d=f.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function o(i){const c=new s;return i.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),i.terminatorEnd&&c.addRule(i.terminatorEnd,{type:"end"}),i.illegal&&c.addRule(i.illegal,{type:"illegal"}),c}function a(i,c){const u=i;if(i.isCompiled)return u;[po,mo,No,bo].forEach(f=>f(i,c)),t.compilerExtensions.forEach(f=>f(i,c)),i.__beforeBegin=null,[fo,go,ho].forEach(f=>f(i,c)),i.isCompiled=!0;let d=null;return typeof i.keywords=="object"&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),d=i.keywords.$pattern,delete i.keywords.$pattern),d=d||/\w+/,i.keywords&&(i.keywords=ws(i.keywords,t.case_insensitive)),u.keywordPatternRe=e(d,!0),c&&(i.begin||(i.begin=/\B|\b/),u.beginRe=e(u.begin),!i.end&&!i.endsWithParent&&(i.end=/\B|\b/),i.end&&(u.endRe=e(u.end)),u.terminatorEnd=Et(u.end)||"",i.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(i.end?"|":"")+c.terminatorEnd)),i.illegal&&(u.illegalRe=e(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map(function(f){return Ao(f==="self"?i:f)})),i.contains.forEach(function(f){a(f,u)}),i.starts&&a(i.starts,c),u.matcher=o(u),u}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=Fe(t.classNameAliases||{}),a(t)}function Rs(t){return t?t.endsWithParent||Rs(t.starts):!1}function Ao(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return Fe(t,{variants:null},e)})),t.cachedVariants?t.cachedVariants:Rs(t)?Fe(t,{starts:t.starts?Fe(t.starts):null}):Object.isFrozen(t)?Fe(t):t}var Ro="11.11.1";class Oo extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const En=ms,Os=Fe,Is=Symbol("nomatch"),Io=7,Cs=function(t){const e=Object.create(null),n=Object.create(null),s=[];let o=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",i={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Hi};function u(m){return c.noHighlightRe.test(m)}function d(m){let S=m.className+" ";S+=m.parentNode?m.parentNode.className:"";const w=c.languageDetectRe.exec(S);if(w){const F=L(w[1]);return F||(xs(a.replace("{}",w[1])),xs("Falling back to no-highlight mode for this block.",m)),F?w[1]:"no-highlight"}return S.split(/\s+/).find(F=>u(F)||L(F))}function f(m,S,w){let F="",q="";typeof S=="object"?(F=m,w=S.ignoreIllegals,q=S.language):(tt("10.7.0","highlight(lang, code, ...args) has been deprecated."),tt("10.7.0",`Please use highlight(code, options) instead.
49
+ https://github.com/highlightjs/highlight.js/issues/2277`),q=m,F=S),w===void 0&&(w=!0);const U={code:F,language:q};W("before:highlight",U);const pe=U.result?U.result:h(U.language,U.code,w);return pe.code=U.code,W("after:highlight",pe),pe}function h(m,S,w,F){const q=Object.create(null);function U(k,A){return k.keywords[A]}function pe(){if(!D.keywords){oe.addText(j);return}let k=0;D.keywordPatternRe.lastIndex=0;let A=D.keywordPatternRe.exec(j),z="";for(;A;){z+=j.substring(k,A.index);const Z=Y.case_insensitive?A[0].toLowerCase():A[0],se=U(D,Z);if(se){const[Se,it]=se;if(oe.addText(z),z="",q[Z]=(q[Z]||0)+1,q[Z]<=Io&&(Xe+=it),Se.startsWith("_"))z+=A[0];else{const Kt=Y.classNameAliases[Se]||Se;Re(A[0],Kt)}}else z+=A[0];k=D.keywordPatternRe.lastIndex,A=D.keywordPatternRe.exec(j)}z+=j.substring(k),oe.addText(z)}function Ae(){if(j==="")return;let k=null;if(typeof D.subLanguage=="string"){if(!e[D.subLanguage]){oe.addText(j);return}k=h(D.subLanguage,j,!0,wt[D.subLanguage]),wt[D.subLanguage]=k._top}else k=E(j,D.subLanguage.length?D.subLanguage:null);D.relevance>0&&(Xe+=k.relevance),oe.__addSublanguage(k._emitter,k.language)}function ye(){D.subLanguage!=null?Ae():pe(),j=""}function Re(k,A){k!==""&&(oe.startScope(A),oe.addText(k),oe.endScope())}function Ft(k,A){let z=1;const Z=A.length-1;for(;z<=Z;){if(!k._emit[z]){z++;continue}const se=Y.classNameAliases[k[z]]||k[z],Se=A[z];se?Re(Se,se):(j=Se,pe(),j=""),z++}}function Ht(k,A){return k.scope&&typeof k.scope=="string"&&oe.openNode(Y.classNameAliases[k.scope]||k.scope),k.beginScope&&(k.beginScope._wrap?(Re(j,Y.classNameAliases[k.beginScope._wrap]||k.beginScope._wrap),j=""):k.beginScope._multi&&(Ft(k.beginScope,A),j="")),D=Object.create(k,{parent:{value:D}}),D}function Tt(k,A,z){let Z=Wi(k.endRe,z);if(Z){if(k["on:end"]){const se=new gs(k);k["on:end"](A,se),se.isMatchIgnored&&(Z=!1)}if(Z){for(;k.endsParent&&k.parent;)k=k.parent;return k}}if(k.endsWithParent)return Tt(k.parent,A,z)}function yn(k){return D.matcher.regexIndex===0?(j+=k[0],1):(Ie=!0,0)}function Vt(k){const A=k[0],z=k.rule,Z=new gs(z),se=[z.__beforeBegin,z["on:begin"]];for(const Se of se)if(Se&&(Se(k,Z),Z.isMatchIgnored))return yn(A);return z.skip?j+=A:(z.excludeBegin&&(j+=A),ye(),!z.returnBegin&&!z.excludeBegin&&(j=A)),Ht(z,k),z.returnBegin?0:A.length}function ne(k){const A=k[0],z=S.substring(k.index),Z=Tt(D,k,z);if(!Z)return Is;const se=D;D.endScope&&D.endScope._wrap?(ye(),Re(A,D.endScope._wrap)):D.endScope&&D.endScope._multi?(ye(),Ft(D.endScope,k)):se.skip?j+=A:(se.returnEnd||se.excludeEnd||(j+=A),ye(),se.excludeEnd&&(j=A));do D.scope&&oe.closeNode(),!D.skip&&!D.subLanguage&&(Xe+=D.relevance),D=D.parent;while(D!==Z.parent);return Z.starts&&Ht(Z.starts,k),se.returnEnd?0:A.length}function Gt(){const k=[];for(let A=D;A!==Y;A=A.parent)A.scope&&k.unshift(A.scope);k.forEach(A=>oe.openNode(A))}let ee={};function St(k,A){const z=A&&A[0];if(j+=k,z==null)return ye(),0;if(ee.type==="begin"&&A.type==="end"&&ee.index===A.index&&z===""){if(j+=S.slice(A.index,A.index+1),!o){const Z=new Error(`0 width match regex (${m})`);throw Z.languageName=m,Z.badRule=ee.rule,Z}return 1}if(ee=A,A.type==="begin")return Vt(A);if(A.type==="illegal"&&!w){const Z=new Error('Illegal lexeme "'+z+'" for mode "'+(D.scope||"<unnamed>")+'"');throw Z.mode=D,Z}else if(A.type==="end"){const Z=ne(A);if(Z!==Is)return Z}if(A.type==="illegal"&&z==="")return j+=`
50
+ `,1;if(Oe>1e5&&Oe>A.index*3)throw new Error("potential infinite loop, way more iterations than matches");return j+=z,z.length}const Y=L(m);if(!Y)throw qe(a.replace("{}",m)),new Error('Unknown language: "'+m+'"');const Ze=xo(Y);let rt="",D=F||Ze;const wt={},oe=new c.__emitter(c);Gt();let j="",Xe=0,be=0,Oe=0,Ie=!1;try{if(Y.__emitTokens)Y.__emitTokens(S,oe);else{for(D.matcher.considerAll();;){Oe++,Ie?Ie=!1:D.matcher.considerAll(),D.matcher.lastIndex=be;const k=D.matcher.exec(S);if(!k)break;const A=S.substring(be,k.index),z=St(A,k);be=k.index+z}St(S.substring(be))}return oe.finalize(),rt=oe.toHTML(),{language:m,value:rt,relevance:Xe,illegal:!1,_emitter:oe,_top:D}}catch(k){if(k.message&&k.message.includes("Illegal"))return{language:m,value:En(S),illegal:!0,relevance:0,_illegalBy:{message:k.message,index:be,context:S.slice(be-100,be+100),mode:k.mode,resultSoFar:rt},_emitter:oe};if(o)return{language:m,value:En(S),illegal:!1,relevance:0,errorRaised:k,_emitter:oe,_top:D};throw k}}function g(m){const S={value:En(m),illegal:!1,relevance:0,_top:i,_emitter:new c.__emitter(c)};return S._emitter.addText(m),S}function E(m,S){S=S||c.languages||Object.keys(e);const w=g(m),F=S.filter(L).filter(he).map(ye=>h(ye,m,!1));F.unshift(w);const q=F.sort((ye,Re)=>{if(ye.relevance!==Re.relevance)return Re.relevance-ye.relevance;if(ye.language&&Re.language){if(L(ye.language).supersetOf===Re.language)return 1;if(L(Re.language).supersetOf===ye.language)return-1}return 0}),[U,pe]=q,Ae=U;return Ae.secondBest=pe,Ae}function M(m,S,w){const F=S&&n[S]||w;m.classList.add("hljs"),m.classList.add(`language-${F}`)}function I(m){let S=null;const w=d(m);if(u(w))return;if(W("before:highlightElement",{el:m,language:w}),m.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",m);return}if(m.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(m)),c.throwUnescapedHTML))throw new Oo("One of your code blocks includes unescaped HTML.",m.innerHTML);S=m;const F=S.textContent,q=w?f(F,{language:w,ignoreIllegals:!0}):E(F);m.innerHTML=q.value,m.dataset.highlighted="yes",M(m,w,q.language),m.result={language:q.language,re:q.relevance,relevance:q.relevance},q.secondBest&&(m.secondBest={language:q.secondBest.language,relevance:q.secondBest.relevance}),W("after:highlightElement",{el:m,result:q,text:F})}function R(m){c=Os(c,m)}const P=()=>{T(),tt("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function N(){T(),tt("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let H=!1;function T(){function m(){T()}if(document.readyState==="loading"){H||window.addEventListener("DOMContentLoaded",m,!1),H=!0;return}document.querySelectorAll(c.cssSelector).forEach(I)}function B(m,S){let w=null;try{w=S(t)}catch(F){if(qe("Language definition for '{}' could not be registered.".replace("{}",m)),o)qe(F);else throw F;w=i}w.name||(w.name=m),e[m]=w,w.rawDefinition=S.bind(null,t),w.aliases&&K(w.aliases,{languageName:m})}function _(m){delete e[m];for(const S of Object.keys(n))n[S]===m&&delete n[S]}function C(){return Object.keys(e)}function L(m){return m=(m||"").toLowerCase(),e[m]||e[n[m]]}function K(m,{languageName:S}){typeof m=="string"&&(m=[m]),m.forEach(w=>{n[w.toLowerCase()]=S})}function he(m){const S=L(m);return S&&!S.disableAutodetect}function me(m){m["before:highlightBlock"]&&!m["before:highlightElement"]&&(m["before:highlightElement"]=S=>{m["before:highlightBlock"](Object.assign({block:S.el},S))}),m["after:highlightBlock"]&&!m["after:highlightElement"]&&(m["after:highlightElement"]=S=>{m["after:highlightBlock"](Object.assign({block:S.el},S))})}function O(m){me(m),s.push(m)}function V(m){const S=s.indexOf(m);S!==-1&&s.splice(S,1)}function W(m,S){const w=m;s.forEach(function(F){F[w]&&F[w](S)})}function le(m){return tt("10.7.0","highlightBlock will be removed entirely in v12.0"),tt("10.7.0","Please use highlightElement now."),I(m)}Object.assign(t,{highlight:f,highlightAuto:E,highlightAll:T,highlightElement:I,highlightBlock:le,configure:R,initHighlighting:P,initHighlightingOnLoad:N,registerLanguage:B,unregisterLanguage:_,listLanguages:C,getLanguage:L,registerAliases:K,autoDetection:he,inherit:Os,addPlugin:O,removePlugin:V}),t.debugMode=function(){o=!1},t.safeMode=function(){o=!0},t.versionString=Ro,t.regex={concat:We,lookahead:_s,either:hn,optional:Gi,anyNumberOfTimes:Vi};for(const m in vt)typeof vt[m]=="object"&&fs(vt[m]);return Object.assign(t,vt),t},nt=Cs({});nt.newInstance=()=>Cs({});var Co=nt;nt.HighlightJS=nt,nt.default=nt;const de=$i(Co),Ms="[A-Za-z$_][0-9A-Za-z$_]*",Mo=["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"],Lo=["true","false","null","undefined","NaN","Infinity"],Ls=["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"],Ds=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],vs=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Do=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],vo=[].concat(vs,Ls,Ds);function Bo(t){const e=t.regex,n=(w,{after:F})=>{const q="</"+w[0].slice(1);return w.input.indexOf(q,F)!==-1},s=Ms,o={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,F)=>{const q=w[0].length+w.index,U=w.input[q];if(U==="<"||U===","){F.ignoreMatch();return}U===">"&&(n(w,{after:q})||F.ignoreMatch());let pe;const Ae=w.input.substring(q);if(pe=Ae.match(/^\s*=/)){F.ignoreMatch();return}if((pe=Ae.match(/^\s+extends\s+/))&&pe.index===0){F.ignoreMatch();return}}},c={$pattern:Ms,keyword:Mo,literal:Lo,built_in:vo,"variable.language":Do},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},M={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"css"}},I={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,g]},N={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},H=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,M,I,R,{match:/\$\d+/},h];g.contains=H.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(H)});const T=[].concat(N,g.contains),B=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(T)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:B},C={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,e.concat(s,"(",e.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:e.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]*)*/),className:"title.class",keywords:{_:[...Ls,...Ds]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},he={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},me={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function O(w){return e.concat("(?!",w.join("|"),")")}const V={match:e.concat(/\b/,O([...vs,"super","import"].map(w=>`${w}\\s*\\(`)),s,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},W={begin:e.concat(/\./,e.lookahead(e.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},m="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",S={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(m)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,M,I,R,N,{match:/\$\d+/},h,L,{scope:"attr",match:s+e.lookahead(":"),relevance:0},S,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[N,t.REGEXP_MODE,{className:"function",begin:m,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:a},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},he,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,t.inherit(t.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},W,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},V,me,C,le,{match:/\$[(.]/}]}}const Pt="[A-Za-z$_][0-9A-Za-z$_]*",Bs=["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"],Ps=["true","false","null","undefined","NaN","Infinity"],$s=["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"],Us=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zs=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Fs=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Hs=[].concat(zs,$s,Us);function Po(t){const e=t.regex,n=(w,{after:F})=>{const q="</"+w[0].slice(1);return w.input.indexOf(q,F)!==-1},s=Pt,o={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,F)=>{const q=w[0].length+w.index,U=w.input[q];if(U==="<"||U===","){F.ignoreMatch();return}U===">"&&(n(w,{after:q})||F.ignoreMatch());let pe;const Ae=w.input.substring(q);if(pe=Ae.match(/^\s*=/)){F.ignoreMatch();return}if((pe=Ae.match(/^\s+extends\s+/))&&pe.index===0){F.ignoreMatch();return}}},c={$pattern:Pt,keyword:Bs,literal:Ps,built_in:Hs,"variable.language":Fs},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},M={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"css"}},I={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,g]},N={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},H=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,M,I,R,{match:/\$\d+/},h];g.contains=H.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(H)});const T=[].concat(N,g.contains),B=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(T)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:B},C={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,e.concat(s,"(",e.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:e.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]*)*/),className:"title.class",keywords:{_:[...$s,...Us]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},he={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},me={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function O(w){return e.concat("(?!",w.join("|"),")")}const V={match:e.concat(/\b/,O([...zs,"super","import"].map(w=>`${w}\\s*\\(`)),s,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},W={begin:e.concat(/\./,e.lookahead(e.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},m="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",S={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(m)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,M,I,R,N,{match:/\$\d+/},h,L,{scope:"attr",match:s+e.lookahead(":"),relevance:0},S,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[N,t.REGEXP_MODE,{className:"function",begin:m,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:a},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},he,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,t.inherit(t.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},W,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},V,me,C,le,{match:/\$[(.]/}]}}function $o(t){const e=t.regex,n=Po(t),s=Pt,o=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],a={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},i={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:o},contains:[n.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Pt,keyword:Bs.concat(u),literal:Ps,built_in:Hs.concat(o),"variable.language":Fs},f={className:"meta",begin:"@"+s},h=(I,R,P)=>{const N=I.contains.findIndex(H=>H.label===R);if(N===-1)throw new Error("can not find mode to replace");I.contains.splice(N,1,P)};Object.assign(n.keywords,d),n.exports.PARAMS_CONTAINS.push(f);const g=n.contains.find(I=>I.scope==="attr"),E=Object.assign({},g,{match:e.concat(s,e.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,g,E]),n.contains=n.contains.concat([f,a,i,E]),h(n,"shebang",t.SHEBANG()),h(n,"use_strict",c);const M=n.contains.find(I=>I.label==="func.def");return M.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function Uo(t){const e=t.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),s=["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"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,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"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},h={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,f,d]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},g="[0-9](_?[0-9])*",E=`(\\b(${g}))?\\.(${g})|\\b(${g})\\.`,M=`\\b|${s.join("|")}`,I={className:"number",relevance:0,variants:[{begin:`(\\b(${g})|(${E}))[eE][+-]?(${g})[jJ]?(?=${M})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${M})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${M})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${M})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${M})`},{begin:`\\b(${g})[jJ](?=${M})`}]},R={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},P={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,I,h,t.HASH_COMMENT_MODE]}]};return d.contains=[h,I,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,I,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,R,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[P]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[I,P,h]}]}}function zo(t){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],o={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:s},contains:[e,n,t.QUOTE_STRING_MODE,o,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Fo(t){const e=t.regex,n={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},a=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,n,o]};o.contains.push(c);const u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},f={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,n]},g=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=t.SHEBANG({binary:`(${g.join("|")})`,relevance:10}),M={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},I=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],R=["true","false"],P={match:/(\/[a-z._-]+)+/},N=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],H=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],T=["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"],B=["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"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:I,literal:R,built_in:[...N,...H,"set","shopt",...T,...B]},contains:[E,t.SHEBANG(),M,h,a,i,P,c,u,d,f,n]}}function Vs(t){const e=t.regex,n=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=t.inherit(a,{begin:/\(/,end:/\)/}),c=t.inherit(t.APOS_STRING_MODE,{className:"string"}),u=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[o]},{begin:/'/,end:/'/,contains:[o]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,u,c,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[a,i,u,c]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(n,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:d}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const Ho=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.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)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Vo=["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"],Go=["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"],Ko=[...Vo,...Go],Wo=["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(),qo=["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(),Yo=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Zo=["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();function Xo(t){const e=t.regex,n=Ho(t),s={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o="and or not only",a=/@-?\w[\w]*(-\w+)*/,i="[a-zA-Z-][a-zA-Z0-9_-]*",c=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,s,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+i,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+qo.join("|")+")"},{begin:":(:)?("+Yo.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Zo.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:a},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:o,attribute:Wo.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ko.join("|")+")\\b"}]}}function jo(t){const e=t.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={begin:"^[-\\*]{3,}",end:"$"},o={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},f={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=t.inherit(d,{contains:[]}),g=t.inherit(f,{contains:[]});d.contains.push(g),f.contains.push(h);let E=[n,u];return[d,f,h,g].forEach(P=>{P.contains=P.contains.concat(E)}),E=E.concat(d,f),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},n,a,d,f,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},o,s,u,i,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Jo(t){const e=t.regex,n=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={begin:/"/,end:/"/,contains:[{match:/""/}]},a=["true","false","unknown"],i=["double precision","large object","with timezone","without timezone"],c=["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"],u=["add","asc","collation","desc","final","first","last","view"],d=["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"],f=["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"],h=["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"],g=["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"],E=f,M=[...d,...u].filter(B=>!f.includes(B)),I={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},R={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},P={match:e.concat(/\b/,e.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function N(B){return e.concat(/\b/,e.either(...B.map(_=>_.replace(/\s+/,"\\s+"))),/\b/)}const H={scope:"keyword",match:N(g),relevance:0};function T(B,{exceptions:_,when:C}={}){const L=C;return _=_||[],B.map(K=>K.match(/\|\d+$/)||_.includes(K)?K:L(K)?`${K}|0`:K)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:T(M,{when:B=>B.length<3}),literal:a,type:c,built_in:h},contains:[{scope:"type",match:N(i)},H,P,I,s,o,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,n,R]}}function Qo(t){const e="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},o={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},i={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,o]},c=t.inherit(i,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),g={className:"number",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"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},M={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},I={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},R=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},g,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},M,I,a,i],P=[...R];return P.pop(),P.push(c),E.contains=P,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}function ea(t){const a={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"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",variants:[t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:a,illegal:/["']/}]}]}}function ta(t){const e=t.regex,n=/(r#)?/,s=e.concat(n,t.UNDERSCORE_IDENT_RE),o=e.concat(n,t.IDENT_RE),a={className:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,e.lookahead(/\s*\(/))},i="([ui](8|16|32|64|128|size)|f(32|64))?",c=["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"],u=["true","false","Some","None","Ok","Err"],d=["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!"],f=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:f,keyword:c,literal:u,built_in:d},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+i},{begin:"\\b0o([0-7_]+)"+i},{begin:"\\b0x([A-Fa-f0-9_]+)"+i},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+i}],relevance:0},{begin:[/fn/,/\s+/,s],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:f}},{className:"punctuation",begin:"->"},a]}}var st="[0-9](_*[0-9])*",$t=`\\.(${st})`,Ut="[0-9a-fA-F](_*[0-9a-fA-F])*",Gs={className:"number",variants:[{begin:`(\\b(${st})((${$t})|\\.)?|(${$t}))[eE][+-]?(${st})[fFdD]?\\b`},{begin:`\\b(${st})((${$t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${$t})[fFdD]?\\b`},{begin:`\\b(${st})[fFdD]\\b`},{begin:`\\b0[xX]((${Ut})\\.?|(${Ut})?\\.(${Ut}))[pP][+-]?(${st})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ut})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Ks(t,e,n){return n===-1?"":t.replace(e,s=>Ks(t,e,n-1))}function na(t){const e=t.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",s=n+Ks("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),u={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"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},f={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[t.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[t.BACKSLASH_ESCAPE]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[e.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[f,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+s+"\\s+)",t.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[d,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,Gs,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},Gs,d]}}function sa(t){const e=t.regex,n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",i="("+s+"|"+e.optional(o)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",c={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},f={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{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)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:e.optional(o)+t.IDENT_RE,relevance:0},E=e.optional(o)+t.IDENT_RE+"\\s*\\(",R={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"],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"],literal:"true false NULL",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"},P=[h,c,n,t.C_BLOCK_COMMENT_MODE,f,d],N={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:R,contains:P.concat([{begin:/\(/,end:/\)/,keywords:R,contains:P.concat(["self"]),relevance:0}]),relevance:0},H={begin:"("+i+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:R,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:R,relevance:0},{begin:E,returnBegin:!0,contains:[t.inherit(g,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,d,f,c,{begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:["self",n,t.C_BLOCK_COMMENT_MODE,d,f,c]}]},c,n,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:R,disableAutodetect:!0,illegal:"</",contains:[].concat(N,H,P,[h,{begin:t.IDENT_RE+"::",keywords:R},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:h,strings:d,keywords:R}}}function ra(t){const e=t.regex,n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",i="(?!struct)("+s+"|"+e.optional(o)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},f={className:"number",variants:[{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]|)"},{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]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:e.optional(o)+t.IDENT_RE,relevance:0},E=e.optional(o)+t.IDENT_RE+"\\s*\\(",M=["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"],I=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],R=["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"],P=["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"],T={type:I,keyword:M,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:R},B={className:"function.dispatch",relevance:0,keywords:{_hint:P},begin:e.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,t.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},_=[B,h,c,n,t.C_BLOCK_COMMENT_MODE,f,d],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:T,contains:_.concat([{begin:/\(/,end:/\)/,keywords:T,contains:_.concat(["self"]),relevance:0}]),relevance:0},L={className:"function",begin:"("+i+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:T,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:T,relevance:0},{begin:E,returnBegin:!0,contains:[g],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,f]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,d,f,c,{begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:["self",n,t.C_BLOCK_COMMENT_MODE,d,f,c]}]},c,n,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:T,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(C,L,B,_,[h,{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*<(?!<)",end:">",keywords:T,contains:["self",c]},{begin:t.IDENT_RE+"::",keywords:T},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function ia(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}const oa=["innerHTML"],aa=r.defineComponent({__name:"Markdown",props:{text:{}},setup(t){de.registerLanguage("javascript",Bo),de.registerLanguage("typescript",$o),de.registerLanguage("python",Uo),de.registerLanguage("json",zo),de.registerLanguage("bash",Fo),de.registerLanguage("xml",Vs),de.registerLanguage("html",Vs),de.registerLanguage("css",Xo),de.registerLanguage("markdown",jo),de.registerLanguage("sql",Jo),de.registerLanguage("yaml",Qo),de.registerLanguage("go",ea),de.registerLanguage("rust",ta),de.registerLanguage("java",na),de.registerLanguage("c",sa),de.registerLanguage("cpp",ra),de.registerLanguage("shell",ia);const e=t,n=r.ref(null),s=r.computed(()=>Pi.sanitize(X.parse(e.text||"")));function o(){n.value&&n.value.querySelectorAll("pre code").forEach(a=>{const i=a;if(!i.dataset.highlighted)try{de.highlightElement(i),i.dataset.highlighted="1"}catch{}})}return r.onMounted(o),r.watch(()=>e.text,async()=>{await r.nextTick(),o()}),(a,i)=>(r.openBlock(),r.createElementBlock("div",{ref_key:"el",ref:n,class:"markdown",innerHTML:s.value},null,8,oa))}}),la=new Set(["application/json","application/javascript","application/x-javascript","application/xml","application/x-yaml","application/yaml","application/x-sh","application/sql","application/toml"]),ca=new Set(["json","txt","md","markdown","csv","tsv","log","xml","yaml","yml","toml","ini","env","js","mjs","cjs","ts","tsx","jsx","py","rb","go","rs","java","c","h","cpp","hpp","cs","php","sh","bash","zsh","ps1","sql","css","scss","less","html","htm","svg","vue","svelte","graphql","gql","conf","cfg","properties"]);function ua(t){var n;if(t.type.startsWith("text/")||la.has(t.type))return!0;const e=((n=t.name.split(".").pop())==null?void 0:n.toLowerCase())||"";return ca.has(e)}function da(t){const e=t.type.startsWith("image/")?"image":ua(t)?"text":"binary";return{name:t.name,type:t.type,size:t.size,kind:e,uploading:!0}}const Ws=2e5;function pa(t){return new Promise((e,n)=>{const s=new FileReader;s.onload=()=>e(s.result),s.onerror=()=>n(s.error||new Error("读取文件失败")),s.readAsDataURL(t)})}function fa(t){return new Promise((e,n)=>{const s=new FileReader;s.onload=()=>{let o=s.result;o.length>Ws&&(o=o.slice(0,Ws)+`
51
+ …(已截断)`),e(o)},s.onerror=()=>n(s.error||new Error("读取文件失败")),s.readAsText(t)})}function qs(t){return t<1024?t+" B":t<1024*1024?(t/1024).toFixed(1)+" KB":(t/1024/1024).toFixed(1)+" MB"}const ga={search_files:"搜索文件",read_file:"读取文件",write_file:"写入文件",patch:"编辑文件",terminal:"终端命令",web_search:"网络搜索",memory:"记忆",skill_view:"加载技能",todo:"任务规划",browser_navigate:"浏览器导航",browser_click:"浏览器点击",browser_screenshot:"浏览器截图"};function ma(t){return t?ga[t]||t:"工具调用"}function ha(t){try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}function ba(t){if(!t||typeof t!="object")return null;const e=a=>{for(const i of a){const c=t[i];if(typeof c=="number")return c}return 0},n=e(["input_tokens","prompt_tokens","input"]),s=e(["output_tokens","completion_tokens","output"]),o=e(["total_tokens","total"]);return{input:n,output:s,total:o}}const _a={class:"caret"},Ea={class:"process-count"},ya={key:0,class:"live-dot"},ka={class:"process-body"},Ta={key:0,class:"reasoning"},Sa={class:"reasoning-text"},wa={class:"step-head"},Na={class:"step-name"},xa={key:0,class:"step-detail"},Aa={key:1,class:"step-detail"},Ra=r.defineComponent({__name:"ProcessPanel",props:{steps:{},reasoning:{},streaming:{type:Boolean}},setup(t){const e=t,n=r.ref(!0);return(s,o)=>(r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["process",{open:n.value}])},[r.createElementVNode("div",{class:"process-head",onClick:o[0]||(o[0]=a=>n.value=!n.value)},[r.createElementVNode("span",_a,r.toDisplayString(n.value?"▾":"▸"),1),o[1]||(o[1]=r.createElementVNode("span",{class:"process-title"},"过程",-1)),r.createElementVNode("span",Ea,r.toDisplayString(e.steps.length)+" 步",1),e.streaming?(r.openBlock(),r.createElementBlock("span",ya)):r.createCommentVNode("",!0)]),r.withDirectives(r.createElementVNode("div",ka,[e.reasoning?(r.openBlock(),r.createElementBlock("div",Ta,[o[2]||(o[2]=r.createElementVNode("div",{class:"step-label"},"💭 思考",-1)),r.createElementVNode("pre",Sa,r.toDisplayString(e.reasoning),1)])):r.createCommentVNode("",!0),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(e.steps,(a,i)=>(r.openBlock(),r.createElementBlock("div",{key:i,class:"step"},[a.kind==="tool_call"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[r.createElementVNode("div",wa,[o[3]||(o[3]=r.createElementVNode("span",{class:"step-icon"},"🔧",-1)),r.createElementVNode("span",Na,r.toDisplayString(r.unref(ma)(a.name)),1),r.createElementVNode("span",{class:r.normalizeClass(["step-status",a.status])},r.toDisplayString(a.status==="running"?"运行中…":"完成"),3)]),a.arguments?(r.openBlock(),r.createElementBlock("details",xa,[o[4]||(o[4]=r.createElementVNode("summary",null,"参数",-1)),r.createElementVNode("pre",null,r.toDisplayString(r.unref(ha)(a.arguments)),1)])):r.createCommentVNode("",!0),a.output?(r.openBlock(),r.createElementBlock("details",Aa,[o[5]||(o[5]=r.createElementVNode("summary",null,"结果",-1)),r.createElementVNode("pre",null,r.toDisplayString(a.output),1)])):r.createCommentVNode("",!0)],64)):r.createCommentVNode("",!0)]))),128))],512),[[r.vShow,n.value]])],2))}}),Oa={class:"avatar"},Ia={class:"bubble"},Ca={key:0,class:"file-chips"},Ma=["href"],La={class:"chip-icon"},Da={class:"chip-name"},va={class:"chip-size"},Ba={key:1,class:"user-text"},Pa={key:1,class:"asst-text"},$a={key:2,class:"typing"},Ua={key:3,class:"error-box"},za={key:4,class:"aborted-box"},Fa={class:"meta"},Ha={key:0,class:"token-pills"},Va={class:"tok tok-in"},Ga={class:"tok-val"},Ka={class:"tok tok-out"},Wa={class:"tok-val"},qa={class:"tok tok-total"},Ya={class:"tok-val"},Za={key:1,class:"status-live"},Xa=r.defineComponent({__name:"MessageItem",props:{message:{}},setup(t){const e=t,n=r.computed(()=>e.message.role==="user"),s=r.computed(()=>e.message),o=r.computed(()=>e.message),a=r.computed(()=>s.value.steps.length>0||s.value.reasoning.length>0),i=r.computed(()=>ba(s.value.usage));return(c,u)=>(r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["msg",n.value?"msg-user":"msg-asst"])},[r.createElementVNode("div",Oa,r.toDisplayString(n.value?"我":"H"),1),r.createElementVNode("div",Ia,[n.value?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[o.value.files&&o.value.files.length?(r.openBlock(),r.createElementBlock("div",Ca,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value.files,(d,f)=>(r.openBlock(),r.createElementBlock("a",{key:f,class:r.normalizeClass(["chip",{"chip-link":d.url}]),href:d.url,target:"_blank",rel:"noopener"},[r.createElementVNode("span",La,r.toDisplayString(d.kind==="image"?"🖼":"📄"),1),r.createElementVNode("span",Da,r.toDisplayString(d.name),1),r.createElementVNode("span",va,r.toDisplayString(r.unref(qs)(d.size)),1)],10,Ma))),128))])):r.createCommentVNode("",!0),o.value.content?(r.openBlock(),r.createElementBlock("div",Ba,r.toDisplayString(o.value.content),1)):r.createCommentVNode("",!0)],64)):(r.openBlock(),r.createElementBlock(r.Fragment,{key:1},[a.value?(r.openBlock(),r.createBlock(Ra,{key:0,steps:s.value.steps,reasoning:s.value.reasoning,streaming:s.value.status==="streaming"},null,8,["steps","reasoning","streaming"])):r.createCommentVNode("",!0),s.value.text?(r.openBlock(),r.createElementBlock("div",Pa,[r.createVNode(aa,{text:s.value.text},null,8,["text"])])):s.value.status==="streaming"&&!a.value?(r.openBlock(),r.createElementBlock("div",$a,[...u[0]||(u[0]=[r.createElementVNode("span",null,null,-1),r.createElementVNode("span",null,null,-1),r.createElementVNode("span",null,null,-1)])])):r.createCommentVNode("",!0),s.value.status==="error"?(r.openBlock(),r.createElementBlock("div",Ua,"⚠ "+r.toDisplayString(s.value.error),1)):r.createCommentVNode("",!0),s.value.status==="aborted"?(r.openBlock(),r.createElementBlock("div",za,"已停止")):r.createCommentVNode("",!0),r.createElementVNode("div",Fa,[i.value?(r.openBlock(),r.createElementBlock("div",Ha,[r.createElementVNode("span",Va,[u[1]||(u[1]=r.createElementVNode("span",{class:"tok-dot"},null,-1)),u[2]||(u[2]=r.createTextVNode("输入 ",-1)),r.createElementVNode("span",Ga,r.toDisplayString(i.value.input),1)]),r.createElementVNode("span",Ka,[u[3]||(u[3]=r.createElementVNode("span",{class:"tok-dot"},null,-1)),u[4]||(u[4]=r.createTextVNode("输出 ",-1)),r.createElementVNode("span",Wa,r.toDisplayString(i.value.output),1)]),r.createElementVNode("span",qa,[u[5]||(u[5]=r.createElementVNode("span",{class:"tok-dot"},null,-1)),u[6]||(u[6]=r.createTextVNode("总计 ",-1)),r.createElementVNode("span",Ya,r.toDisplayString(i.value.total),1)])])):r.createCommentVNode("",!0),s.value.status==="streaming"?(r.openBlock(),r.createElementBlock("span",Za,"生成中…")):r.createCommentVNode("",!0)])],64))])],2))}}),ja={class:"chat-input"},Ja={key:0,class:"file-error"},Qa={key:1,class:"file-chips"},el={class:"chip-icon"},tl={class:"chip-name"},nl={key:0,class:"chip-status"},sl={key:1,class:"chip-status chip-err"},rl={key:2,class:"chip-size"},il=["onClick"],ol={class:"input-row"},al=["disabled"],ll=["disabled","placeholder"],cl=["disabled"],ul=r.defineComponent({__name:"ChatInput",setup(t){const{state:e,sendMessage:n,stopStreaming:s,uploadHandler:o}=ut(),a=r.ref(""),i=r.ref([]),c=r.ref(null),u=r.ref(null),d=r.ref(""),f=r.computed(()=>i.value.some(N=>N.uploading)),h=r.computed(()=>!e.streaming&&!f.value&&(a.value.trim().length>0||i.value.some(N=>N.url||N.dataUrl||N.text!=null)));async function g(N){const H=N.target;if(H.files){for(const T of Array.from(H.files)){const B=da(T);i.value.push(B);const _=i.value[i.value.length-1];try{if(o)_.url=await o(T);else if(B.kind==="image")_.dataUrl=await pa(T);else if(B.kind==="text")_.text=await fa(T);else throw new Error("不支持二进制文件(请通过 uploadHandler 提供上传服务)");_.uploading=!1}catch(C){_.uploading=!1,_.uploadError=C.message,d.value=`「${_.name}」处理失败:${C.message}`,setTimeout(()=>{d.value=""},5e3)}}H.value=""}}function E(N){i.value.splice(N,1)}function M(){const N=u.value;N&&(N.style.height="auto",N.style.height=Math.min(N.scrollHeight,200)+"px")}async function I(){if(!h.value||e.streaming)return;const N=a.value,H=i.value.filter(T=>!T.uploadError&&(T.url||T.dataUrl||T.text!=null)).slice();a.value="",i.value=[],await r.nextTick(),M(),await n(N,H.length?H:void 0)}function R(N){N.key==="Enter"&&!N.shiftKey&&!N.isComposing&&(N.preventDefault(),I())}function P(){var N;(N=c.value)==null||N.click()}return(N,H)=>(r.openBlock(),r.createElementBlock("div",ja,[d.value?(r.openBlock(),r.createElementBlock("div",Ja,"⚠ "+r.toDisplayString(d.value),1)):r.createCommentVNode("",!0),i.value.length?(r.openBlock(),r.createElementBlock("div",Qa,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(i.value,(T,B)=>(r.openBlock(),r.createElementBlock("div",{key:B,class:r.normalizeClass(["chip",{"chip-error":T.uploadError,"chip-loading":T.uploading}])},[r.createElementVNode("span",el,r.toDisplayString(T.kind==="image"?"🖼":"📄"),1),r.createElementVNode("span",tl,r.toDisplayString(T.name),1),T.uploading?(r.openBlock(),r.createElementBlock("span",nl,"处理中…")):T.uploadError?(r.openBlock(),r.createElementBlock("span",sl,"失败")):(r.openBlock(),r.createElementBlock("span",rl,r.toDisplayString(r.unref(qs)(T.size)),1)),r.createElementVNode("button",{class:"chip-remove",onClick:_=>E(B)},"×",8,il)],2))),128))])):r.createCommentVNode("",!0),r.createElementVNode("div",ol,[r.createElementVNode("button",{class:"icon-btn",title:"上传文件",disabled:r.unref(e).streaming,onClick:P},"📎",8,al),r.createElementVNode("input",{ref_key:"fileInput",ref:c,type:"file",multiple:"",hidden:"",onChange:g},null,544),r.withDirectives(r.createElementVNode("textarea",{ref_key:"textarea",ref:u,"onUpdate:modelValue":H[0]||(H[0]=T=>a.value=T),rows:"1",disabled:!r.unref(e).ready,placeholder:f.value?"文件处理中…":"输入消息,Enter 发送,Shift+Enter 换行",onInput:M,onKeydown:R},null,40,ll),[[r.vModelText,a.value]]),r.unref(e).streaming?(r.openBlock(),r.createElementBlock("button",{key:1,class:"stop-btn",onClick:H[1]||(H[1]=(...T)=>r.unref(s)&&r.unref(s)(...T))},"停止")):(r.openBlock(),r.createElementBlock("button",{key:0,class:"send-btn",disabled:!h.value,onClick:I},"发送",8,cl))])]))}}),dl={class:"chat-view"},pl={class:"chat-header"},fl={class:"chat-title"},gl={class:"chat-sub"},ml=["title"],hl={key:0,class:"banner"},bl={key:1,class:"empty"},_l=r.defineComponent({__name:"ChatView",setup(t){const{state:e,currentConversation:n,config:s,checkHealth:o}=ut(),a=r.ref(null),i=r.computed(()=>{var d;return((d=n.value)==null?void 0:d.messages)||[]}),c=r.computed(()=>{switch(e.health){case"online":return"在线";case"offline":return"离线";case"checking":return"检测中";default:return"未知"}});function u(){r.nextTick(()=>{const d=a.value;d&&(d.scrollTop=d.scrollHeight)})}return r.watch(()=>i.value.length,u),r.watch(()=>{var d;return(d=n.value)==null?void 0:d.id},u),r.watch(()=>{const d=i.value[i.value.length-1];return d&&d.role==="assistant"?d.text+"|"+d.steps.length+"|"+d.reasoning.length:""},u),(d,f)=>{var h;return r.openBlock(),r.createElementBlock("div",dl,[r.createElementVNode("header",pl,[r.createElementVNode("div",fl,r.toDisplayString(((h=r.unref(n))==null?void 0:h.title)||"新会话"),1),r.createElementVNode("div",gl,r.toDisplayString(r.unref(s).model),1),r.createElementVNode("div",{class:r.normalizeClass(["health-badge","health-"+r.unref(e).health]),title:"后端状态:"+r.unref(e).health,onClick:f[0]||(f[0]=(...g)=>r.unref(o)&&r.unref(o)(...g))},[f[1]||(f[1]=r.createElementVNode("span",{class:"health-dot"},null,-1)),r.createTextVNode(r.toDisplayString(c.value),1)],10,ml)]),r.unref(e).error?(r.openBlock(),r.createElementBlock("div",hl,r.toDisplayString(r.unref(e).error),1)):r.createCommentVNode("",!0),r.createElementVNode("div",{ref_key:"scrollEl",ref:a,class:"messages"},[i.value.length?(r.openBlock(!0),r.createElementBlock(r.Fragment,{key:0},r.renderList(i.value,g=>(r.openBlock(),r.createBlock(Xa,{key:g.id,message:g},null,8,["message"]))),128)):(r.openBlock(),r.createElementBlock("div",bl,[...f[2]||(f[2]=[r.createElementVNode("div",{class:"empty-icon"},"H",-1),r.createElementVNode("div",{class:"empty-text"},"开始与 Hermes Agent 对话",-1),r.createElementVNode("div",{class:"empty-hint"},"支持文件上传 · 过程查看 · 多轮上下文",-1)])]))],512),r.createVNode(ul)])}}});function kt(t,e){const n=t.baseUrl.replace(/\/$/,""),s=e.startsWith("/")?e:"/"+e;return n+s}function zt(t,e){const n={Accept:"text/event-stream, application/json"};return t.token&&(n.Authorization=`Bearer ${t.token}`),e&&(n["Content-Type"]="application/json"),n}async function El(t,e,n,s,o){const a=await fetch(kt(t,n),{method:e,headers:zt(t,s!=null),body:s!=null?typeof s=="string"?s:JSON.stringify(s):void 0,signal:o}),i=await a.text();return{status:a.status,statusText:a.statusText,headers:a.headers,text:i}}async function yl(t,e,n,s,o,a){const i=await fetch(kt(t,n),{method:e,headers:zt(t,s!=null),body:s!=null?typeof s=="string"?s:JSON.stringify(s):void 0,signal:a});if(!i.body)return{status:i.status,statusText:i.statusText};const c=i.body.getReader(),u=new TextDecoder;let d="";for(;;){const{done:f,value:h}=await c.read();if(f)break;d+=u.decode(h,{stream:!0});let g;for(;(g=d.indexOf(`
52
+ `))>=0;){const E=d.slice(0,g).replace(/\r$/,"");d=d.slice(g+1),o(E)}}return d&&o(d),{status:i.status,statusText:i.statusText}}async function kl(t){try{return(await fetch(kt(t,"/health"),{method:"GET"})).ok}catch{return!1}}async function Tl(t,e){try{await fetch(kt(t,`/v1/responses/${encodeURIComponent(e)}`),{method:"DELETE",headers:zt(t,!1)})}catch{}}function Sl(t){const e={model:t.cfg.model,stream:!0,store:!0};t.conversation&&(e.conversation=t.conversation),t.instructions&&(e.instructions=t.instructions);const n=(t.files||[]).filter(i=>i.url||i.dataUrl||i.text!=null),s=n.filter(i=>i.kind==="image"),o=n.filter(i=>i.kind!=="image");let a=t.input||"";for(const i of o){const c=i.type||i.kind,u=`
53
+
54
+ --- 文件: ${i.name}${c?` (${c})`:""} ---
55
+ `;i.url?a+=u+i.url:i.text!=null&&(a+=u+i.text)}if(s.length){const i=[];a.trim()&&i.push({type:"input_text",text:a});for(const c of s)i.push({type:"input_image",image_url:c.url||c.dataUrl});e.input=[{role:"user",content:i}]}else e.input=a;return e}function Ys(t){return t==null?"":typeof t=="string"?t:Array.isArray(t)?t.map(e=>e&&typeof e=="object"?e.text??e.content??JSON.stringify(e):String(e)).join(""):typeof t=="object"?JSON.stringify(t,null,2):String(t)}function wl(t,e){var o;const n=e.type||t||"";if(n==="output_text_delta"||n==="response.output_text.delta"||t==="response.output_text.delta")return{kind:"text_delta",delta:e.delta||""};if(n.includes("reasoning")&&!e.item)return{kind:"reasoning",delta:e.delta||e.summary||e.text||""};const s=e.item;if(s&&typeof s=="object"){const a=s.type||"";if(a==="function_call")return{kind:"tool_call",callId:s.call_id,name:s.name,arguments:s.arguments||""};if(a==="function_call_output")return{kind:"tool_result",callId:s.call_id,output:Ys(s.output)};if(a==="reasoning"){const i=Array.isArray(s.summary)?s.summary.map(c=>c.text||"").join(""):typeof s.summary=="string"?s.summary:"";if(i)return{kind:"reasoning",delta:i}}}if(n==="function_call_output"||t==="response.output_item.done"&&e.output!==void 0)return{kind:"tool_result",callId:e.call_id,output:Ys(e.output)};if(n==="function_call"||t==="response.output_item.added"&&e.name)return{kind:"tool_call",callId:e.call_id,name:e.name,arguments:e.arguments||""};if(n==="response.completed"||t==="response.completed"){const a=e.response||e;return{kind:"completed",responseId:a.id,usage:a.usage}}return n==="response.created"||t==="response.created"?{kind:"created",responseId:(e.response||e).id}:n==="response.failed"||n==="error"||t==="error"||t==="response.failed"?{kind:"error",message:((o=e.error)==null?void 0:o.message)||e.message||"请求失败"}:(console.debug("[hermes] unhandled event:",t,e),{kind:"other",type:n,raw:e})}async function Nl(t){const e=await fetch(kt(t.cfg,"/v1/responses"),{method:"POST",headers:zt(t.cfg,!0),body:JSON.stringify(Sl(t)),signal:t.signal});if(!e.ok){let i=`HTTP ${e.status}`;try{const c=await e.text();i+=": "+c.slice(0,500)}catch{}throw new Error(i)}if(!e.body)throw new Error("无响应体");const n=e.body.getReader(),s=new TextDecoder;let o="",a="";for(;;){const{done:i,value:c}=await n.read();if(i)break;o+=s.decode(c,{stream:!0});const u=o.split(`
56
+ `);o=u.pop()||"";for(const d of u){const f=d.replace(/\r$/,"");if(f.startsWith("event:")){a=f.slice(6).trim();continue}if(f.startsWith("data:")){const h=f.slice(5).trim();if(h==="[DONE]")continue;try{const g=JSON.parse(h);t.onEvent(wl(a,g))}catch{}}}}}const xl={class:"explorer"},Al={class:"ex-header"},Rl={class:"ex-profile"},Ol=["title"],Il=["title"],Cl={class:"ex-body"},Ml={class:"ex-group-title"},Ll=["onClick"],Dl={class:"ex-item-label"},vl={class:"ex-main"},Bl={class:"ex-endpoint"},Pl={class:"ex-endpoint-head"},$l={class:"ex-path"},Ul={key:0,class:"ex-desc"},zl={key:1,class:"ex-params"},Fl=["onUpdate:modelValue","placeholder"],Hl={key:2,class:"ex-body-editor"},Vl={class:"ex-actions"},Gl=["disabled"],Kl={key:2,class:"ex-err"},Wl={class:"ex-response"},ql={class:"ex-resp-head"},Yl={key:0,class:"ex-stream-tag"},Zl={key:0,class:"ex-pre ex-sse"},Xl={key:1,class:"ex-pre"},jl=r.defineComponent({__name:"ApiExplorer",setup(t){const{config:e,state:n,checkHealth:s}=ut(),o=[{id:"health",group:"系统",method:"GET",label:"健康检查",path:"/health",desc:'低开销存活探针,返回 {"status":"ok"}。'},{id:"health-detailed",group:"系统",method:"GET",label:"就绪检查",path:"/health/detailed",desc:"已认证的就绪检查:profile、状态库、模型、磁盘、活跃 run 等。"},{id:"capabilities",group:"系统",method:"GET",label:"能力描述",path:"/v1/capabilities",desc:"机器可读的稳定接口描述。"},{id:"models",group:"系统",method:"GET",label:"模型列表",path:"/v1/models",desc:"列出 agent 作为可用模型(模型名=profile 名)。"},{id:"responses-create",group:"Responses",method:"POST",label:"创建响应",path:"/v1/responses",desc:"OpenAI Responses API。stream:true 时返回 SSE,含 function_call / function_call_output / output_text.delta。",stream:!0},{id:"responses-get",group:"Responses",method:"GET",label:"获取响应",path:"/v1/responses/{id}",desc:"按 ID 检索已存储的响应。"},{id:"responses-delete",group:"Responses",method:"DELETE",label:"删除响应",path:"/v1/responses/{id}",desc:"删除已存储的响应。"},{id:"runs-create",group:"Runs",method:"POST",label:"创建 Run",path:"/v1/runs",desc:"创建 agent run,返回 run_id 用于订阅进度事件。",body:JSON.stringify({input:"列出当前目录的文件",instructions:"You are a helpful assistant."},null,2)},{id:"runs-status",group:"Runs",method:"GET",label:"查询 Run",path:"/v1/runs/{run_id}",desc:"轮询 run 当前状态。"},{id:"runs-events",group:"Runs",method:"GET",label:"Run 事件流",path:"/v1/runs/{run_id}/events",desc:"工具调用进度、token 增量与生命周期事件的 SSE 流。",stream:!0},{id:"runs-stop",group:"Runs",method:"POST",label:"停止 Run",path:"/v1/runs/{run_id}/stop",desc:"中断正在运行的 agent 轮次。"},{id:"jobs-list",group:"Jobs",method:"GET",label:"任务列表",path:"/api/jobs",desc:"列出所有计划任务。"},{id:"jobs-create",group:"Jobs",method:"POST",label:"创建任务",path:"/api/jobs",desc:"创建计划任务(与 hermes cron 同构)。",body:JSON.stringify({prompt:"每天早上总结新闻",schedule:"0 9 * * *",skills:[]},null,2)},{id:"jobs-get",group:"Jobs",method:"GET",label:"任务详情",path:"/api/jobs/{job_id}",desc:"获取单个任务定义及最后一次运行状态。"},{id:"jobs-update",group:"Jobs",method:"PATCH",label:"更新任务",path:"/api/jobs/{job_id}",desc:"部分更新任务字段。",body:JSON.stringify({schedule:"0 10 * * *"},null,2)},{id:"jobs-delete",group:"Jobs",method:"DELETE",label:"删除任务",path:"/api/jobs/{job_id}",desc:"删除任务并取消进行中的 run。"},{id:"jobs-pause",group:"Jobs",method:"POST",label:"暂停任务",path:"/api/jobs/{job_id}/pause",desc:"暂停任务而不删除。"},{id:"jobs-resume",group:"Jobs",method:"POST",label:"恢复任务",path:"/api/jobs/{job_id}/resume",desc:"恢复已暂停的任务。"},{id:"jobs-run",group:"Jobs",method:"POST",label:"立即运行",path:"/api/jobs/{job_id}/run",desc:"立即触发任务运行,不受计划限制。"},{id:"sessions-list",group:"Sessions",method:"GET",label:"会话列表",path:"/api/sessions",desc:"列出所有会话。"},{id:"sessions-create",group:"Sessions",method:"POST",label:"创建会话",path:"/api/sessions",desc:"创建新会话。",body:JSON.stringify({title:"my-session"},null,2)},{id:"sessions-get",group:"Sessions",method:"GET",label:"会话详情",path:"/api/sessions/{session_id}",desc:"获取单个会话。"},{id:"sessions-update",group:"Sessions",method:"PATCH",label:"更新会话",path:"/api/sessions/{session_id}",desc:"更新会话字段。",body:JSON.stringify({title:"updated"},null,2)},{id:"sessions-delete",group:"Sessions",method:"DELETE",label:"删除会话",path:"/api/sessions/{session_id}",desc:"删除会话。"},{id:"sessions-messages",group:"Sessions",method:"GET",label:"会话消息",path:"/api/sessions/{session_id}/messages",desc:"获取会话消息历史。"},{id:"sessions-chat",group:"Sessions",method:"POST",label:"会话对话",path:"/api/sessions/{session_id}/chat",desc:"在会话中发送消息(非流式)。",body:JSON.stringify({input:"Hello",stream:!1},null,2)},{id:"sessions-chat-stream",group:"Sessions",method:"POST",label:"会话对话流",path:"/api/sessions/{session_id}/chat/stream",desc:"在会话中发送消息(SSE 流式)。",body:JSON.stringify({input:"Hello"},null,2),stream:!0},{id:"skills",group:"Skills",method:"GET",label:"技能列表",path:"/v1/skills",desc:"列出可用技能。"},{id:"toolsets",group:"Skills",method:"GET",label:"工具集列表",path:"/v1/toolsets",desc:"列出可用工具集。"}];function a(O){return O.id==="responses-create"?JSON.stringify({model:e.model,input:"列出当前目录的文件并简要说明",stream:!0,store:!0,instructions:"You are a helpful coding assistant."},null,2):O.body||""}const i=r.ref(o[0].id),c=r.computed(()=>o.find(O=>O.id===i.value)),u=r.ref(!1),d=r.computed(()=>{const O=/\{(\w+)\}/g,V=[];let W;for(;W=O.exec(c.value.path);)V.push(W[1]);return V}),f=r.reactive({}),h=r.ref(""),g=r.ref(null),E=r.ref(""),M=r.ref([]),I=r.ref(!1),R=r.ref(""),P=r.ref(0);let N=null;function H(O){i.value=O.id,h.value=a(O),g.value=null,E.value="",M.value=[],R.value="",u.value=!1;for(const V of Object.keys(f))delete f[V]}function T(){let O=c.value.path;for(const V of d.value)O=O.replace("{"+V+"}",encodeURIComponent(f[V]||""));return O}function B(O){try{return JSON.stringify(JSON.parse(O),null,2)}catch{return O}}const _=r.computed(()=>c.value.stream===!0),C=r.computed(()=>{const O=c.value.method;return O==="POST"||O==="PATCH"}),L=r.computed(()=>{const O=new Map;for(const V of o)O.has(V.group)||O.set(V.group,[]),O.get(V.group).push(V);return[...O.entries()]});async function K(){if(!e.baseUrl){R.value="未配置 baseUrl";return}R.value="",g.value=null,E.value="",M.value=[],I.value=!0,P.value=0;const O=performance.now();N=new AbortController;const V=T(),W=c.value.method;let le;if(C.value||W==="DELETE"){const m=h.value.trim();if(m)try{le=JSON.parse(m)}catch{le=m}}try{if(_.value){M.value.push("▶ "+W+" "+V);const{status:m}=await yl(e,W,V,le,S=>{M.value.push(S)},N.signal);g.value=m,M.value.push("■ 流结束 (HTTP "+m+")")}else{const m=await El(e,W,V,le,N.signal);g.value=m.status,E.value=B(m.text)}}catch(m){m.name==="AbortError"?R.value="已停止":R.value=m.message}finally{P.value=Math.round(performance.now()-O),I.value=!1,N=null}}function he(){N==null||N.abort()}function me(O){return O==null?"":O>=200&&O<300?"ok":O>=400?"err":"warn"}return H(o[0]),(O,V)=>(r.openBlock(),r.createElementBlock("div",xl,[r.createElementVNode("header",Al,[r.createElementVNode("button",{class:"ex-nav-toggle",title:"接口列表",onClick:V[0]||(V[0]=W=>u.value=!u.value)},"☰"),V[4]||(V[4]=r.createElementVNode("div",{class:"ex-title"},"HTTP API 调试",-1)),r.createElementVNode("div",Rl,[r.createElementVNode("span",{class:r.normalizeClass(["health-dot",r.unref(n).health]),title:"后端:"+r.unref(n).health},null,10,Ol),r.createElementVNode("span",{class:"ex-baseurl",title:r.unref(e).baseUrl},r.toDisplayString(r.unref(e).baseUrl),9,Il),r.createElementVNode("button",{class:"ex-refresh",title:"刷新健康状态",onClick:V[1]||(V[1]=(...W)=>r.unref(s)&&r.unref(s)(...W))},"↻")])]),r.createElementVNode("div",Cl,[r.createElementVNode("div",{class:r.normalizeClass(["ex-nav-backdrop",{show:u.value}]),onClick:V[2]||(V[2]=W=>u.value=!1)},null,2),r.createElementVNode("aside",{class:r.normalizeClass(["ex-nav",{"drawer-open":u.value}])},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(L.value,([W,le])=>(r.openBlock(),r.createElementBlock("div",{key:W,class:"ex-group"},[r.createElementVNode("div",Ml,r.toDisplayString(W),1),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(le,m=>(r.openBlock(),r.createElementBlock("button",{key:m.id,class:r.normalizeClass(["ex-item",{active:m.id===i.value}]),onClick:S=>H(m)},[r.createElementVNode("span",{class:r.normalizeClass(["m-badge","m-"+m.method])},r.toDisplayString(m.method),3),r.createElementVNode("span",Dl,r.toDisplayString(m.label),1)],10,Ll))),128))]))),128))],2),r.createElementVNode("section",vl,[r.createElementVNode("div",Bl,[r.createElementVNode("div",Pl,[r.createElementVNode("span",{class:r.normalizeClass(["m-badge","m-"+c.value.method])},r.toDisplayString(c.value.method),3),r.createElementVNode("span",$l,r.toDisplayString(c.value.path),1)]),c.value.desc?(r.openBlock(),r.createElementBlock("div",Ul,r.toDisplayString(c.value.desc),1)):r.createCommentVNode("",!0),d.value.length?(r.openBlock(),r.createElementBlock("div",zl,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(d.value,W=>(r.openBlock(),r.createElementBlock("div",{class:"ex-field",key:W},[r.createElementVNode("label",null,r.toDisplayString(W),1),r.withDirectives(r.createElementVNode("input",{"onUpdate:modelValue":le=>f[W]=le,placeholder:"输入 "+W},null,8,Fl),[[r.vModelText,f[W]]])]))),128))])):r.createCommentVNode("",!0),C.value?(r.openBlock(),r.createElementBlock("div",Hl,[V[5]||(V[5]=r.createElementVNode("label",{class:"ex-label"},"请求体 (JSON)",-1)),r.withDirectives(r.createElementVNode("textarea",{"onUpdate:modelValue":V[3]||(V[3]=W=>h.value=W),class:"ex-textarea",rows:"10",spellcheck:"false"},null,512),[[r.vModelText,h.value]])])):r.createCommentVNode("",!0),r.createElementVNode("div",Vl,[r.createElementVNode("button",{class:"btn-primary",disabled:I.value,onClick:K},r.toDisplayString(I.value?"请求中…":"发送"),9,Gl),I.value?(r.openBlock(),r.createElementBlock("button",{key:0,class:"stop-btn",onClick:he},"停止")):r.createCommentVNode("",!0),g.value!=null?(r.openBlock(),r.createElementBlock("span",{key:1,class:r.normalizeClass(["ex-status",me(g.value)])}," HTTP "+r.toDisplayString(g.value)+" · "+r.toDisplayString(P.value)+"ms ",3)):r.createCommentVNode("",!0),R.value?(r.openBlock(),r.createElementBlock("span",Kl,r.toDisplayString(R.value),1)):r.createCommentVNode("",!0)])]),r.createElementVNode("div",Wl,[r.createElementVNode("div",ql,[V[6]||(V[6]=r.createTextVNode(" 响应 ",-1)),_.value?(r.openBlock(),r.createElementBlock("span",Yl,"SSE 流")):r.createCommentVNode("",!0)]),_.value?(r.openBlock(),r.createElementBlock("pre",Zl,r.toDisplayString(M.value.join(`
57
+ `)||"(点击发送后,SSE 事件将逐行显示在这里)"),1)):(r.openBlock(),r.createElementBlock("pre",Xl,r.toDisplayString(E.value||"(响应将显示在这里)"),1))])])])]))}});function Zs(t){const n="hermes-chat:"+(t.storageKey||"default")+":",s=r.reactive({baseUrl:t.baseUrl,token:t.token||"",model:t.model||"hermes-agent"}),o=r.reactive({conversations:[],currentConversationId:"",streaming:!1,error:"",systemInstructions:t.instructions||"",health:"unknown",ready:!1}),a=t.uploadHandler;let i=null,c=null;function u(_){return _+"-"+Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function d(){localStorage.setItem(n+"conversations",JSON.stringify(o.conversations)),localStorage.setItem(n+"currentConv",o.currentConversationId),localStorage.setItem(n+"instructions",o.systemInstructions)}function f(){try{return JSON.parse(localStorage.getItem(n+"conversations")||"[]")}catch{return[]}}async function h(){if(!s.baseUrl){o.health="unknown";return}o.health="checking",o.health=await kl(s)?"online":"offline"}async function g(){const _=localStorage.getItem(n+"instructions");_!=null?o.systemInstructions=_:t.instructions&&(o.systemInstructions=t.instructions),o.conversations=f();const C=localStorage.getItem(n+"currentConv");C&&o.conversations.find(L=>L.id===C)?o.currentConversationId=C:o.conversations.length&&(o.currentConversationId=o.conversations[0].id),o.ready=!0,h(),c||(c=setInterval(h,3e4))}function E(){const _=Date.now(),C={id:u("conv"),title:"新会话",createdAt:_,updatedAt:_,messages:[]};o.conversations.unshift(C),o.currentConversationId=C.id,d()}function M(_){var L;const C=o.conversations.find(K=>K.id===_);if(C)for(const K of C.messages)K.role==="assistant"&&K.responseId&&Tl(s,K.responseId);o.conversations=o.conversations.filter(K=>K.id!==_),o.currentConversationId===_&&(o.currentConversationId=((L=o.conversations[0])==null?void 0:L.id)||""),d()}function I(_){o.currentConversationId=_,d()}function R(_){o.systemInstructions=_,d()}const P=r.computed(()=>o.conversations.find(_=>_.id===o.currentConversationId));function N(_,C){switch(C.kind){case"created":_.responseId=C.responseId||null;break;case"text_delta":_.text+=C.delta;break;case"reasoning":_.reasoning+=C.delta;break;case"tool_call":{let L=_.steps.find(K=>K.callId&&K.callId===C.callId);L?(L.name=C.name,L.arguments=C.arguments):(L={kind:"tool_call",callId:C.callId,name:C.name,arguments:C.arguments,status:"running",output:""},_.steps.push(L));break}case"tool_result":{let L=_.steps.find(K=>K.callId&&K.callId===C.callId);L?(L.output=C.output,L.status="done"):(L={kind:"tool_call",callId:C.callId,name:"",arguments:"",status:"done",output:C.output},_.steps.push(L));break}case"completed":_.usage=C.usage||null,_.responseId=C.responseId||_.responseId;break;case"error":_.error=C.message;break}}async function H(_,C){if(!s.baseUrl)return;o.currentConversationId||E();const L=P.value;if(!L)return;const K={id:u("msg"),role:"user",content:_,files:C==null?void 0:C.map(O=>({name:O.name,type:O.type,size:O.size,kind:O.kind,url:O.url,dataUrl:O.dataUrl,text:O.text}))};L.messages.push(K);const he={id:u("msg"),role:"assistant",text:"",reasoning:"",steps:[],status:"streaming",usage:null,error:null,responseId:null};L.messages.push(he);const me=L.messages[L.messages.length-1];L.title==="新会话"&&(L.title=_.slice(0,30)||"新会话"),L.updatedAt=Date.now(),d(),o.streaming=!0,i=new AbortController;try{await Nl({cfg:s,input:_,conversation:L.id,instructions:o.systemInstructions||void 0,files:C,signal:i.signal,onEvent:O=>N(me,O)}),me.status==="streaming"&&(me.status="done")}catch(O){O.name==="AbortError"?me.status="aborted":(me.status="error",me.error=O.message)}finally{o.streaming=!1,i=null,L.updatedAt=Date.now(),d()}}function T(){i==null||i.abort()}function B(_){_.baseUrl!==void 0&&(s.baseUrl=_.baseUrl),_.token!==void 0&&(s.token=_.token),_.model!==void 0&&(s.model=_.model),_.baseUrl&&h()}return{config:s,state:o,currentConversation:P,uploadHandler:a,init:g,checkHealth:h,newConversation:E,deleteConversation:M,selectConversation:I,setSystemInstructions:R,sendMessage:H,stopStreaming:T,updateConfig:B}}const Jl={class:"app hermes-chat"},Ql={class:"topbar"},ec={class:"topbar-brand"},tc={class:"tabs"},nc={class:"app-body"},sc={class:"main"},rc={key:1,class:"main"},Xs=r.defineComponent({__name:"HermesChat",props:{baseUrl:{},token:{},model:{default:"hermes-agent"},instructions:{},title:{default:"Hermes Agent"},storageKey:{default:"default"},uploadHandler:{},defaultView:{default:"chat"}},setup(t){const e=t,n=r.ref(e.defaultView),s=r.ref(!1),o=Zs({baseUrl:e.baseUrl,token:e.token,model:e.model,instructions:e.instructions,storageKey:e.storageKey,uploadHandler:e.uploadHandler});return r.provide(Te,o),r.onMounted(()=>{o.init()}),r.watch(()=>[e.baseUrl,e.token,e.model],()=>{o.updateConfig({baseUrl:e.baseUrl,token:e.token,model:e.model})}),r.watch(()=>o.state.currentConversationId,()=>{s.value=!1}),r.watch(n,()=>{s.value=!1}),(a,i)=>(r.openBlock(),r.createElementBlock("div",Jl,[r.createElementVNode("nav",Ql,[n.value==="chat"?(r.openBlock(),r.createElementBlock("button",{key:0,class:"menu-btn",title:"会话列表",onClick:i[0]||(i[0]=c=>s.value=!s.value)},"☰")):r.createCommentVNode("",!0),r.createElementVNode("div",ec,r.toDisplayString(e.title),1),r.createElementVNode("div",tc,[r.createElementVNode("button",{class:r.normalizeClass(["tab",{active:n.value==="chat"}]),onClick:i[1]||(i[1]=c=>n.value="chat")},"聊天",2),r.createElementVNode("button",{class:r.normalizeClass(["tab",{active:n.value==="api"}]),onClick:i[2]||(i[2]=c=>n.value="api")},"HTTP API",2)]),i[4]||(i[4]=r.createElementVNode("div",{class:"topbar-spacer"},null,-1))]),r.createElementVNode("div",nc,[n.value==="chat"?(r.openBlock(),r.createElementBlock("div",{key:0,class:r.normalizeClass(["chat-layout",{"drawer-open":s.value}])},[r.createElementVNode("div",{class:"sidebar-backdrop",onClick:i[3]||(i[3]=c=>s.value=!1)}),r.createVNode(wr),r.createElementVNode("main",sc,[r.createVNode(_l)])],2)):(r.openBlock(),r.createElementBlock("main",rc,[r.createVNode(jl)]))])]))}}),ic={install(t){t.component("HermesChat",Xs)}};Q.HermesChat=Xs,Q.HermesKey=Te,Q.createHermesStore=Zs,Q.default=ic,Q.useHermes=ut,Object.defineProperties(Q,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});