diff --git a/strix/interface/tui/app.py b/strix/interface/tui/app.py index d3fe6b1a..a5e202a0 100644 --- a/strix/interface/tui/app.py +++ b/strix/interface/tui/app.py @@ -39,13 +39,14 @@ from strix.interface.tui.live_view import TuiLiveView from strix.interface.tui.messages import send_user_message_to_agent from strix.interface.tui.renderers import render_tool_widget from strix.interface.tui.renderers.agent_message_renderer import AgentMessageRenderer -from strix.interface.tui.renderers.fenced import ( +from strix.interface.tui.renderers.user_message_renderer import UserMessageRenderer +from strix.interface.utils import build_tui_stats_text +from strix.report.fenced import ( guess_language_name, parse_fenced_code, resolve_lexer, + safe_fence, ) -from strix.interface.tui.renderers.user_message_renderer import UserMessageRenderer -from strix.interface.utils import build_tui_stats_text from strix.report.state import ReportState, set_global_report_state from strix.runtime import session_manager @@ -608,9 +609,10 @@ class VulnerabilityDetailScreen(ModalScreen): # type: ignore[misc] if vuln.get("poc_script_code"): poc_language, poc_code = parse_fenced_code(vuln["poc_script_code"]) fence_lang = poc_language or guess_language_name(poc_code) - lines.append(f"```{fence_lang}") + fence = safe_fence(poc_code) + lines.append(f"{fence}{fence_lang}") lines.append(poc_code) - lines.append("```") + lines.append(fence) if vuln.get("code_locations"): lines.extend(["", "## Code Analysis", ""]) diff --git a/strix/interface/tui/renderers/reporting_renderer.py b/strix/interface/tui/renderers/reporting_renderer.py index 0a5dadcc..d9ac4f11 100644 --- a/strix/interface/tui/renderers/reporting_renderer.py +++ b/strix/interface/tui/renderers/reporting_renderer.py @@ -5,8 +5,9 @@ from pygments.styles import get_style_by_name from rich.text import Text from textual.widgets import Static +from strix.report.fenced import parse_fenced_code, resolve_lexer + from .base_renderer import BaseToolRenderer -from .fenced import parse_fenced_code, resolve_lexer from .registry import register_tool_renderer diff --git a/strix/interface/tui/renderers/fenced.py b/strix/report/fenced.py similarity index 72% rename from strix/interface/tui/renderers/fenced.py rename to strix/report/fenced.py index 3160f8df..2d997e2b 100644 --- a/strix/interface/tui/renderers/fenced.py +++ b/strix/report/fenced.py @@ -6,7 +6,21 @@ from pygments.lexers.special import TextLexer from pygments.util import ClassNotFound -_FENCE_RE = re.compile(r"^```([^\n`]*)\n(.*?)\n?```$", re.DOTALL) +_FENCE_RE = re.compile(r"^```([^\n`]*)\r?\n(.*?)\r?\n?```$", re.DOTALL) +_BACKTICK_RUN = re.compile(r"`+") + + +def safe_fence(content: str) -> str: + """Return a backtick fence that ``content`` cannot break out of. + + Per CommonMark a fenced code block is closed only by a run of backticks at + least as long as the opening fence. LLM-authored, attacker-influenced values + (PoC scripts, code snippets) may contain their own ``` runs, so we open with + a fence one backtick longer than the longest run inside ``content`` (never + fewer than three). Everything in ``content`` then renders verbatim. + """ + longest = max((len(m.group()) for m in _BACKTICK_RUN.finditer(content)), default=0) + return "`" * max(3, longest + 1) def parse_fenced_code(raw: str) -> tuple[str | None, str]: diff --git a/strix/report/writer.py b/strix/report/writer.py index 68679263..8cfb3895 100644 --- a/strix/report/writer.py +++ b/strix/report/writer.py @@ -6,34 +6,19 @@ import csv import io import json import logging -import re import tempfile from datetime import UTC, datetime from pathlib import Path from typing import Any from strix.core.paths import run_record_path +from strix.report.fenced import guess_language_name, parse_fenced_code, safe_fence logger = logging.getLogger(__name__) _SEVERITY_ORDER = {"critical": 0, "high": 1, "medium": 2, "low": 3, "info": 4} -_BACKTICK_RUN = re.compile(r"`+") - - -def _safe_fence(content: str) -> str: - """Return a backtick fence that ``content`` cannot break out of. - - Per CommonMark a fenced code block is closed only by a run of backticks at - least as long as the opening fence. LLM-authored, attacker-influenced values - (PoC scripts, code snippets) may contain their own ``` runs, so we open with - a fence one backtick longer than the longest run inside ``content`` (never - fewer than three). Everything in ``content`` then renders verbatim. - """ - longest = max((len(m.group()) for m in _BACKTICK_RUN.finditer(content)), default=0) - return "`" * max(3, longest + 1) - def read_run_record(run_dir: Path) -> dict[str, Any]: path = run_record_path(run_dir) @@ -187,9 +172,10 @@ def render_vulnerability_md(report: dict[str, Any]) -> str: # noqa: PLR0912, PL lines.append(str(report["poc_description"])) lines.append("") if report.get("poc_script_code"): - code = str(report["poc_script_code"]) - fence = _safe_fence(code) - lines.append(fence) + language, code = parse_fenced_code(str(report["poc_script_code"])) + fence_lang = language or guess_language_name(code) + fence = safe_fence(code) + lines.append(f"{fence}{fence_lang}") lines.append(code) lines.append(fence) lines.append("") @@ -209,7 +195,7 @@ def render_vulnerability_md(report: dict[str, Any]) -> str: # noqa: PLR0912, PL lines.append(f" {loc['label']}") if loc.get("snippet"): snippet = str(loc["snippet"]) - fence = _safe_fence(snippet) + fence = safe_fence(snippet) lines.append(f" {fence}") lines.extend(f" {ln}" for ln in snippet.splitlines()) lines.append(f" {fence}") diff --git a/strix/viewer/frontend/src/components/vulnerability/MdCodeBlock.tsx b/strix/viewer/frontend/src/components/vulnerability/MdCodeBlock.tsx index 31bce26c..1e814aae 100644 --- a/strix/viewer/frontend/src/components/vulnerability/MdCodeBlock.tsx +++ b/strix/viewer/frontend/src/components/vulnerability/MdCodeBlock.tsx @@ -17,7 +17,7 @@ export function MdCodeBlock({ }) { const [copied, setCopied] = useState(false); const raw = String(children).replace(/\n$/, ""); - const match = /language-(\w+)/.exec(className || ""); + const match = /language-(\S+)/.exec(className || ""); const isBlock = raw.includes("\n") || match; if (!isBlock) { diff --git a/strix/viewer/frontend/src/lib/fenced-code.ts b/strix/viewer/frontend/src/lib/fenced-code.ts index 0c89d8c8..6a5f8290 100644 --- a/strix/viewer/frontend/src/lib/fenced-code.ts +++ b/strix/viewer/frontend/src/lib/fenced-code.ts @@ -3,7 +3,7 @@ export interface ParsedFencedCode { code: string; } -const FENCE_RE = /^```([^\n`]*)\n([\s\S]*?)\n?```$/; +const FENCE_RE = /^```([^\n`]*)\r?\n([\s\S]*?)\r?\n?```$/; /** * Agent-generated `poc_script_code` is stored wrapped in a markdown code fence diff --git a/strix/viewer/static/assets/index-B1jJGKIO.js b/strix/viewer/static/assets/index-Dd1cyttN.js similarity index 88% rename from strix/viewer/static/assets/index-B1jJGKIO.js rename to strix/viewer/static/assets/index-Dd1cyttN.js index 1936dcac..afe00a88 100644 --- a/strix/viewer/static/assets/index-B1jJGKIO.js +++ b/strix/viewer/static/assets/index-Dd1cyttN.js @@ -428,7 +428,7 @@ Error generating stack: `+u.message+` https://github.com/highlightjs/highlight.js/issues/2277`),Ht=ye,ft=Le),Qe===void 0&&(Qe=!0);const pn={code:ft,language:Ht};Jr("before:highlight",pn);const On=pn.result?pn.result:xr(pn.language,pn.code,Qe);return On.code=pn.code,Jr("after:highlight",On),On}function xr(ye,Le,Qe,ft){const Ht=Object.create(null);function pn(_e,Re){return _e.keywords[Re]}function On(){if(!qe.keywords){Jt.addText(bt);return}let _e=0;qe.keywordPatternRe.lastIndex=0;let Re=qe.keywordPatternRe.exec(bt),Ye="";for(;Re;){Ye+=bt.substring(_e,Re.index);const rt=un.case_insensitive?Re[0].toLowerCase():Re[0],$t=pn(qe,rt);if($t){const[or,al]=$t;if(Jt.addText(Ye),Ye="",Ht[rt]=(Ht[rt]||0)+1,Ht[rt]<=Xn&&(Ri+=al),or.startsWith("_"))Ye+=Re[0];else{const $o=un.classNameAliases[or]||or;Rn(Re[0],$o)}}else Ye+=Re[0];_e=qe.keywordPatternRe.lastIndex,Re=qe.keywordPatternRe.exec(bt)}Ye+=bt.substring(_e),Jt.addText(Ye)}function Sn(){if(bt==="")return;let _e=null;if(typeof qe.subLanguage=="string"){if(!me[qe.subLanguage]){Jt.addText(bt);return}_e=xr(qe.subLanguage,bt,!0,Ho[qe.subLanguage]),Ho[qe.subLanguage]=_e._top}else _e=ki(bt,qe.subLanguage.length?qe.subLanguage:null);qe.relevance>0&&(Ri+=_e.relevance),Jt.__addSublanguage(_e._emitter,_e.language)}function _t(){qe.subLanguage!=null?Sn():On(),bt=""}function Rn(_e,Re){_e!==""&&(Jt.startScope(Re),Jt.addText(_e),Jt.endScope())}function ts(_e,Re){let Ye=1;const rt=Re.length-1;for(;Ye<=rt;){if(!_e._emit[Ye]){Ye++;continue}const $t=un.classNameAliases[_e[Ye]]||_e[Ye],or=Re[Ye];$t?Rn(or,$t):(bt=or,On(),bt=""),Ye++}}function Ai(_e,Re){return _e.scope&&typeof _e.scope=="string"&&Jt.openNode(un.classNameAliases[_e.scope]||_e.scope),_e.beginScope&&(_e.beginScope._wrap?(Rn(bt,un.classNameAliases[_e.beginScope._wrap]||_e.beginScope._wrap),bt=""):_e.beginScope._multi&&(ts(_e.beginScope,Re),bt="")),qe=Object.create(_e,{parent:{value:qe}}),qe}function Ur(_e,Re,Ye){let rt=E(_e.endRe,Ye);if(rt){if(_e["on:end"]){const $t=new t(_e);_e["on:end"](Re,$t),$t.isMatchIgnored&&(rt=!1)}if(rt){for(;_e.endsParent&&_e.parent;)_e=_e.parent;return _e}}if(_e.endsWithParent)return Ur(_e.parent,Re,Ye)}function Mi(_e){return qe.matcher.regexIndex===0?(bt+=_e[0],1):(Di=!0,0)}function ns(_e){const Re=_e[0],Ye=_e.rule,rt=new t(Ye),$t=[Ye.__beforeBegin,Ye["on:begin"]];for(const or of $t)if(or&&(or(_e,rt),rt.isMatchIgnored))return Mi(Re);return Ye.skip?bt+=Re:(Ye.excludeBegin&&(bt+=Re),_t(),!Ye.returnBegin&&!Ye.excludeBegin&&(bt=Re)),Ai(Ye,_e),Ye.returnBegin?0:Re.length}function kn(_e){const Re=_e[0],Ye=Le.substring(_e.index),rt=Ur(qe,_e,Ye);if(!rt)return nt;const $t=qe;qe.endScope&&qe.endScope._wrap?(_t(),Rn(Re,qe.endScope._wrap)):qe.endScope&&qe.endScope._multi?(_t(),ts(qe.endScope,_e)):$t.skip?bt+=Re:($t.returnEnd||$t.excludeEnd||(bt+=Re),_t(),$t.excludeEnd&&(bt=Re));do qe.scope&&Jt.closeNode(),!qe.skip&&!qe.subLanguage&&(Ri+=qe.relevance),qe=qe.parent;while(qe!==rt.parent);return rt.starts&&Ai(rt.starts,_e),$t.returnEnd?0:Re.length}function ba(){const _e=[];for(let Re=qe;Re!==un;Re=Re.parent)Re.scope&&_e.unshift(Re.scope);_e.forEach(Re=>Jt.openNode(Re))}let Er={};function Oi(_e,Re){const Ye=Re&&Re[0];if(bt+=_e,Ye==null)return _t(),0;if(Er.type==="begin"&&Re.type==="end"&&Er.index===Re.index&&Ye===""){if(bt+=Le.slice(Re.index,Re.index+1),!St){const rt=new Error(`0 width match regex (${ye})`);throw rt.languageName=ye,rt.badRule=Er.rule,rt}return 1}if(Er=Re,Re.type==="begin")return ns(Re);if(Re.type==="illegal"&&!Qe){const rt=new Error('Illegal lexeme "'+Ye+'" for mode "'+(qe.scope||"")+'"');throw rt.mode=qe,rt}else if(Re.type==="end"){const rt=kn(Re);if(rt!==nt)return rt}if(Re.type==="illegal"&&Ye==="")return bt+=` `,1;if(il>1e5&&il>Re.index*3)throw new Error("potential infinite loop, way more iterations than matches");return bt+=Ye,Ye.length}const un=bn(ye);if(!un)throw ct(gt.replace("{}",ye)),new Error('Unknown language: "'+ye+'"');const xa=Kt(un);let rs="",qe=ft||xa;const Ho={},Jt=new Se.__emitter(Se);ba();let bt="",Ri=0,ei=0,il=0,Di=!1;try{if(un.__emitTokens)un.__emitTokens(Le,Jt);else{for(qe.matcher.considerAll();;){il++,Di?Di=!1:qe.matcher.considerAll(),qe.matcher.lastIndex=ei;const _e=qe.matcher.exec(Le);if(!_e)break;const Re=Le.substring(ei,_e.index),Ye=Oi(Re,_e);ei=_e.index+Ye}Oi(Le.substring(ei))}return Jt.finalize(),rs=Jt.toHTML(),{language:ye,value:rs,relevance:Ri,illegal:!1,_emitter:Jt,_top:qe}}catch(_e){if(_e.message&&_e.message.includes("Illegal"))return{language:ye,value:cn(Le),illegal:!0,relevance:0,_illegalBy:{message:_e.message,index:ei,context:Le.slice(ei-100,ei+100),mode:_e.mode,resultSoFar:rs},_emitter:Jt};if(St)return{language:ye,value:cn(Le),illegal:!1,relevance:0,errorRaised:_e,_emitter:Jt,_top:qe};throw _e}}function Si(ye){const Le={value:cn(ye),illegal:!1,relevance:0,_top:Ae,_emitter:new Se.__emitter(Se)};return Le._emitter.addText(ye),Le}function ki(ye,Le){Le=Le||Se.languages||Object.keys(me);const Qe=Si(ye),ft=Le.filter(bn).filter(_r).map(_t=>xr(_t,ye,!1));ft.unshift(Qe);const Ht=ft.sort((_t,Rn)=>{if(_t.relevance!==Rn.relevance)return Rn.relevance-_t.relevance;if(_t.language&&Rn.language){if(bn(_t.language).supersetOf===Rn.language)return 1;if(bn(Rn.language).supersetOf===_t.language)return-1}return 0}),[pn,On]=Ht,Sn=pn;return Sn.secondBest=On,Sn}function lr(ye,Le,Qe){const ft=Le&&Ee[Le]||Qe;ye.classList.add("hljs"),ye.classList.add(`language-${ft}`)}function Ut(ye){let Le=null;const Qe=Bt(ye);if(Ue(Qe))return;if(Jr("before:highlightElement",{el:ye,language:Qe}),ye.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",ye);return}if(ye.children.length>0&&(Se.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(ye)),Se.throwUnescapedHTML))throw new In("One of your code blocks includes unescaped HTML.",ye.innerHTML);Le=ye;const ft=Le.textContent,Ht=Qe?Mt(ft,{language:Qe,ignoreIllegals:!0}):ki(ft);ye.innerHTML=Ht.value,ye.dataset.highlighted="yes",lr(ye,Qe,Ht.language),ye.result={language:Ht.language,re:Ht.relevance,relevance:Ht.relevance},Ht.secondBest&&(ye.secondBest={language:Ht.secondBest.language,relevance:Ht.secondBest.relevance}),Jr("after:highlightElement",{el:ye,result:Ht,text:ft})}function mn(ye){Se=Ni(Se,ye)}const yr=()=>{Ti(),ue("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ci(){Ti(),ue("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let pa=!1;function Ti(){function ye(){Ti()}if(document.readyState==="loading"){pa||window.addEventListener("DOMContentLoaded",ye,!1),pa=!0;return}document.querySelectorAll(Se.cssSelector).forEach(Ut)}function Ja(ye,Le){let Qe=null;try{Qe=Le(re)}catch(ft){if(ct("Language definition for '{}' could not be registered.".replace("{}",ye)),St)ct(ft);else throw ft;Qe=Ae}Qe.name||(Qe.name=ye),me[ye]=Qe,Qe.rawDefinition=Le.bind(null,re),Qe.aliases&&vr(Qe.aliases,{languageName:ye})}function Wr(ye){delete me[ye];for(const Le of Object.keys(Ee))Ee[Le]===ye&&delete Ee[Le]}function ga(){return Object.keys(me)}function bn(ye){return ye=(ye||"").toLowerCase(),me[ye]||me[Ee[ye]]}function vr(ye,{languageName:Le}){typeof ye=="string"&&(ye=[ye]),ye.forEach(Qe=>{Ee[Qe.toLowerCase()]=Le})}function _r(ye){const Le=bn(ye);return Le&&!Le.disableAutodetect}function Br(ye){ye["before:highlightBlock"]&&!ye["before:highlightElement"]&&(ye["before:highlightElement"]=Le=>{ye["before:highlightBlock"](Object.assign({block:Le.el},Le))}),ye["after:highlightBlock"]&&!ye["after:highlightElement"]&&(ye["after:highlightElement"]=Le=>{ye["after:highlightBlock"](Object.assign({block:Le.el},Le))})}function Ft(ye){Br(ye),Pe.push(ye)}function es(ye){const Le=Pe.indexOf(ye);Le!==-1&&Pe.splice(Le,1)}function Jr(ye,Le){const Qe=ye;Pe.forEach(function(ft){ft[Qe]&&ft[Qe](Le)})}function wr(ye){return ue("10.7.0","highlightBlock will be removed entirely in v12.0"),ue("10.7.0","Please use highlightElement now."),Ut(ye)}Object.assign(re,{highlight:Mt,highlightAuto:ki,highlightAll:Ti,highlightElement:Ut,highlightBlock:wr,configure:mn,initHighlighting:yr,initHighlightingOnLoad:Ci,registerLanguage:Ja,unregisterLanguage:Wr,listLanguages:ga,getLanguage:bn,registerAliases:vr,autoDetection:_r,inherit:Ni,addPlugin:Ft,removePlugin:es}),re.debugMode=function(){St=!1},re.safeMode=function(){St=!0},re.versionString=ut,re.regex={concat:N,lookahead:y,either:w,optional:_,anyNumberOfTimes:x};for(const ye in ce)typeof ce[ye]=="object"&&e(ce[ye]);return Object.assign(re,ce),re},hn=Mn({});return hn.newInstance=()=>Mn({}),Rh=hn,hn.HighlightJS=hn,hn.default=hn,Rh}var Dh,Jy;function G4(){if(Jy)return Dh;Jy=1;function e(t){const r=t.regex,a=r.concat(/[\p{L}_]/u,r.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]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},d=t.inherit(c,{begin:/\(/,end:/\)/}),f=t.inherit(t.APOS_STRING_MODE,{className:"string"}),h=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),m={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,h,f,d,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,d,h,f]}]}]},t.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[h]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:r.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:m}]},{className:"tag",begin:r.concat(/<\//,r.lookahead(r.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}return Dh=e,Dh}var jh,ev;function V4(){if(ev)return jh;ev=1;function e(t){const r=t.regex,a={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[a]}]};Object.assign(a,{className:"variable",variants:[{begin:r.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),d={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},f={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,a,o]};o.contains.push(f);const h={match:/\\"/},m={className:"string",begin:/'/,end:/'/},p={match:/\\'/},y={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,a]},x=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],_=t.SHEBANG({binary:`(${x.join("|")})`,relevance:10}),N={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},S=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],k={match:/(\/[a-z._-]+)+/},E=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],M=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],I=["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"],R=["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:S,literal:w,built_in:[...E,...M,"set","shopt",...I,...R]},contains:[_,t.SHEBANG(),N,y,c,d,k,f,h,m,p,a]}}return jh=e,jh}var Lh,tv;function Y4(){if(tv)return Lh;tv=1;function e(t){const r=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",d="("+s+"|"+r.optional(o)+"[a-zA-Z_]\\w*"+r.optional("<[^<>]+>")+")",f={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},m={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})"/})]},p={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},y={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(m,{className:"string"}),{className:"string",begin:/<.*?>/},a,t.C_BLOCK_COMMENT_MODE]},x={className:"title",begin:r.optional(o)+t.IDENT_RE,relevance:0},_=r.optional(o)+t.IDENT_RE+"\\s*\\(",w={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"},k=[y,f,a,t.C_BLOCK_COMMENT_MODE,p,m],E={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:k.concat([{begin:/\(/,end:/\)/,keywords:w,contains:k.concat(["self"]),relevance:0}]),relevance:0},M={begin:"("+d+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:w,relevance:0},{begin:_,returnBegin:!0,contains:[t.inherit(x,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,m,p,f,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",a,t.C_BLOCK_COMMENT_MODE,m,p,f]}]},f,a,t.C_BLOCK_COMMENT_MODE,y]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:y,strings:m,keywords:w}}}return Lh=e,Lh}var zh,nv;function X4(){if(nv)return zh;nv=1;function e(t){const r=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",d="(?!struct)("+s+"|"+r.optional(o)+"[a-zA-Z_]\\w*"+r.optional("<[^<>]+>")+")",f={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},m={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})"/})]},p={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},y={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(m,{className:"string"}),{className:"string",begin:/<.*?>/},a,t.C_BLOCK_COMMENT_MODE]},x={className:"title",begin:r.optional(o)+t.IDENT_RE,relevance:0},_=r.optional(o)+t.IDENT_RE+"\\s*\\(",N=["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"],S=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["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"],k=["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"],I={type:S,keyword:N,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},R={className:"function.dispatch",relevance:0,keywords:{_hint:k},begin:r.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,t.IDENT_RE,r.lookahead(/(<[^<>]+>|)\s*\(/))},U=[R,y,f,a,t.C_BLOCK_COMMENT_MODE,p,m],B={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:I,contains:U.concat([{begin:/\(/,end:/\)/,keywords:I,contains:U.concat(["self"]),relevance:0}]),relevance:0},Z={className:"function",begin:"("+d+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:I,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:I,relevance:0},{begin:_,returnBegin:!0,contains:[x],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[m,p]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:I,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,m,p,f,{begin:/\(/,end:/\)/,keywords:I,relevance:0,contains:["self",a,t.C_BLOCK_COMMENT_MODE,m,p,f]}]},f,a,t.C_BLOCK_COMMENT_MODE,y]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:I,illegal:"",keywords:I,contains:["self",f]},{begin:t.IDENT_RE+"::",keywords:I},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}return zh=e,zh}var Ih,rv;function K4(){if(rv)return Ih;rv=1;function e(t){const r=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],a=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],s=["default","false","null","true"],o=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],d={keyword:o.concat(c),built_in:r,literal:s},f=t.inherit(t.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),h={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},m={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},p={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},y=t.inherit(p,{illegal:/\n/}),x={className:"subst",begin:/\{/,end:/\}/,keywords:d},_=t.inherit(x,{illegal:/\n/}),N={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,_]},S={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},x]},w=t.inherit(S,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},_]});x.contains=[S,N,p,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.C_BLOCK_COMMENT_MODE],_.contains=[w,N,y,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const k={variants:[m,S,N,p,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},f]},M=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",I={begin:"@"+t.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:d,illegal:/::/,contains:[t.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},k,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},f,E,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[f,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[f,E,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+M+"\\s+)+"+t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:d,contains:[{beginKeywords:a.join(" "),relevance:0},{begin:t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[t.TITLE_MODE,E],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,relevance:0,contains:[k,h,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},I]}}return Ih=e,Ih}var Bh,iv;function Z4(){if(iv)return Bh;iv=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.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:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.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_-]*/}}),t=["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"],r=["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"],a=[...t,...r],s=["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(),o=["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(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["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 f(h){const m=h.regex,p=e(h),y={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},x="and or not only",_=/@-?\w[\w]*(-\w+)*/,N="[a-zA-Z-][a-zA-Z0-9_-]*",S=[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[p.BLOCK_COMMENT,y,p.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+N,relevance:0},p.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+o.join("|")+")"},{begin:":(:)?("+c.join("|")+")"}]},p.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[p.BLOCK_COMMENT,p.HEXCOLOR,p.IMPORTANT,p.CSS_NUMBER_MODE,...S,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...S,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},p.FUNCTION_DISPATCH]},{begin:m.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:_},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:x,attribute:s.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...S,p.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b"}]}}return Bh=f,Bh}var Uh,av;function Q4(){if(av)return Uh;av=1;function e(t){const r=t.regex,a={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}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},d={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},f=/[A-Za-z][A-Za-z0-9+.-]*/,h={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:r.concat(/\[.+?\]\(/,f,/:\/\/.*?\)/),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}]},m={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},p={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},y=t.inherit(m,{contains:[]}),x=t.inherit(p,{contains:[]});m.contains.push(x),p.contains.push(y);let _=[a,h];return[m,p,y,x].forEach(k=>{k.contains=k.contains.concat(_)}),_=_.concat(m,p),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:_},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:_}]}]},a,c,m,p,{className:"quote",begin:"^>\\s+",contains:_,end:"$"},o,s,h,d,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}return Uh=e,Uh}var Hh,sv;function W4(){if(sv)return Hh;sv=1;function e(t){const r=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:r.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:r.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}return Hh=e,Hh}var $h,lv;function J4(){if(lv)return $h;lv=1;function e(t){const r=t.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=r.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),o=r.concat(s,/(::\w+)*/),d={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},f={className:"doctag",begin:"@[A-Za-z]+"},h={begin:"#<",end:">"},m=[t.COMMENT("#","$",{contains:[f]}),t.COMMENT("^=begin","^=end",{contains:[f],relevance:10}),t.COMMENT("^__END__",t.MATCH_NOTHING_RE)],p={className:"subst",begin:/#\{/,end:/\}/,keywords:d},y={className:"string",contains:[t.BACKSLASH_ESCAPE,p],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:r.concat(/<<[-~]?'?/,r.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[t.BACKSLASH_ESCAPE,p]})]}]},x="[1-9](_?[0-9])*|0",_="[0-9](_?[0-9])*",N={className:"number",relevance:0,variants:[{begin:`\\b(${x})(\\.(${_}))?([eE][+-]?(${_})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},S={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},U=[y,{variants:[{match:[/class\s+/,o,/\s+<\s+/,o]},{match:[/\b(class|module)\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:d},{relevance:0,match:[o,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[S]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[y,{begin:a}],relevance:0},N,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:d},{begin:"("+t.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[t.BACKSLASH_ESCAPE,p],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(h,m),relevance:0}].concat(h,m);p.contains=U,S.contains=U;const z=[{begin:/^\s*=>/,starts:{end:"$",contains:U}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:d,contains:U}}];return m.unshift(h),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat(z).concat(m).concat(U)}}return $h=e,$h}var qh,ov;function eD(){if(ov)return qh;ov=1;function e(t){const c={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:c,illegal:"s(c,d,f-1))}function o(c){const d=c.regex,f="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",h=f+s("(?:<"+f+"~~~(?:\\s*,\\s*"+f+"~~~)*>)?",/~~~/g,2),_={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"]},N={className:"meta",begin:"@"+f,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},S={className:"params",begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:[c.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:_,illegal:/<\/|#/,contains:[c.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[c.BACKSLASH_ESCAPE]},c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,f],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[d.concat(/(?!else)/,f),/\s+/,f,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,f],className:{1:"keyword",3:"title.class"},contains:[S,c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+h+"\\s+)",c.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:_,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:[N,c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,a,c.C_BLOCK_COMMENT_MODE]},c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE]},a,N]}}return Gh=o,Gh}var Vh,fv;function iD(){if(fv)return Vh;fv=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["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"],r=["true","false","null","undefined","NaN","Infinity"],a=["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"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(o,a,s);function f(h){const m=h.regex,p=(J,{after:W})=>{const te="",end:""},_=/<[A-Za-z0-9\\._:-]+\s*\/>/,N={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(J,W)=>{const te=J[0].length+J.index,ce=J.input[te];if(ce==="<"||ce===","){W.ignoreMatch();return}ce===">"&&(p(J,{after:te})||W.ignoreMatch());let fe;const be=J.input.substring(te);if(fe=be.match(/^\s*=/)){W.ignoreMatch();return}if((fe=be.match(/^\s+extends\s+/))&&fe.index===0){W.ignoreMatch();return}}},S={$pattern:e,keyword:t,literal:r,built_in:d,"variable.language":c},w="[0-9](_?[0-9])*",k=`\\.(${w})`,E="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",M={className:"number",variants:[{begin:`(\\b(${E})((${k})|\\.)?|(${k}))[eE][+-]?(${w})\\b`},{begin:`\\b(${E})\\b((${k})\\b|\\.)?|(${k})\\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},I={className:"subst",begin:"\\$\\{",end:"\\}",keywords:S,contains:[]},R={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,I],subLanguage:"xml"}},U={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,I],subLanguage:"css"}},B={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,I],subLanguage:"graphql"}},Z={className:"string",begin:"`",end:"`",contains:[h.BACKSLASH_ESCAPE,I]},z={className:"comment",variants:[h.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:y+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),h.C_BLOCK_COMMENT_MODE,h.C_LINE_COMMENT_MODE]},V=[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,R,U,B,Z,{match:/\$\d+/},M];I.contains=V.concat({begin:/\{/,end:/\}/,keywords:S,contains:["self"].concat(V)});const P=[].concat(z,I.contains),T=P.concat([{begin:/(\s*)\(/,end:/\)/,keywords:S,contains:["self"].concat(P)}]),$={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:S,contains:T},O={variants:[{match:[/class/,/\s+/,y,/\s+/,/extends/,/\s+/,m.concat(y,"(",m.concat(/\./,y),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,y],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:m.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:{_:[...a,...s]}},X={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},K={variants:[{match:[/function/,/\s+/,y,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[$],illegal:/%/},C={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function j(J){return m.concat("(?!",J.join("|"),")")}const Y={match:m.concat(/\b/,j([...o,"super","import"].map(J=>`${J}\\s*\\(`)),y,m.lookahead(/\s*\(/)),className:"title.function",relevance:0},L={begin:m.concat(/\./,m.lookahead(m.concat(y,/(?![0-9A-Za-z$_(])/))),end:y,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,y,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},$]},q="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+h.UNDERSCORE_IDENT_RE+")\\s*=>",Q={match:[/const|var|let/,/\s+/,y,/\s*/,/=\s*/,/(async\s*)?/,m.lookahead(q)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[$]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:S,exports:{PARAMS_CONTAINS:T,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[h.SHEBANG({label:"shebang",binary:"node",relevance:5}),X,h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,R,U,B,Z,z,{match:/\$\d+/},M,H,{scope:"attr",match:y+m.lookahead(":"),relevance:0},Q,{begin:"("+h.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[z,h.REGEXP_MODE,{className:"function",begin:q,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:h.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:S,contains:T}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:x.begin,end:x.end},{match:_},{begin:N.begin,"on:begin":N.isTrulyOpeningTag,end:N.end}],subLanguage:"xml",contains:[{begin:N.begin,end:N.end,skip:!0,contains:["self"]}]}]},K,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+h.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[$,h.inherit(h.TITLE_MODE,{begin:y,className:"title.function"})]},{match:/\.\.\./,relevance:0},L,{match:"\\$"+y,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[$]},Y,C,O,G,{match:/\$[(.]/}]}}return Vh=f,Vh}var Yh,hv;function aD(){if(hv)return Yh;hv=1;function e(t){const r={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],o={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:s},contains:[r,a,t.QUOTE_STRING_MODE,o,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}return Yh=e,Yh}var Xh,mv;function sD(){if(mv)return Xh;mv=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,r="[0-9a-fA-F](_*[0-9a-fA-F])*",a={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${r})\\.?|(${r})?\\.(${r}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${r})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function s(o){const c={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},d={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},f={className:"symbol",begin:o.UNDERSCORE_IDENT_RE+"@"},h={className:"subst",begin:/\$\{/,end:/\}/,contains:[o.C_NUMBER_MODE]},m={className:"variable",begin:"\\$"+o.UNDERSCORE_IDENT_RE},p={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[m,h]},{begin:"'",end:"'",illegal:/\n/,contains:[o.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[o.BACKSLASH_ESCAPE,m,h]}]};h.contains.push(p);const y={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+o.UNDERSCORE_IDENT_RE+")?"},x={className:"meta",begin:"@"+o.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[o.inherit(p,{className:"string"}),"self"]}]},_=a,N=o.COMMENT("/\\*","\\*/",{contains:[o.C_BLOCK_COMMENT_MODE]}),S={variants:[{className:"type",begin:o.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},w=S;return w.variants[1].contains=[S],S.variants[1].contains=[w],{name:"Kotlin",aliases:["kt","kts"],keywords:c,contains:[o.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),o.C_LINE_COMMENT_MODE,N,d,f,y,x,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:c,relevance:5,contains:[{begin:o.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[o.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:c,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[S,o.C_LINE_COMMENT_MODE,N],relevance:0},o.C_LINE_COMMENT_MODE,N,y,x,p,o.C_NUMBER_MODE]},N]},{begin:[/class|interface|trait/,/\s+/,o.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},o.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},y,x]},p,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` `},_]}}return Xh=s,Xh}var Kh,pv;function lD(){if(pv)return Kh;pv=1;const e=m=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:m.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:[m.APOS_STRING_MODE,m.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:m.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_-]*/}}),t=["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"],r=["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"],a=[...t,...r],s=["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(),o=["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(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["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(),f=o.concat(c).sort().reverse();function h(m){const p=e(m),y=f,x="and or not only",_="[\\w-]+",N="("+_+"|@\\{"+_+"\\})",S=[],w=[],k=function(P){return{className:"string",begin:"~?"+P+".*?"+P}},E=function(P,T,$){return{className:P,begin:T,relevance:$}},M={$pattern:/[a-z-]+/,keyword:x,attribute:s.join(" ")},I={begin:"\\(",end:"\\)",contains:w,keywords:M,relevance:0};w.push(m.C_LINE_COMMENT_MODE,m.C_BLOCK_COMMENT_MODE,k("'"),k('"'),p.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},p.HEXCOLOR,I,E("variable","@@?"+_,10),E("variable","@\\{"+_+"\\}"),E("built_in","~?`[^`]*?`"),{className:"attribute",begin:_+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},p.IMPORTANT,{beginKeywords:"and not"},p.FUNCTION_DISPATCH);const R=w.concat({begin:/\{/,end:/\}/,contains:S}),U={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(w)},B={begin:N+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},p.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:w}}]},Z={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:M,returnEnd:!0,contains:w,relevance:0}},D={className:"variable",variants:[{begin:"@"+_+"\\s*:",relevance:15},{begin:"@"+_}],starts:{end:"[;}]",returnEnd:!0,contains:R}},z={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:N,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[m.C_LINE_COMMENT_MODE,m.C_BLOCK_COMMENT_MODE,U,E("keyword","all\\b"),E("variable","@\\{"+_+"\\}"),{begin:"\\b("+a.join("|")+")\\b",className:"selector-tag"},p.CSS_NUMBER_MODE,E("selector-tag",N,0),E("selector-id","#"+N),E("selector-class","\\."+N,0),E("selector-tag","&",0),p.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+o.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+c.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:R},{begin:"!important"},p.FUNCTION_DISPATCH]},V={begin:_+`:(:)?(${y.join("|")})`,returnBegin:!0,contains:[z]};return S.push(m.C_LINE_COMMENT_MODE,m.C_BLOCK_COMMENT_MODE,Z,D,V,B,z,U,p.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:S}}return Kh=h,Kh}var Zh,gv;function oD(){if(gv)return Zh;gv=1;function e(t){const r="\\[=*\\[",a="\\]=*\\]",s={begin:r,end:a,contains:["self"]},o=[t.COMMENT("--(?!"+r+")","$"),t.COMMENT("--"+r,a,{contains:[s],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:t.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[t.inherit(t.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:o}].concat(o)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:r,end:a,contains:[s],relevance:5}])}}return Zh=e,Zh}var Qh,bv;function cD(){if(bv)return Qh;bv=1;function e(t){const r={className:"variable",variants:[{begin:"\\$\\("+t.UNDERSCORE_IDENT_RE+"\\)",contains:[t.BACKSLASH_ESCAPE]},{begin:/\$[@%\{/,end:/\}/},f={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},h={scope:"variable",variants:[{begin:/\$\d/},{begin:r.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[f]},m={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},p=[t.BACKSLASH_ESCAPE,c,h],y=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],x=(S,w,k="\\1")=>{const E=k==="\\1"?k:r.concat(k,w);return r.concat(r.concat("(?:",S,")"),w,/(?:\\.|[^\\\/])*?/,E,/(?:\\.|[^\\\/])*?/,k,s)},_=(S,w,k)=>r.concat(r.concat("(?:",S,")"),w,/(?:\\.|[^\\\/])*?/,k,s),N=[h,t.HASH_COMMENT_MODE,t.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),d,{className:"string",contains:p,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},m,{begin:"(\\/\\/|"+t.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[t.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:x("s|tr|y",r.either(...y,{capture:!0}))},{begin:x("s|tr|y","\\(","\\)")},{begin:x("s|tr|y","\\[","\\]")},{begin:x("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:_("(?:m|qr)?",/\//,/\//)},{begin:_("m|qr",r.either(...y,{capture:!0}),/\1/)},{begin:_("m|qr",/\(/,/\)/)},{begin:_("m|qr",/\[/,/\]/)},{begin:_("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,f]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,f,m]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=N,d.contains=N,{name:"Perl",aliases:["pl","pm"],keywords:o,contains:N}}return Wh=e,Wh}var Jh,yv;function dD(){if(yv)return Jh;yv=1;function e(t){const r={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a=/[a-zA-Z@][a-zA-Z0-9_]*/,f={"variable.language":["this","super"],$pattern:a,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},h={$pattern:a,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:f,illegal:"/,end:/$/,illegal:"\\n"},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+h.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:h,contains:[t.UNDERSCORE_TITLE_MODE]},{begin:"\\."+t.UNDERSCORE_IDENT_RE,relevance:0}]}}return Jh=e,Jh}var em,vv;function fD(){if(vv)return em;vv=1;function e(t){const r=t.regex,a=/(?![A-Za-z0-9])(?![$])/,s=r.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),o=r.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),c=r.concat(/[A-Z]+/,a),d={scope:"variable",match:"\\$+"+s},f={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},h={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},m=t.inherit(t.APOS_STRING_MODE,{illegal:null}),p=t.inherit(t.QUOTE_STRING_MODE,{illegal:null,contains:t.QUOTE_STRING_MODE.contains.concat(h)}),y={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:t.QUOTE_STRING_MODE.contains.concat(h),"on:begin":($,O)=>{O.data._beginMatch=$[1]||$[2]},"on:end":($,O)=>{O.data._beginMatch!==$[1]&&O.ignoreMatch()}},x=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),_=`[ -]`,N={scope:"string",variants:[p,m,y,x]},S={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],k=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],E=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],I={keyword:k,literal:($=>{const O=[];return $.forEach(H=>{O.push(H),H.toLowerCase()===H?O.push(H.toUpperCase()):O.push(H.toLowerCase())}),O})(w),built_in:E},R=$=>$.map(O=>O.replace(/\|\d+$/,"")),U={variants:[{match:[/new/,r.concat(_,"+"),r.concat("(?!",R(E).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},B=r.concat(s,"\\b(?!\\()"),Z={variants:[{match:[r.concat(/::/,r.lookahead(/(?!class\b)/)),B],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,r.concat(/::/,r.lookahead(/(?!class\b)/)),B],scope:{1:"title.class",3:"variable.constant"}},{match:[o,r.concat("::",r.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},D={scope:"attr",match:r.concat(s,r.lookahead(":"),r.lookahead(/(?!::)/))},z={relevance:0,begin:/\(/,end:/\)/,keywords:I,contains:[D,d,Z,t.C_BLOCK_COMMENT_MODE,N,S,U]},V={relevance:0,match:[/\b/,r.concat("(?!fn\\b|function\\b|",R(k).join("\\b|"),"|",R(E).join("\\b|"),"\\b)"),s,r.concat(_,"*"),r.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[z]};z.contains.push(V);const P=[D,Z,t.C_BLOCK_COMMENT_MODE,N,S,U],T={begin:r.concat(/#\[\s*\\?/,r.either(o,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...P]},...P,{scope:"meta",variants:[{match:o},{match:c}]}]};return{case_insensitive:!1,keywords:I,contains:[T,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},f,{scope:"variable.language",match:/\$this\b/},d,V,Z,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},U,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:I,contains:["self",T,d,Z,t.C_BLOCK_COMMENT_MODE,N,S]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},N,S]}}return em=e,em}var tm,_v;function hD(){if(_v)return tm;_v=1;function e(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}return tm=e,tm}var nm,wv;function mD(){if(wv)return nm;wv=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return nm=e,nm}var rm,Ev;function pD(){if(Ev)return rm;Ev=1;function e(t){const r=t.regex,a=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"],f={$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"]},h={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:f,illegal:/#/},p={begin:/\{\{/,relevance:0},y={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h,p,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h,p,m]},{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,p,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,p,m]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},x="[0-9](_?[0-9])*",_=`(\\b(${x}))?\\.(${x})|\\b(${x})\\.`,N=`\\b|${s.join("|")}`,S={className:"number",relevance:0,variants:[{begin:`(\\b(${x})|(${_}))[eE][+-]?(${x})[jJ]?(?=${N})`},{begin:`(${_})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${x})[jJ](?=${N})`}]},w={className:"comment",begin:r.lookahead(/# type:/),end:/$/,keywords:f,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},k={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:["self",h,S,y,t.HASH_COMMENT_MODE]}]};return m.contains=[y,S,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:f,illegal:/(<\/|\?)|=>/,contains:[h,S,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},y,w,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[k]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[S,k,y]}]}}return rm=e,rm}var im,Nv;function gD(){if(Nv)return im;Nv=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return im=e,im}var am,Sv;function bD(){if(Sv)return am;Sv=1;function e(t){const r=t.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,s=r.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=r.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:r.lookahead(r.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[o,s]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,s]},{scope:{1:"punctuation",2:"number"},match:[c,s]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,s]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return am=e,am}var sm,kv;function xD(){if(kv)return sm;kv=1;function e(t){const r=t.regex,a=/(r#)?/,s=r.concat(a,t.UNDERSCORE_IDENT_RE),o=r.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:r.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,r.lookahead(/\s*\(/))},d="([ui](8|16|32|64|128|size)|f(32|64))?",f=["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"],h=["true","false","Some","None","Ok","Err"],m=["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!"],p=["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:p,keyword:f,literal:h,built_in:m},illegal:""},c]}}return sm=e,sm}var lm,Cv;function yD(){if(Cv)return lm;Cv=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.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:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.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_-]*/}}),t=["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"],r=["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"],a=[...t,...r],s=["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(),o=["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(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["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 f(h){const m=e(h),p=c,y=o,x="@[a-z-]+",_="and or not only",S={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[h.C_LINE_COMMENT_MODE,h.C_BLOCK_COMMENT_MODE,m.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},m.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+y.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+p.join("|")+")"},S,{begin:/\(/,end:/\)/,contains:[m.CSS_NUMBER_MODE]},m.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[m.BLOCK_COMMENT,S,m.HEXCOLOR,m.CSS_NUMBER_MODE,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,m.IMPORTANT,m.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:x,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:_,attribute:s.join(" ")},contains:[{begin:x,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},S,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,m.HEXCOLOR,m.CSS_NUMBER_MODE]},m.FUNCTION_DISPATCH]}}return lm=f,lm}var om,Tv;function vD(){if(Tv)return om;Tv=1;function e(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}return om=e,om}var cm,Av;function _D(){if(Av)return cm;Av=1;function e(t){const r=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],d=["double precision","large object","with timezone","without timezone"],f=["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"],h=["add","asc","collation","desc","final","first","last","view"],m=["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"],p=["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"],y=["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"],x=["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"],_=p,N=[...m,...h].filter(R=>!p.includes(R)),S={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},k={match:r.concat(/\b/,r.either(..._),/\s*\(/),relevance:0,keywords:{built_in:_}};function E(R){return r.concat(/\b/,r.either(...R.map(U=>U.replace(/\s+/,"\\s+"))),/\b/)}const M={scope:"keyword",match:E(x),relevance:0};function I(R,{exceptions:U,when:B}={}){const Z=B;return U=U||[],R.map(D=>D.match(/\|\d+$/)||U.includes(D)?D:Z(D)?`${D}|0`:D)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:I(N,{when:R=>R.length<3}),literal:c,type:f,built_in:y},contains:[{scope:"type",match:E(d)},M,k,S,s,o,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,w]}}return cm=e,cm}var um,Mv;function wD(){if(Mv)return um;Mv=1;function e(B){return B?typeof B=="string"?B:B.source:null}function t(B){return r("(?=",B,")")}function r(...B){return B.map(D=>e(D)).join("")}function a(B){const Z=B[B.length-1];return typeof Z=="object"&&Z.constructor===Object?(B.splice(B.length-1,1),Z):{}}function s(...B){return"("+(a(B).capture?"":"?:")+B.map(z=>e(z)).join("|")+")"}const o=B=>r(/\b/,B,/\w$/.test(B)?/\b/:/\B/),c=["Protocol","Type"].map(o),d=["init","self"].map(o),f=["Any","Self"],h=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],m=["false","nil","true"],p=["assignment","associativity","higherThan","left","lowerThan","none","right"],y=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],x=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],_=s(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),N=s(_,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),S=r(_,N,"*"),w=s(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),k=s(w,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),E=r(w,k,"*"),M=r(/[A-Z]/,k,"*"),I=["attached","autoclosure",r(/convention\(/,s("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",r(/objc\(/,E,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],R=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function U(B){const Z={match:/\s+/,relevance:0},D=B.COMMENT("/\\*","\\*/",{contains:["self"]}),z=[B.C_LINE_COMMENT_MODE,D],V={match:[/\./,s(...c,...d)],className:{2:"keyword"}},P={match:r(/\./,s(...h)),relevance:0},T=h.filter(nt=>typeof nt=="string").concat(["_|0"]),$=h.filter(nt=>typeof nt!="string").concat(f).map(o),O={variants:[{className:"keyword",match:s(...$,...d)}]},H={$pattern:s(/\b\w+/,/#\w+/),keyword:T.concat(y),literal:m},X=[V,P,O],K={match:r(/\./,s(...x)),relevance:0},C={className:"built_in",match:r(/\b/,s(...x),/(?=\()/)},j=[K,C],Y={match:/->/,relevance:0},L={className:"operator",relevance:0,variants:[{match:S},{match:`\\.(\\.|${N})+`}]},G=[Y,L],q="([0-9]_*)+",Q="([0-9a-fA-F]_*)+",J={className:"number",relevance:0,variants:[{match:`\\b(${q})(\\.(${q}))?([eE][+-]?(${q}))?\\b`},{match:`\\b0x(${Q})(\\.(${Q}))?([pP][+-]?(${q}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},W=(nt="")=>({className:"subst",variants:[{match:r(/\\/,nt,/[0\\tnr"']/)},{match:r(/\\/,nt,/u\{[0-9a-fA-F]{1,8}\}/)}]}),te=(nt="")=>({className:"subst",match:r(/\\/,nt,/[\t ]*(?:[\r\n]|\r\n)/)}),ce=(nt="")=>({className:"subst",label:"interpol",begin:r(/\\/,nt,/\(/),end:/\)/}),fe=(nt="")=>({begin:r(nt,/"""/),end:r(/"""/,nt),contains:[W(nt),te(nt),ce(nt)]}),be=(nt="")=>({begin:r(nt,/"/),end:r(/"/,nt),contains:[W(nt),ce(nt)]}),we={className:"string",variants:[fe(),fe("#"),fe("##"),fe("###"),be(),be("#"),be("##"),be("###")]},Ne=[B.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[B.BACKSLASH_ESCAPE]}],je={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:Ne},$e=nt=>{const Xn=r(nt,/\//),Mn=r(/\//,nt);return{begin:Xn,end:Mn,contains:[...Ne,{scope:"comment",begin:`#(?!.*${Mn})`,end:/$/}]}},st={scope:"regexp",variants:[$e("###"),$e("##"),$e("#"),je]},Rt={match:r(/`/,E,/`/)},Yt={className:"variable",match:/\$\d+/},Pt={className:"variable",match:`\\$${k}+`},Xt=[Rt,Yt,Pt],Yn={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:R,contains:[...G,J,we]}]}},En={scope:"keyword",match:r(/@/,s(...I),t(s(/\(/,/\s+/)))},ct={scope:"meta",match:r(/@/,E)},It=[Yn,En,ct],ue={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:r(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,k,"+")},{className:"type",match:M,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:r(/\s+&\s+/,t(M)),relevance:0}]},xe={begin://,keywords:H,contains:[...z,...X,...It,Y,ue]};ue.contains.push(xe);const Oe={match:r(E,/\s*:/),keywords:"_|0",relevance:0},Fe={begin:/\(/,end:/\)/,relevance:0,keywords:H,contains:["self",Oe,...z,st,...X,...j,...G,J,we,...Xt,...It,ue]},Ze={begin://,keywords:"repeat each",contains:[...z,ue]},on={begin:s(t(r(E,/\s*:/)),t(r(E,/\s+/,E,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:E}]},Nn={begin:/\(/,end:/\)/,keywords:H,contains:[on,...z,...X,...G,J,we,...It,ue,Fe],endsParent:!0,illegal:/["']/},Kt={match:[/(func|macro)/,/\s+/,s(Rt.match,E,S)],className:{1:"keyword",3:"title.function"},contains:[Ze,Nn,Z],illegal:[/\[/,/%/]},At={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ze,Nn,Z],illegal:/\[|%/},Wt={match:[/operator/,/\s+/,S],className:{1:"keyword",3:"title"}},ut={begin:[/precedencegroup/,/\s+/,M],className:{1:"keyword",3:"title"},contains:[ue],keywords:[...p,...m],end:/}/},In={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},cn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Ni={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,E,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:H,contains:[Ze,...X,{begin:/:/,end:/\{/,keywords:H,contains:[{scope:"title.class.inherited",match:M},...X],relevance:0}]};for(const nt of we.variants){const Xn=nt.contains.find(hn=>hn.label==="interpol");Xn.keywords=H;const Mn=[...X,...j,...G,J,we,...Xt];Xn.contains=[...Mn,{begin:/\(/,end:/\)/,contains:["self",...Mn]}]}return{name:"Swift",keywords:H,contains:[...z,Kt,At,In,cn,Ni,Wt,ut,{beginKeywords:"import",end:/$/,contains:[...z],relevance:0},st,...X,...j,...G,J,we,...Xt,...It,ue,Fe]}}return um=U,um}var dm,Ov;function ED(){if(Ov)return dm;Ov=1;function e(t){const r="true false yes no null",a="[\\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:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},d={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,o]},f=t.inherit(d,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),x={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"},_={end:",",endsWithParent:!0,excludeEnd:!0,keywords:r,relevance:0},N={begin:/\{/,end:/\}/,contains:[_],illegal:"\\n",relevance:0},S={begin:"\\[",end:"\\]",contains:[_],illegal:"\\n",relevance:0},w=[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+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:r,keywords:{literal:r}},x,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},N,S,c,d],k=[...w];return k.pop(),k.push(f),_.contains=k,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}return dm=e,dm}var fm,Rv;function ND(){if(Rv)return fm;Rv=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["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"],r=["true","false","null","undefined","NaN","Infinity"],a=["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"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(o,a,s);function f(m){const p=m.regex,y=(W,{after:te})=>{const ce="",end:""},N=/<[A-Za-z0-9\\._:-]+\s*\/>/,S={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(W,te)=>{const ce=W[0].length+W.index,fe=W.input[ce];if(fe==="<"||fe===","){te.ignoreMatch();return}fe===">"&&(y(W,{after:ce})||te.ignoreMatch());let be;const we=W.input.substring(ce);if(be=we.match(/^\s*=/)){te.ignoreMatch();return}if((be=we.match(/^\s+extends\s+/))&&be.index===0){te.ignoreMatch();return}}},w={$pattern:e,keyword:t,literal:r,built_in:d,"variable.language":c},k="[0-9](_?[0-9])*",E=`\\.(${k})`,M="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",I={className:"number",variants:[{begin:`(\\b(${M})((${E})|\\.)?|(${E}))[eE][+-]?(${k})\\b`},{begin:`\\b(${M})\\b((${E})\\b|\\.)?|(${E})\\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},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:w,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"css"}},Z={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},D={className:"string",begin:"`",end:"`",contains:[m.BACKSLASH_ESCAPE,R]},V={className:"comment",variants:[m.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:x+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),m.C_BLOCK_COMMENT_MODE,m.C_LINE_COMMENT_MODE]},P=[m.APOS_STRING_MODE,m.QUOTE_STRING_MODE,U,B,Z,D,{match:/\$\d+/},I];R.contains=P.concat({begin:/\{/,end:/\}/,keywords:w,contains:["self"].concat(P)});const T=[].concat(V,R.contains),$=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:w,contains:["self"].concat(T)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:w,contains:$},H={variants:[{match:[/class/,/\s+/,x,/\s+/,/extends/,/\s+/,p.concat(x,"(",p.concat(/\./,x),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,x],scope:{1:"keyword",3:"title.class"}}]},X={relevance:0,match:p.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:{_:[...a,...s]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},C={variants:[{match:[/function/,/\s+/,x,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Y(W){return p.concat("(?!",W.join("|"),")")}const L={match:p.concat(/\b/,Y([...o,"super","import"].map(W=>`${W}\\s*\\(`)),x,p.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:p.concat(/\./,p.lookahead(p.concat(x,/(?![0-9A-Za-z$_(])/))),end:x,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},q={match:[/get|set/,/\s+/,x,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},Q="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+m.UNDERSCORE_IDENT_RE+")\\s*=>",J={match:[/const|var|let/,/\s+/,x,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(Q)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:w,exports:{PARAMS_CONTAINS:$,CLASS_REFERENCE:X},illegal:/#(?![$_A-z])/,contains:[m.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,m.APOS_STRING_MODE,m.QUOTE_STRING_MODE,U,B,Z,D,V,{match:/\$\d+/},I,X,{scope:"attr",match:x+p.lookahead(":"),relevance:0},J,{begin:"("+m.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[V,m.REGEXP_MODE,{className:"function",begin:Q,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:m.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:w,contains:$}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:_.begin,end:_.end},{match:N},{begin:S.begin,"on:begin":S.isTrulyOpeningTag,end:S.end}],subLanguage:"xml",contains:[{begin:S.begin,end:S.end,skip:!0,contains:["self"]}]}]},C,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+m.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,m.inherit(m.TITLE_MODE,{begin:x,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+x,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},L,j,H,q,{match:/\$[(.]/}]}}function h(m){const p=m.regex,y=f(m),x=e,_=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],N={begin:[/namespace/,/\s+/,m.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},S={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:_},contains:[y.exports.CLASS_REFERENCE]},w={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},k=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],E={$pattern:e,keyword:t.concat(k),literal:r,built_in:d.concat(_),"variable.language":c},M={className:"meta",begin:"@"+x},I=(Z,D,z)=>{const V=Z.contains.findIndex(P=>P.label===D);if(V===-1)throw new Error("can not find mode to replace");Z.contains.splice(V,1,z)};Object.assign(y.keywords,E),y.exports.PARAMS_CONTAINS.push(M);const R=y.contains.find(Z=>Z.scope==="attr"),U=Object.assign({},R,{match:p.concat(x,p.lookahead(/\s*\?:/))});y.exports.PARAMS_CONTAINS.push([y.exports.CLASS_REFERENCE,R,U]),y.contains=y.contains.concat([M,N,S,U]),I(y,"shebang",m.SHEBANG()),I(y,"use_strict",w);const B=y.contains.find(Z=>Z.label==="func.def");return B.relevance=0,Object.assign(y,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),y}return fm=h,fm}var hm,Dv;function SD(){if(Dv)return hm;Dv=1;function e(t){const r=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,d=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,f=/\d{1,2}(:\d{1,2}){1,2}/,h={className:"literal",variants:[{begin:r.concat(/# */,r.either(c,o),/ *#/)},{begin:r.concat(/# */,f,/ *#/)},{begin:r.concat(/# */,d,/ *#/)},{begin:r.concat(/# */,r.either(c,o),/ +/,r.either(d,f),/ *#/)}]},m={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},p={className:"label",begin:/^\w+:/},y=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),x=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,s,h,m,p,y,x,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[x]}]}}return hm=e,hm}var mm,jv;function kD(){if(jv)return mm;jv=1;function e(t){t.regex;const r=t.COMMENT(/\(;/,/;\)/);r.contains.push("self");const a=t.COMMENT(/;;/,/$/),s=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],o={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},d={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},f={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},h={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},m={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:s},contains:[a,r,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,d,o,t.QUOTE_STRING_MODE,h,m,f]}}return mm=e,mm}var pm,Lv;function CD(){if(Lv)return pm;Lv=1;var e=F4();return e.registerLanguage("xml",G4()),e.registerLanguage("bash",V4()),e.registerLanguage("c",Y4()),e.registerLanguage("cpp",X4()),e.registerLanguage("csharp",K4()),e.registerLanguage("css",Z4()),e.registerLanguage("markdown",Q4()),e.registerLanguage("diff",W4()),e.registerLanguage("ruby",J4()),e.registerLanguage("go",eD()),e.registerLanguage("graphql",tD()),e.registerLanguage("ini",nD()),e.registerLanguage("java",rD()),e.registerLanguage("javascript",iD()),e.registerLanguage("json",aD()),e.registerLanguage("kotlin",sD()),e.registerLanguage("less",lD()),e.registerLanguage("lua",oD()),e.registerLanguage("makefile",cD()),e.registerLanguage("perl",uD()),e.registerLanguage("objectivec",dD()),e.registerLanguage("php",fD()),e.registerLanguage("php-template",hD()),e.registerLanguage("plaintext",mD()),e.registerLanguage("python",pD()),e.registerLanguage("python-repl",gD()),e.registerLanguage("r",bD()),e.registerLanguage("rust",xD()),e.registerLanguage("scss",yD()),e.registerLanguage("shell",vD()),e.registerLanguage("sql",_D()),e.registerLanguage("swift",wD()),e.registerLanguage("yaml",ED()),e.registerLanguage("typescript",ND()),e.registerLanguage("vbnet",SD()),e.registerLanguage("wasm",kD()),e.HighlightJS=e,e.default=e,pm=e,pm}var TD=CD();const Ln=Co(TD);function AD(e){const t=e.regex,r="HTTP/([32]|1\\.[01])",a=/[A-Za-z][A-Za-z0-9-]*/,s={className:"attribute",begin:t.concat("^",a,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},o=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+r+" \\d{3})",end:/$/,contains:[{className:"meta",begin:r},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:o}},{begin:"(?=^[A-Z]+ (.*?) "+r+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:r},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:o}},e.inherit(s,{relevance:0})]}}function MD(e){const t=e.regex,r={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[r]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},r]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:s.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}],illegal:"[^\\s\\}\\{]"}}function OD(e){const t={className:"number",begin:/[$%]\d+/},r={className:"number",begin:/\b\d+/},a={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},s={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[a,s,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{scope:"punctuation",match:/\\\n/},{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",t]},a,r,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}function RD(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{const O=[];return $.forEach(H=>{O.push(H),H.toLowerCase()===H?O.push(H.toUpperCase()):O.push(H.toLowerCase())}),O})(w),built_in:E},R=$=>$.map(O=>O.replace(/\|\d+$/,"")),U={variants:[{match:[/new/,r.concat(_,"+"),r.concat("(?!",R(E).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},B=r.concat(s,"\\b(?!\\()"),Z={variants:[{match:[r.concat(/::/,r.lookahead(/(?!class\b)/)),B],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,r.concat(/::/,r.lookahead(/(?!class\b)/)),B],scope:{1:"title.class",3:"variable.constant"}},{match:[o,r.concat("::",r.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},D={scope:"attr",match:r.concat(s,r.lookahead(":"),r.lookahead(/(?!::)/))},z={relevance:0,begin:/\(/,end:/\)/,keywords:I,contains:[D,d,Z,t.C_BLOCK_COMMENT_MODE,N,S,U]},V={relevance:0,match:[/\b/,r.concat("(?!fn\\b|function\\b|",R(k).join("\\b|"),"|",R(E).join("\\b|"),"\\b)"),s,r.concat(_,"*"),r.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[z]};z.contains.push(V);const P=[D,Z,t.C_BLOCK_COMMENT_MODE,N,S,U],T={begin:r.concat(/#\[\s*\\?/,r.either(o,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...P]},...P,{scope:"meta",variants:[{match:o},{match:c}]}]};return{case_insensitive:!1,keywords:I,contains:[T,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},f,{scope:"variable.language",match:/\$this\b/},d,V,Z,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},U,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:I,contains:["self",T,d,Z,t.C_BLOCK_COMMENT_MODE,N,S]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},N,S]}}return em=e,em}var tm,_v;function hD(){if(_v)return tm;_v=1;function e(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}return tm=e,tm}var nm,wv;function mD(){if(wv)return nm;wv=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return nm=e,nm}var rm,Ev;function pD(){if(Ev)return rm;Ev=1;function e(t){const r=t.regex,a=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"],f={$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"]},h={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:f,illegal:/#/},p={begin:/\{\{/,relevance:0},y={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h,p,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h,p,m]},{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,p,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,p,m]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},x="[0-9](_?[0-9])*",_=`(\\b(${x}))?\\.(${x})|\\b(${x})\\.`,N=`\\b|${s.join("|")}`,S={className:"number",relevance:0,variants:[{begin:`(\\b(${x})|(${_}))[eE][+-]?(${x})[jJ]?(?=${N})`},{begin:`(${_})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${x})[jJ](?=${N})`}]},w={className:"comment",begin:r.lookahead(/# type:/),end:/$/,keywords:f,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},k={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:["self",h,S,y,t.HASH_COMMENT_MODE]}]};return m.contains=[y,S,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:f,illegal:/(<\/|\?)|=>/,contains:[h,S,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},y,w,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[k]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[S,k,y]}]}}return rm=e,rm}var im,Nv;function gD(){if(Nv)return im;Nv=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return im=e,im}var am,Sv;function bD(){if(Sv)return am;Sv=1;function e(t){const r=t.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,s=r.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=r.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:r.lookahead(r.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[o,s]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,s]},{scope:{1:"punctuation",2:"number"},match:[c,s]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,s]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return am=e,am}var sm,kv;function xD(){if(kv)return sm;kv=1;function e(t){const r=t.regex,a=/(r#)?/,s=r.concat(a,t.UNDERSCORE_IDENT_RE),o=r.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:r.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,r.lookahead(/\s*\(/))},d="([ui](8|16|32|64|128|size)|f(32|64))?",f=["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"],h=["true","false","Some","None","Ok","Err"],m=["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!"],p=["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:p,keyword:f,literal:h,built_in:m},illegal:""},c]}}return sm=e,sm}var lm,Cv;function yD(){if(Cv)return lm;Cv=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.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:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.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_-]*/}}),t=["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"],r=["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"],a=[...t,...r],s=["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(),o=["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(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["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 f(h){const m=e(h),p=c,y=o,x="@[a-z-]+",_="and or not only",S={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[h.C_LINE_COMMENT_MODE,h.C_BLOCK_COMMENT_MODE,m.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},m.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+y.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+p.join("|")+")"},S,{begin:/\(/,end:/\)/,contains:[m.CSS_NUMBER_MODE]},m.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[m.BLOCK_COMMENT,S,m.HEXCOLOR,m.CSS_NUMBER_MODE,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,m.IMPORTANT,m.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:x,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:_,attribute:s.join(" ")},contains:[{begin:x,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},S,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,m.HEXCOLOR,m.CSS_NUMBER_MODE]},m.FUNCTION_DISPATCH]}}return lm=f,lm}var om,Tv;function vD(){if(Tv)return om;Tv=1;function e(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}return om=e,om}var cm,Av;function _D(){if(Av)return cm;Av=1;function e(t){const r=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],d=["double precision","large object","with timezone","without timezone"],f=["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"],h=["add","asc","collation","desc","final","first","last","view"],m=["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"],p=["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"],y=["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"],x=["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"],_=p,N=[...m,...h].filter(R=>!p.includes(R)),S={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},k={match:r.concat(/\b/,r.either(..._),/\s*\(/),relevance:0,keywords:{built_in:_}};function E(R){return r.concat(/\b/,r.either(...R.map(U=>U.replace(/\s+/,"\\s+"))),/\b/)}const M={scope:"keyword",match:E(x),relevance:0};function I(R,{exceptions:U,when:B}={}){const Z=B;return U=U||[],R.map(D=>D.match(/\|\d+$/)||U.includes(D)?D:Z(D)?`${D}|0`:D)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:I(N,{when:R=>R.length<3}),literal:c,type:f,built_in:y},contains:[{scope:"type",match:E(d)},M,k,S,s,o,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,w]}}return cm=e,cm}var um,Mv;function wD(){if(Mv)return um;Mv=1;function e(B){return B?typeof B=="string"?B:B.source:null}function t(B){return r("(?=",B,")")}function r(...B){return B.map(D=>e(D)).join("")}function a(B){const Z=B[B.length-1];return typeof Z=="object"&&Z.constructor===Object?(B.splice(B.length-1,1),Z):{}}function s(...B){return"("+(a(B).capture?"":"?:")+B.map(z=>e(z)).join("|")+")"}const o=B=>r(/\b/,B,/\w$/.test(B)?/\b/:/\B/),c=["Protocol","Type"].map(o),d=["init","self"].map(o),f=["Any","Self"],h=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],m=["false","nil","true"],p=["assignment","associativity","higherThan","left","lowerThan","none","right"],y=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],x=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],_=s(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),N=s(_,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),S=r(_,N,"*"),w=s(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),k=s(w,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),E=r(w,k,"*"),M=r(/[A-Z]/,k,"*"),I=["attached","autoclosure",r(/convention\(/,s("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",r(/objc\(/,E,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],R=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function U(B){const Z={match:/\s+/,relevance:0},D=B.COMMENT("/\\*","\\*/",{contains:["self"]}),z=[B.C_LINE_COMMENT_MODE,D],V={match:[/\./,s(...c,...d)],className:{2:"keyword"}},P={match:r(/\./,s(...h)),relevance:0},T=h.filter(nt=>typeof nt=="string").concat(["_|0"]),$=h.filter(nt=>typeof nt!="string").concat(f).map(o),O={variants:[{className:"keyword",match:s(...$,...d)}]},H={$pattern:s(/\b\w+/,/#\w+/),keyword:T.concat(y),literal:m},X=[V,P,O],K={match:r(/\./,s(...x)),relevance:0},C={className:"built_in",match:r(/\b/,s(...x),/(?=\()/)},j=[K,C],Y={match:/->/,relevance:0},L={className:"operator",relevance:0,variants:[{match:S},{match:`\\.(\\.|${N})+`}]},G=[Y,L],q="([0-9]_*)+",Q="([0-9a-fA-F]_*)+",J={className:"number",relevance:0,variants:[{match:`\\b(${q})(\\.(${q}))?([eE][+-]?(${q}))?\\b`},{match:`\\b0x(${Q})(\\.(${Q}))?([pP][+-]?(${q}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},W=(nt="")=>({className:"subst",variants:[{match:r(/\\/,nt,/[0\\tnr"']/)},{match:r(/\\/,nt,/u\{[0-9a-fA-F]{1,8}\}/)}]}),te=(nt="")=>({className:"subst",match:r(/\\/,nt,/[\t ]*(?:[\r\n]|\r\n)/)}),ce=(nt="")=>({className:"subst",label:"interpol",begin:r(/\\/,nt,/\(/),end:/\)/}),fe=(nt="")=>({begin:r(nt,/"""/),end:r(/"""/,nt),contains:[W(nt),te(nt),ce(nt)]}),be=(nt="")=>({begin:r(nt,/"/),end:r(/"/,nt),contains:[W(nt),ce(nt)]}),we={className:"string",variants:[fe(),fe("#"),fe("##"),fe("###"),be(),be("#"),be("##"),be("###")]},Ne=[B.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[B.BACKSLASH_ESCAPE]}],je={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:Ne},$e=nt=>{const Xn=r(nt,/\//),Mn=r(/\//,nt);return{begin:Xn,end:Mn,contains:[...Ne,{scope:"comment",begin:`#(?!.*${Mn})`,end:/$/}]}},st={scope:"regexp",variants:[$e("###"),$e("##"),$e("#"),je]},Rt={match:r(/`/,E,/`/)},Yt={className:"variable",match:/\$\d+/},Pt={className:"variable",match:`\\$${k}+`},Xt=[Rt,Yt,Pt],Yn={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:R,contains:[...G,J,we]}]}},En={scope:"keyword",match:r(/@/,s(...I),t(s(/\(/,/\s+/)))},ct={scope:"meta",match:r(/@/,E)},It=[Yn,En,ct],ue={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:r(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,k,"+")},{className:"type",match:M,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:r(/\s+&\s+/,t(M)),relevance:0}]},xe={begin://,keywords:H,contains:[...z,...X,...It,Y,ue]};ue.contains.push(xe);const Oe={match:r(E,/\s*:/),keywords:"_|0",relevance:0},Fe={begin:/\(/,end:/\)/,relevance:0,keywords:H,contains:["self",Oe,...z,st,...X,...j,...G,J,we,...Xt,...It,ue]},Ze={begin://,keywords:"repeat each",contains:[...z,ue]},on={begin:s(t(r(E,/\s*:/)),t(r(E,/\s+/,E,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:E}]},Nn={begin:/\(/,end:/\)/,keywords:H,contains:[on,...z,...X,...G,J,we,...It,ue,Fe],endsParent:!0,illegal:/["']/},Kt={match:[/(func|macro)/,/\s+/,s(Rt.match,E,S)],className:{1:"keyword",3:"title.function"},contains:[Ze,Nn,Z],illegal:[/\[/,/%/]},At={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ze,Nn,Z],illegal:/\[|%/},Wt={match:[/operator/,/\s+/,S],className:{1:"keyword",3:"title"}},ut={begin:[/precedencegroup/,/\s+/,M],className:{1:"keyword",3:"title"},contains:[ue],keywords:[...p,...m],end:/}/},In={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},cn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Ni={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,E,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:H,contains:[Ze,...X,{begin:/:/,end:/\{/,keywords:H,contains:[{scope:"title.class.inherited",match:M},...X],relevance:0}]};for(const nt of we.variants){const Xn=nt.contains.find(hn=>hn.label==="interpol");Xn.keywords=H;const Mn=[...X,...j,...G,J,we,...Xt];Xn.contains=[...Mn,{begin:/\(/,end:/\)/,contains:["self",...Mn]}]}return{name:"Swift",keywords:H,contains:[...z,Kt,At,In,cn,Ni,Wt,ut,{beginKeywords:"import",end:/$/,contains:[...z],relevance:0},st,...X,...j,...G,J,we,...Xt,...It,ue,Fe]}}return um=U,um}var dm,Ov;function ED(){if(Ov)return dm;Ov=1;function e(t){const r="true false yes no null",a="[\\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:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},d={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,o]},f=t.inherit(d,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),x={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"},_={end:",",endsWithParent:!0,excludeEnd:!0,keywords:r,relevance:0},N={begin:/\{/,end:/\}/,contains:[_],illegal:"\\n",relevance:0},S={begin:"\\[",end:"\\]",contains:[_],illegal:"\\n",relevance:0},w=[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+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:r,keywords:{literal:r}},x,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},N,S,c,d],k=[...w];return k.pop(),k.push(f),_.contains=k,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}return dm=e,dm}var fm,Rv;function ND(){if(Rv)return fm;Rv=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["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"],r=["true","false","null","undefined","NaN","Infinity"],a=["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"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(o,a,s);function f(m){const p=m.regex,y=(W,{after:te})=>{const ce="",end:""},N=/<[A-Za-z0-9\\._:-]+\s*\/>/,S={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(W,te)=>{const ce=W[0].length+W.index,fe=W.input[ce];if(fe==="<"||fe===","){te.ignoreMatch();return}fe===">"&&(y(W,{after:ce})||te.ignoreMatch());let be;const we=W.input.substring(ce);if(be=we.match(/^\s*=/)){te.ignoreMatch();return}if((be=we.match(/^\s+extends\s+/))&&be.index===0){te.ignoreMatch();return}}},w={$pattern:e,keyword:t,literal:r,built_in:d,"variable.language":c},k="[0-9](_?[0-9])*",E=`\\.(${k})`,M="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",I={className:"number",variants:[{begin:`(\\b(${M})((${E})|\\.)?|(${E}))[eE][+-]?(${k})\\b`},{begin:`\\b(${M})\\b((${E})\\b|\\.)?|(${E})\\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},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:w,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"css"}},Z={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[m.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},D={className:"string",begin:"`",end:"`",contains:[m.BACKSLASH_ESCAPE,R]},V={className:"comment",variants:[m.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:x+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),m.C_BLOCK_COMMENT_MODE,m.C_LINE_COMMENT_MODE]},P=[m.APOS_STRING_MODE,m.QUOTE_STRING_MODE,U,B,Z,D,{match:/\$\d+/},I];R.contains=P.concat({begin:/\{/,end:/\}/,keywords:w,contains:["self"].concat(P)});const T=[].concat(V,R.contains),$=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:w,contains:["self"].concat(T)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:w,contains:$},H={variants:[{match:[/class/,/\s+/,x,/\s+/,/extends/,/\s+/,p.concat(x,"(",p.concat(/\./,x),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,x],scope:{1:"keyword",3:"title.class"}}]},X={relevance:0,match:p.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:{_:[...a,...s]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},C={variants:[{match:[/function/,/\s+/,x,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Y(W){return p.concat("(?!",W.join("|"),")")}const L={match:p.concat(/\b/,Y([...o,"super","import"].map(W=>`${W}\\s*\\(`)),x,p.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:p.concat(/\./,p.lookahead(p.concat(x,/(?![0-9A-Za-z$_(])/))),end:x,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},q={match:[/get|set/,/\s+/,x,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},Q="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+m.UNDERSCORE_IDENT_RE+")\\s*=>",J={match:[/const|var|let/,/\s+/,x,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(Q)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:w,exports:{PARAMS_CONTAINS:$,CLASS_REFERENCE:X},illegal:/#(?![$_A-z])/,contains:[m.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,m.APOS_STRING_MODE,m.QUOTE_STRING_MODE,U,B,Z,D,V,{match:/\$\d+/},I,X,{scope:"attr",match:x+p.lookahead(":"),relevance:0},J,{begin:"("+m.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[V,m.REGEXP_MODE,{className:"function",begin:Q,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:m.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:w,contains:$}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:_.begin,end:_.end},{match:N},{begin:S.begin,"on:begin":S.isTrulyOpeningTag,end:S.end}],subLanguage:"xml",contains:[{begin:S.begin,end:S.end,skip:!0,contains:["self"]}]}]},C,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+m.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,m.inherit(m.TITLE_MODE,{begin:x,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+x,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},L,j,H,q,{match:/\$[(.]/}]}}function h(m){const p=m.regex,y=f(m),x=e,_=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],N={begin:[/namespace/,/\s+/,m.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},S={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:_},contains:[y.exports.CLASS_REFERENCE]},w={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},k=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],E={$pattern:e,keyword:t.concat(k),literal:r,built_in:d.concat(_),"variable.language":c},M={className:"meta",begin:"@"+x},I=(Z,D,z)=>{const V=Z.contains.findIndex(P=>P.label===D);if(V===-1)throw new Error("can not find mode to replace");Z.contains.splice(V,1,z)};Object.assign(y.keywords,E),y.exports.PARAMS_CONTAINS.push(M);const R=y.contains.find(Z=>Z.scope==="attr"),U=Object.assign({},R,{match:p.concat(x,p.lookahead(/\s*\?:/))});y.exports.PARAMS_CONTAINS.push([y.exports.CLASS_REFERENCE,R,U]),y.contains=y.contains.concat([M,N,S,U]),I(y,"shebang",m.SHEBANG()),I(y,"use_strict",w);const B=y.contains.find(Z=>Z.label==="func.def");return B.relevance=0,Object.assign(y,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),y}return fm=h,fm}var hm,Dv;function SD(){if(Dv)return hm;Dv=1;function e(t){const r=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,d=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,f=/\d{1,2}(:\d{1,2}){1,2}/,h={className:"literal",variants:[{begin:r.concat(/# */,r.either(c,o),/ *#/)},{begin:r.concat(/# */,f,/ *#/)},{begin:r.concat(/# */,d,/ *#/)},{begin:r.concat(/# */,r.either(c,o),/ +/,r.either(d,f),/ *#/)}]},m={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},p={className:"label",begin:/^\w+:/},y=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),x=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,s,h,m,p,y,x,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[x]}]}}return hm=e,hm}var mm,jv;function kD(){if(jv)return mm;jv=1;function e(t){t.regex;const r=t.COMMENT(/\(;/,/;\)/);r.contains.push("self");const a=t.COMMENT(/;;/,/$/),s=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],o={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},d={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},f={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},h={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},m={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:s},contains:[a,r,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,d,o,t.QUOTE_STRING_MODE,h,m,f]}}return mm=e,mm}var pm,Lv;function CD(){if(Lv)return pm;Lv=1;var e=F4();return e.registerLanguage("xml",G4()),e.registerLanguage("bash",V4()),e.registerLanguage("c",Y4()),e.registerLanguage("cpp",X4()),e.registerLanguage("csharp",K4()),e.registerLanguage("css",Z4()),e.registerLanguage("markdown",Q4()),e.registerLanguage("diff",W4()),e.registerLanguage("ruby",J4()),e.registerLanguage("go",eD()),e.registerLanguage("graphql",tD()),e.registerLanguage("ini",nD()),e.registerLanguage("java",rD()),e.registerLanguage("javascript",iD()),e.registerLanguage("json",aD()),e.registerLanguage("kotlin",sD()),e.registerLanguage("less",lD()),e.registerLanguage("lua",oD()),e.registerLanguage("makefile",cD()),e.registerLanguage("perl",uD()),e.registerLanguage("objectivec",dD()),e.registerLanguage("php",fD()),e.registerLanguage("php-template",hD()),e.registerLanguage("plaintext",mD()),e.registerLanguage("python",pD()),e.registerLanguage("python-repl",gD()),e.registerLanguage("r",bD()),e.registerLanguage("rust",xD()),e.registerLanguage("scss",yD()),e.registerLanguage("shell",vD()),e.registerLanguage("sql",_D()),e.registerLanguage("swift",wD()),e.registerLanguage("yaml",ED()),e.registerLanguage("typescript",ND()),e.registerLanguage("vbnet",SD()),e.registerLanguage("wasm",kD()),e.HighlightJS=e,e.default=e,pm=e,pm}var TD=CD();const Ln=Co(TD);function AD(e){const t=e.regex,r="HTTP/([32]|1\\.[01])",a=/[A-Za-z][A-Za-z0-9-]*/,s={className:"attribute",begin:t.concat("^",a,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},o=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+r+" \\d{3})",end:/$/,contains:[{className:"meta",begin:r},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:o}},{begin:"(?=^[A-Z]+ (.*?) "+r+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:r},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:o}},e.inherit(s,{relevance:0})]}}function MD(e){const t=e.regex,r={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[r]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},r]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:s.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}],illegal:"[^\\s\\}\\{]"}}function OD(e){const t={className:"number",begin:/[$%]\d+/},r={className:"number",begin:/\b\d+/},a={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},s={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[a,s,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{scope:"punctuation",match:/\\\n/},{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",t]},a,r,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}function RD(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{vp(o),s(!0),setTimeout(()=>s(!1),2e3)};return g.jsxs("div",{className:"group/code relative rounded-md border border-[#2a2a2a] my-4 text-[#ddd] overflow-hidden",children:[x?g.jsxs("div",{className:"flex items-stretch",children:[g.jsxs("span",{className:"relative flex items-center text-[13px] text-[#999] font-mono px-4 py-2 border-r border-[#2a2a2a]",children:[x,g.jsx("span",{className:"absolute top-0 inset-x-0 h-0.5 bg-white/60 rounded-full"})]}),g.jsx("div",{className:"flex-1 border-b border-[#2a2a2a]"}),g.jsx("button",{onClick:S,className:"px-3 py-2 text-[#555] hover:text-white transition-colors border-b border-[#2a2a2a]","aria-label":"Copy code",children:a?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})})]}):g.jsx("button",{onClick:S,className:"absolute top-2 right-2 z-10 p-1 rounded text-[#444] hover:text-white opacity-0 group-hover/code:opacity-100 transition-opacity","aria-label":"Copy code",children:a?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})}),g.jsx("div",{className:"overflow-auto max-h-[400px]",children:g.jsx("table",{className:"w-full border-collapse font-mono text-[12px] leading-[22px] [font-variant-ligatures:none]",children:g.jsx("tbody",{children:N.map((E,M)=>g.jsxs("tr",{children:[g.jsx("td",{className:"select-none w-[1px] whitespace-nowrap px-4 text-right text-[#555] align-top text-[12px] leading-[22px] border-r border-[#2a2a2a]",children:y+M}),g.jsx("td",{className:"pl-4 pr-4 whitespace-pre",dangerouslySetInnerHTML:{__html:E||` `}})]},M))})})})]})}function Pp(){return e=>{const t=r=>{var a;if(r.type==="element"&&r.tagName==="pre"&&r.children){const s=r.children.find(o=>o.type==="element"&&o.tagName==="code");(a=s==null?void 0:s.data)!=null&&a.meta&&(s.properties=s.properties||{},s.properties.metastring=s.data.meta)}r.children&&r.children.forEach(s=>t(s))};t(e)}}const Fp={code:aE,pre:({children:e})=>g.jsx(g.Fragment,{children:e})};function oa({title:e,content:t,action:r}){return g.jsxs("section",{children:[(e||r)&&g.jsxs("div",{className:"flex items-center justify-between gap-3 mb-3",children:[e?g.jsx("h2",{className:"text-xl font-semibold text-white",children:e}):g.jsx("span",{}),r]}),g.jsx("div",{className:"prose-markdown",children:g.jsx(Bp,{remarkPlugins:[qp],rehypePlugins:[Pp],components:Fp,children:t})})]})}class jD{diff(t,r,a={}){let s;typeof a=="function"?(s=a,a={}):"callback"in a&&(s=a.callback);const o=this.castInput(t,a),c=this.castInput(r,a),d=this.removeEmpty(this.tokenize(o,a)),f=this.removeEmpty(this.tokenize(c,a));return this.diffWithOptionsObj(d,f,a,s)}diffWithOptionsObj(t,r,a,s){var o;const c=k=>{if(k=this.postProcess(k,a),s){setTimeout(function(){s(k)},0);return}else return k},d=r.length,f=t.length;let h=1,m=d+f;a.maxEditLength!=null&&(m=Math.min(m,a.maxEditLength));const p=(o=a.timeout)!==null&&o!==void 0?o:1/0,y=Date.now()+p,x=[{oldPos:-1,lastComponent:void 0}];let _=this.extractCommon(x[0],r,t,0,a);if(x[0].oldPos+1>=f&&_+1>=d)return c(this.buildValues(x[0].lastComponent,r,t));let N=-1/0,S=1/0;const w=()=>{for(let k=Math.max(N,-h);k<=Math.min(S,h);k+=2){let E;const M=x[k-1],I=x[k+1];M&&(x[k-1]=void 0);let R=!1;if(I){const B=I.oldPos-k;R=I&&0<=B&&B=f&&_+1>=d)return c(this.buildValues(E.lastComponent,r,t))||!0;x[k]=E,E.oldPos+1>=f&&(S=Math.min(S,k-1)),_+1>=d&&(N=Math.max(N,k+1))}h++};if(s)(function k(){setTimeout(function(){if(h>m||Date.now()>y)return s(void 0);w()||k()},0)})();else for(;h<=m&&Date.now()<=y;){const k=w();if(k)return k}}addToPath(t,r,a,s,o){const c=t.lastComponent;return c&&!o.oneChangePerToken&&c.added===r&&c.removed===a?{oldPos:t.oldPos+s,lastComponent:{count:c.count+1,added:r,removed:a,previousComponent:c.previousComponent}}:{oldPos:t.oldPos+s,lastComponent:{count:1,added:r,removed:a,previousComponent:c}}}extractCommon(t,r,a,s,o){const c=r.length,d=a.length;let f=t.oldPos,h=f-s,m=0;for(;h+1y.length?_:y}),m.value=this.join(p)}else m.value=this.join(r.slice(f,f+m.count));f+=m.count,m.added||(h+=m.count)}}return s}}class LD extends jD{constructor(){super(...arguments),this.tokenize=BD}equals(t,r,a){return a.ignoreWhitespace?((!a.newlineIsToken||!t.includes(` @@ -438,7 +438,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),Ht=ye,ft=Le),Qe===void `)&&(r=r.slice(0,-1))),super.equals(t,r,a)}}const zD=new LD;function ID(e,t,r){return zD.diff(e,t,r)}function BD(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` `));const r=[],a=e.split(/(\n|\r\n)/);a[a.length-1]||a.pop();for(let s=0;sN.value.replace(/\n$/,"").split(` `).map(S=>{const w=S===""?` -`:h!=="text"?UD(S,h):S.replace(/&/g,"&").replace(//g,">");let k="",E="";return N.removed?k=String(p++):(N.added||(k=String(p++)),E=String(y++)),{highlighted:w,added:!!N.added,removed:!!N.removed,leftNo:k,rightNo:E}})),_=()=>{vp(s),d(!0),setTimeout(()=>d(!1),2e3),o==null||o()};return g.jsxs("div",{className:"rounded-md border border-[#2a2a2a] overflow-hidden",children:[g.jsxs("div",{className:"flex items-stretch",children:[g.jsxs("span",{className:"relative flex items-center text-[13px] text-[#999] font-mono px-4 py-2 border-r border-[#2a2a2a] break-all",children:[e,":",f,g.jsx("span",{className:"absolute top-0 inset-x-0 h-0.5 bg-white/60 rounded-full"})]}),g.jsx("div",{className:"flex-1 border-b border-[#2a2a2a]"}),g.jsx("button",{onClick:_,className:"px-3 py-2 text-[#555] hover:text-white transition-colors flex-shrink-0 border-b border-[#2a2a2a]","aria-label":"Copy fixed code",children:c?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})})]}),g.jsx("div",{className:"overflow-auto max-h-[400px]",children:g.jsx("table",{className:"w-full border-collapse font-mono text-[12px] leading-[22px] [font-variant-ligatures:none]",children:g.jsx("tbody",{children:x.map((N,S)=>g.jsxs("tr",{className:N.added?"bg-blue-500/[0.12]":N.removed?"bg-red-500/[0.12]":"",children:[g.jsx("td",{className:"select-none w-[1px] whitespace-nowrap pl-4 pr-1.5 text-right text-[#555] align-top text-[12px] leading-[22px]",children:N.leftNo}),g.jsx("td",{className:"select-none w-[1px] whitespace-nowrap pl-1.5 pr-4 text-right text-[#555] align-top text-[12px] leading-[22px] border-r border-[#2a2a2a]",children:N.rightNo}),g.jsx("td",{className:"pl-4 pr-4 whitespace-pre",dangerouslySetInnerHTML:{__html:N.highlighted}})]},S))})})})]})}const $D=/^```([^\n`]*)\n([\s\S]*?)\n?```$/;function sE(e){if(!e)return{code:""};const t=$D.exec(e.trim());if(!t)return{code:e};const r=t[1].trim();return{language:(r?r.split(/\s+/)[0]:void 0)||void 0,code:t[2]}}function qD({description:e,scriptCode:t,onCopy:r}){const[a,s]=ee.useState(!1);if(!e&&!t)return null;const{language:o,code:c}=sE(t),d=iE(c,o),f=()=>{c&&(vp(c),s(!0),setTimeout(()=>s(!1),2e3),r==null||r())};return g.jsxs("section",{children:[g.jsx("h2",{className:"text-xl font-semibold text-white mb-3",children:"Proof of Concept"}),g.jsxs("div",{className:"space-y-4",children:[e&&g.jsx("div",{className:"prose-markdown",children:g.jsx(Bp,{remarkPlugins:[qp],rehypePlugins:[Pp],components:Fp,children:e})}),c&&g.jsxs("div",{className:"group/poc relative rounded-md border border-[#2a2a2a] overflow-hidden",children:[g.jsxs("div",{className:"flex items-stretch",children:[g.jsxs("span",{className:"relative flex items-center text-[13px] text-[#999] font-mono px-4 py-2 border-r border-[#2a2a2a]",children:["PoC Script",g.jsx("span",{className:"absolute top-0 inset-x-0 h-0.5 bg-white/60 rounded-full"})]}),g.jsx("div",{className:"flex-1 border-b border-[#2a2a2a]"}),g.jsx("button",{onClick:f,className:"px-3 py-2 text-[#555] hover:text-white transition-colors flex-shrink-0 border-b border-[#2a2a2a]","aria-label":"Copy PoC code",children:a?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})})]}),g.jsx("div",{className:"overflow-auto max-h-[400px] px-4 py-3",children:g.jsx("pre",{className:"font-mono text-[12px] leading-[22px] whitespace-pre [font-variant-ligatures:none]",children:g.jsx("code",{dangerouslySetInnerHTML:{__html:d}})})})]})]})]})}function lE(e){const t=e.match(/(?:https?:\/\/)?(?:www\.)?github\.com\/([^\s/]+\/[^\s/]+)/);if(t){const s=t[1].replace(/\.git$/,"");return{display:s,href:`https://github.com/${s}`,provider:"github"}}const r=e.match(/(?:https?:\/\/)?(?:www\.)?gitlab\.com\/([^\s/]+\/[^\s/]+)/);if(r){const s=r[1].replace(/\.git$/,"");return{display:s,href:`https://gitlab.com/${s}`,provider:"gitlab"}}const a=e.match(/(?:https?:\/\/)?(?:www\.)?bitbucket\.org\/([^\s/]+\/[^\s/]+)/);if(a){const s=a[1].replace(/\.git$/,"");return{display:s,href:`https://bitbucket.org/${s}`,provider:"bitbucket"}}return/^https?:\/\//i.test(e)?{display:e.replace(/^https?:\/\/(www\.)?/,""),href:e,provider:null}:/^[a-zA-Z0-9][\w.-]*\.[a-zA-Z]{2,}/.test(e)?{display:e,href:`https://${e}`,provider:null}:{display:e,href:null,provider:null}}function bo(e,t){return e?lE(e).display.replace(/\/$/,""):t||"Untitled pentest"}function PD({className:e}){return g.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,"aria-hidden":"true",children:g.jsx("path",{d:"M2.65 3a.72.72 0 0 0-.72.83l2.86 17.39a.98.98 0 0 0 .96.82h13.72a.72.72 0 0 0 .72-.6l2.86-17.4A.72.72 0 0 0 22.3 3H2.65Zm12.1 12.53H9.3L8.06 8.9h7.8l-1.11 6.63Z"})})}function FD({provider:e,className:t}){const r=t??"w-4 h-4";return e==="gitlab"?g.jsx(EC,{className:`${r} text-orange-400`}):e==="bitbucket"?g.jsx(PD,{className:`${r} text-blue-400`}):g.jsx(_C,{className:`${r} text-white`})}const GD={attack_vector:{N:"Remotely exploitable",A:"Adjacent network",L:"Local access required",P:"Physical access required"},attack_complexity:{L:"Easy to exploit",H:"Requires specific conditions"},privileges_required:{N:"No authentication needed",L:"Low privileges needed",H:"High privileges needed"},user_interaction:{N:"No user action required",R:"Requires user action",P:"Passive user role",A:"Active user role"},scope:{U:"Impact stays contained",C:"Can spread to other systems"},confidentiality:{N:"No data exposure",L:"Partial data exposure",H:"Full data exposure"},integrity:{N:"No data modification",L:"Limited modification",H:"Full data modification"},availability:{N:"No service disruption",L:"Limited disruption",H:"Full service disruption"}},VD={attack_vector:{N:"high",A:"medium",L:"low",P:"low"},attack_complexity:{L:"high",H:"low"},privileges_required:{N:"high",L:"medium",H:"low"},user_interaction:{N:"high",R:"low",P:"medium",A:"low"},scope:{C:"high",U:"low"},confidentiality:{H:"high",L:"medium",N:"low"},integrity:{H:"high",L:"medium",N:"low"},availability:{H:"high",L:"medium",N:"low"}},YD={high:"bg-red-500/15 text-red-400 border-red-500/25",medium:"bg-yellow-500/15 text-yellow-400 border-yellow-500/25",low:"bg-[#222] text-[#666] border-[#333]"},XD=[{label:"Exploitability",keys:["attack_vector","attack_complexity","privileges_required","user_interaction"]},{label:"Impact",keys:["scope","confidentiality","integrity","availability"]}];function KD(e,t,r,a,s){const o=e.replace(/\.git$/,"").replace(/\/+$/,""),c=a.split("/").map(encodeURIComponent).join("/"),d=r.split("/").map(encodeURIComponent).join("/");return t==="github"?`${o}/blob/${d}/${c}#L${s}`:t==="gitlab"?`${o}/-/blob/${d}/${c}#L${s}`:null}function ZD({vulnerability:e,statusSlot:t,slackThreadUrl:r}){var R;const{severity:a,cvss:s,cve:o,cwe:c,fix_effort:d,created_at:f,target:h,endpoint:m,method:p,code_locations:y,cvss_breakdown:x,location_meta:_}=e,[N,S]=ee.useState(!0),w=y==null?void 0:y.filter(U=>U.fix_before&&U.fix_after),k=w&&w.length>0,E=h?lE(h):null,M=!!(h||m||p||k),I=x&&Object.values(x).some(U=>U!=null);return g.jsxs("aside",{className:"lg:sticky lg:top-6 lg:max-h-[calc(100vh-3rem)] lg:overflow-y-auto",children:[g.jsx("div",{className:"pb-4",children:g.jsxs("div",{className:"space-y-3",children:[g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Severity"}),g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx("div",{className:`w-2 h-2 rounded-full ${yp(a)}`,"aria-hidden":"true"}),g.jsx("span",{className:"text-sm font-medium capitalize text-white",children:a})]})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CVSS Score"}),g.jsx("span",{className:"text-sm font-semibold tabular-nums text-white",children:s!==null?s:"N/A"})]}),o&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CVE"}),g.jsx("span",{className:"text-sm text-white font-mono",children:o})]}),c&&c.length>0&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CWE"}),g.jsx("span",{className:"text-xs text-white font-mono truncate max-w-[80%] text-right",title:c.join(" · "),children:c.join(" · ")})]}),d&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Fix Effort"}),g.jsx("span",{className:`inline-flex items-center px-2 py-0.5 text-[11px] font-medium rounded-full border ${((R=ET[d])==null?void 0:R.color)??"text-[#666]"}`,children:d.charAt(0).toUpperCase()+d.slice(1)})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Discovered"}),g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx(R_,{className:"w-3 h-3 text-[#444]","aria-hidden":"true"}),g.jsx("span",{className:"text-sm text-white",children:Hm(f)})]})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Status"}),t]})]})}),M&&g.jsxs("div",{className:"border-t border-[#191919] pt-4 pb-4",children:[g.jsx("p",{className:"text-xs font-medium text-[#aaa] mb-2.5",children:"Asset"}),g.jsxs("div",{className:"space-y-2.5",children:[h&&E&&g.jsxs("div",{className:"flex items-center gap-1.5",children:[E.provider?g.jsx("span",{className:"flex-shrink-0 [&_svg]:w-3.5 [&_svg]:h-3.5","aria-hidden":"true",children:g.jsx(FD,{provider:E.provider})}):g.jsx(j_,{className:"w-3.5 h-3.5 text-[#555] flex-shrink-0","aria-hidden":"true"}),E.href?g.jsx("a",{href:E.href,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-white hover:text-[#ccc] break-words min-w-0 transition-colors",children:E.display}):g.jsx("span",{className:"text-sm text-white break-words min-w-0",children:E.display})]}),m&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Endpoint"}),g.jsx("span",{className:"text-xs text-white font-mono truncate max-w-[75%] text-right",children:m})]}),p&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Method"}),g.jsx("span",{className:"text-xs text-white font-mono",children:p})]}),k&&g.jsxs("div",{children:[g.jsx("span",{className:"text-xs text-[#aaa] mb-1.5 block",children:"Locations"}),g.jsx("div",{className:"space-y-0.5",children:w.map((U,B)=>{const Z=`${U.file}:${U.start_line}`,D=_?KD(_.repo_url,_.provider,_.branch,U.file,U.start_line):null;return D?g.jsx("a",{href:D,target:"_blank",rel:"noopener noreferrer",className:"text-[13px] text-[#888] hover:text-white font-mono break-all transition-colors block",children:Z},`loc-${B}`):g.jsx("span",{className:"text-[13px] text-[#888] font-mono break-all block",children:Z},`loc-${B}`)})})]})]})]}),I&&g.jsxs("div",{className:"border-t border-[#191919] pt-4",children:[g.jsxs("button",{onClick:()=>S(!N),className:"flex items-center justify-between w-full mb-2.5 group","aria-expanded":N,children:[g.jsx("span",{className:"text-xs font-medium text-[#aaa]",children:"Risk Assessment"}),g.jsx(ho,{className:`w-3.5 h-3.5 text-[#555] group-hover:text-white transition-transform ${N?"":"-rotate-90"}`,"aria-hidden":"true"})]}),g.jsx("div",{className:`space-y-3 ${N?"":"hidden"}`,children:XD.map(U=>{const B=U.keys.filter(Z=>x[Z]!=null);return B.length===0?null:g.jsxs("div",{children:[g.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[g.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[#444] font-medium",children:U.label}),g.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[#444] font-medium mr-2",children:"Risk"})]}),g.jsx("div",{className:"space-y-1",children:B.map(Z=>{var P,T;const D=x[Z],z=D?((P=VD[Z])==null?void 0:P[D])??"low":"low",V=D?((T=GD[Z])==null?void 0:T[D])??D:"N/A";return g.jsxs("div",{className:"flex items-center justify-between py-0.5",children:[g.jsx("span",{className:"text-[12px] text-[#aaa]",children:V}),g.jsx("span",{className:`text-[10px] font-medium px-1.5 py-0.5 rounded border ${YD[z]}`,children:z})]},Z)})})]},U.label)})})]})]})}function zv(e){return e?Math.floor((Date.now()-new Date(e).getTime())/1e3)<604800?` ${Hm(e)}`:` on ${Hm(e)}`:""}const QD={open:null,in_progress:{icon:R_,label:"Marked as In Progress",iconColor:"text-blue-400"},snoozed:{icon:Ik,label:"Snoozed",iconColor:"text-purple-400"},fixed:{icon:O_,label:"Marked as Fixed",iconColor:"text-emerald-400"},ignored:{icon:C_,label:"Marked as Ignored",iconColor:"text-[#888]"}},WD=[{label:"Auto-fix & open a PR",slug:"autofix",icon:Bm,requiresCode:!0},{label:"Sync to Jira / Linear",slug:"integrations",icon:bC}];function JD({vulnerability:e}){const t=wT[e.status],r=e.code_locations&&e.code_locations.length>0,a=r||e.remediation_steps,s=!!(e.evidence||e.assumptions||e.poc_description||e.poc_script_code),[o,c]=ee.useState("fix"),f=[{id:"fix",label:"Fix",show:!!a},{id:"reproduction",label:"Reproduction",show:s}].filter(h=>h.show);return g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[g.jsxs("div",{className:"min-w-0 flex-1",children:[g.jsxs("div",{className:"mb-2",children:[e.display_number&&g.jsx("span",{className:"text-xs font-mono text-[#555] block mb-1",children:_A(e.display_number)}),g.jsx("h1",{className:"text-2xl font-semibold text-white",children:e.title})]}),g.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[g.jsx("span",{className:`inline-flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded-full border ${t.color}`,children:t.label}),g.jsxs("div",{className:`inline-flex items-center gap-1.5 px-3 py-1 text-sm font-semibold rounded-full border ${I_[e.severity]}`,title:Zc(e)?`Adjusted from ${e.original_severity}`:void 0,children:[g.jsx("div",{className:`w-2 h-2 rounded-full ${yp(e.severity)}`}),g.jsxs("span",{className:"capitalize",children:[e.severity,!Zc(e)&&e.cvss?` ${e.cvss}`:""]}),Zc(e)&&g.jsx(Vs,{className:"w-3 h-3 opacity-70","aria-hidden":"true"})]}),e.cve&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"text-[#333]",children:"·"}),g.jsx("span",{className:"text-sm text-[#666] font-mono",children:e.cve})]})]})]}),g.jsx("div",{className:"flex flex-shrink-0 flex-wrap items-center gap-2",children:WD.filter(h=>!h.requiresCode||r).map(h=>{const m=h.icon;return g.jsxs("a",{href:fa($u,h.slug),target:"_blank",rel:"noopener noreferrer",onClick:()=>Dr(h.slug,"finding_detail"),className:"inline-flex items-center gap-1.5 rounded-lg bg-white px-3 py-1.5 text-xs font-semibold text-black transition-opacity hover:opacity-90",children:[g.jsx(m,{className:"h-3.5 w-3.5","aria-hidden":"true"}),h.label]},h.slug)})})]}),e.status!=="open"&&(()=>{const h=QD[e.status];if(!h)return null;const m=h.icon;return g.jsxs("div",{className:"rounded-lg px-4 py-3.5 flex gap-3",style:{border:"1px solid rgba(255,255,255,0.08)"},children:[g.jsx(m,{className:`w-5 h-5 flex-shrink-0 mt-0.5 ${h.iconColor}`,"aria-hidden":"true"}),g.jsxs("div",{className:"min-w-0",children:[g.jsxs("p",{className:"text-sm font-semibold text-white",children:[h.label,zv(e.status_changed_at)]}),e.status_note&&g.jsxs("p",{className:"text-sm text-[#666] italic mt-1",children:["“",e.status_note,"”"]})]})]})})(),Zc(e)&&g.jsxs("div",{className:"rounded-lg px-4 py-3.5 flex gap-3",style:{border:"1px solid rgba(255,255,255,0.08)"},children:[g.jsx(Vs,{className:"w-5 h-5 flex-shrink-0 mt-0.5 text-orange-400","aria-hidden":"true"}),g.jsxs("div",{className:"min-w-0",children:[g.jsxs("p",{className:"text-sm font-semibold text-white",children:["Severity changed manually from"," ",g.jsx("span",{className:"capitalize",children:e.original_severity}),e.cvss!=null?` (${e.cvss})`:""," to"," ",g.jsx("span",{className:"capitalize",children:e.severity}),zv(e.severity_changed_at)]}),e.severity_override_reason&&g.jsxs("p",{className:"text-sm text-[#666] italic mt-1",children:["“",e.severity_override_reason,"”"]})]})]}),g.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_340px] gap-8",children:[g.jsxs("div",{className:"min-w-0",children:[g.jsxs("div",{className:"space-y-8",children:[g.jsx(oa,{title:"TL;DR",content:e.description}),e.impact&&g.jsx(oa,{title:"Impact",content:e.impact}),e.technical_analysis&&g.jsx(oa,{title:"Technical Details",content:e.technical_analysis})]}),f.length>0&&g.jsxs("div",{className:"mt-10",children:[g.jsx("div",{className:"border-b border-[#2a2a2a]",children:g.jsx("nav",{className:"flex gap-6","aria-label":"Tabs",children:f.map(h=>g.jsxs("button",{onClick:()=>c(h.id),className:`relative min-w-[80px] text-center pb-3 text-[16px] font-semibold transition-colors ${o===h.id?"text-white":"text-[#666] hover:text-white"}`,"aria-current":o===h.id?"page":void 0,children:[h.label,o===h.id&&g.jsx("span",{className:"absolute bottom-0 inset-x-0 h-0.5 bg-white rounded-full"})]},h.id))})}),a&&g.jsxs("div",{className:`pt-6 space-y-6 ${o==="fix"?"animate-tab-in":"hidden"}`,children:[e.remediation_steps&&g.jsx(oa,{title:"How do I fix it?",content:e.remediation_steps}),r&&e.code_locations.filter(h=>h.fix_before&&h.fix_after).map((h,m)=>g.jsx(HD,{file:h.file,startLine:h.start_line,endLine:h.end_line,before:h.fix_before,after:h.fix_after},`fix-${m}`))]}),s&&g.jsxs("div",{className:`pt-6 space-y-8 ${o==="reproduction"?"animate-tab-in":"hidden"}`,children:[e.assumptions&&g.jsx(oa,{title:"Assumptions",content:e.assumptions}),e.evidence&&g.jsx(oa,{title:"Evidence",content:e.evidence}),g.jsx(qD,{description:e.poc_description,scriptCode:e.poc_script_code})]})]})]}),g.jsx("div",{className:"lg:border-l lg:border-[#2a2a2a] lg:pl-6",children:g.jsx(ZD,{vulnerability:e,statusSlot:g.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full border ${t.color}`,children:[g.jsx("div",{className:`w-1.5 h-1.5 rounded-full ${t.dotColor}`}),t.label]})})})]})]})}const Iv=[{key:"critical",label:"critical",dotClass:"bg-red-500",textClass:"text-red-500"},{key:"high",label:"high",dotClass:"bg-orange-500",textClass:"text-orange-500"},{key:"medium",label:"medium",dotClass:"bg-yellow-500",textClass:"text-yellow-500"},{key:"low",label:"low",dotClass:"bg-blue-500",textClass:"text-blue-500"}];function ej({findings:e,className:t,unit:r="issues",trailing:a}){return e.total<=0?null:g.jsxs("div",{className:Mr("space-y-3",t),children:[g.jsxs("div",{className:"flex flex-wrap items-center gap-x-8 gap-y-3",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("span",{className:"text-2xl font-semibold text-white tabular-nums",children:e.total}),g.jsx("span",{className:"text-sm text-[#666]",children:r})]}),g.jsx("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:Iv.map(({key:s,label:o,dotClass:c,textClass:d})=>{const f=e[s];return f<=0?null:g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx("div",{className:Mr("w-2 h-2 rounded-full",c),"aria-hidden":"true"}),g.jsx("span",{className:Mr("text-sm tabular-nums",d),children:f}),g.jsx("span",{className:"text-xs text-[#555]",children:o})]},s)})}),a?g.jsx("div",{className:"flex items-center gap-2",children:a}):null]}),g.jsx("div",{className:"h-1.5 rounded-full bg-[#222] overflow-hidden flex",children:Iv.map(({key:s,dotClass:o})=>{const c=e[s];return c<=0?null:g.jsx("div",{className:Mr("h-full",o),style:{width:`${c/e.total*100}%`}},s)})})]})}function ln(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,a;r{}};function Yu(){for(var e=0,t=arguments.length,r={},a;e=0&&(a=r.slice(s+1),r=r.slice(0,s)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:a}})}pu.prototype=Yu.prototype={constructor:pu,on:function(e,t){var r=this._,a=nj(e+"",r),s,o=-1,c=a.length;if(arguments.length<2){for(;++o0)for(var r=new Array(s),a=0,s,o;a=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Uv.hasOwnProperty(t)?{space:Uv[t],local:e}:e}function ij(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Wm&&t.documentElement.namespaceURI===Wm?t.createElement(e):t.createElementNS(r,e)}}function aj(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function oE(e){var t=Xu(e);return(t.local?aj:ij)(t)}function sj(){}function Gp(e){return e==null?sj:function(){return this.querySelector(e)}}function lj(e){typeof e!="function"&&(e=Gp(e));for(var t=this._groups,r=t.length,a=new Array(r),s=0;s=E&&(E=k+1);!(I=S[E])&&++E<_;);M._next=I||null}}return c=new sr(c,a),c._enter=d,c._exit=f,c}function Cj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Tj(){return new sr(this._exit||this._groups.map(fE),this._parents)}function Aj(e,t,r){var a=this.enter(),s=this,o=this.exit();return typeof e=="function"?(a=e(a),a&&(a=a.selection())):a=a.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),r==null?o.remove():r(o),a&&s?a.merge(s).order():s}function Mj(e){for(var t=e.selection?e.selection():e,r=this._groups,a=t._groups,s=r.length,o=a.length,c=Math.min(s,o),d=new Array(s),f=0;f=0;)(c=a[s])&&(o&&c.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(c,o),o=c);return this}function Rj(e){e||(e=Dj);function t(p,y){return p&&y?e(p.__data__,y.__data__):!p-!y}for(var r=this._groups,a=r.length,s=new Array(a),o=0;ot?1:e>=t?0:NaN}function jj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Lj(){return Array.from(this)}function zj(){for(var e=this._groups,t=0,r=e.length;t1?this.each((t==null?Yj:typeof t=="function"?Kj:Xj)(e,t,r??"")):Xs(this.node(),e)}function Xs(e,t){return e.style.getPropertyValue(t)||hE(e).getComputedStyle(e,null).getPropertyValue(t)}function Qj(e){return function(){delete this[e]}}function Wj(e,t){return function(){this[e]=t}}function Jj(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function eL(e,t){return arguments.length>1?this.each((t==null?Qj:typeof t=="function"?Jj:Wj)(e,t)):this.node()[e]}function mE(e){return e.trim().split(/^|\s+/)}function Vp(e){return e.classList||new pE(e)}function pE(e){this._node=e,this._names=mE(e.getAttribute("class")||"")}pE.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function gE(e,t){for(var r=Vp(e),a=-1,s=t.length;++a=0&&(r=t.slice(a+1),t=t.slice(0,a)),{type:t,name:r}})}function TL(e){return function(){var t=this.__on;if(t){for(var r=0,a=-1,s=t.length,o;r()=>e;function Jm(e,{sourceEvent:t,subject:r,target:a,identifier:s,active:o,x:c,y:d,dx:f,dy:h,dispatch:m}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:f,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:m}})}Jm.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function BL(e){return!e.ctrlKey&&!e.button}function UL(){return this.parentNode}function HL(e,t){return t??{x:e.x,y:e.y}}function $L(){return navigator.maxTouchPoints||"ontouchstart"in this}function wE(){var e=BL,t=UL,r=HL,a=$L,s={},o=Yu("start","drag","end"),c=0,d,f,h,m,p=0;function y(M){M.on("mousedown.drag",x).filter(a).on("touchstart.drag",S).on("touchmove.drag",w,IL).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(M,I){if(!(m||!e.call(this,M,I))){var R=E(this,t.call(this,M,I),M,I,"mouse");R&&(ir(M.view).on("mousemove.drag",_,xo).on("mouseup.drag",N,xo),vE(M.view),gm(M),h=!1,d=M.clientX,f=M.clientY,R("start",M))}}function _(M){if(Ps(M),!h){var I=M.clientX-d,R=M.clientY-f;h=I*I+R*R>p}s.mouse("drag",M)}function N(M){ir(M.view).on("mousemove.drag mouseup.drag",null),_E(M.view,h),Ps(M),s.mouse("end",M)}function S(M,I){if(e.call(this,M,I)){var R=M.changedTouches,U=t.call(this,M,I),B=R.length,Z,D;for(Z=0;Z>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?iu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?iu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=PL.exec(e))?new Gn(t[1],t[2],t[3],1):(t=FL.exec(e))?new Gn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=GL.exec(e))?iu(t[1],t[2],t[3],t[4]):(t=VL.exec(e))?iu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=YL.exec(e))?Vv(t[1],t[2]/100,t[3]/100,1):(t=XL.exec(e))?Vv(t[1],t[2]/100,t[3]/100,t[4]):Hv.hasOwnProperty(e)?Pv(Hv[e]):e==="transparent"?new Gn(NaN,NaN,NaN,0):null}function Pv(e){return new Gn(e>>16&255,e>>8&255,e&255,1)}function iu(e,t,r,a){return a<=0&&(e=t=r=NaN),new Gn(e,t,r,a)}function QL(e){return e instanceof jo||(e=Ga(e)),e?(e=e.rgb(),new Gn(e.r,e.g,e.b,e.opacity)):new Gn}function ep(e,t,r,a){return arguments.length===1?QL(e):new Gn(e,t,r,a??1)}function Gn(e,t,r,a){this.r=+e,this.g=+t,this.b=+r,this.opacity=+a}Yp(Gn,ep,EE(jo,{brighter(e){return e=e==null?ku:Math.pow(ku,e),new Gn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?yo:Math.pow(yo,e),new Gn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Gn(qa(this.r),qa(this.g),qa(this.b),Cu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fv,formatHex:Fv,formatHex8:WL,formatRgb:Gv,toString:Gv}));function Fv(){return`#${Ha(this.r)}${Ha(this.g)}${Ha(this.b)}`}function WL(){return`#${Ha(this.r)}${Ha(this.g)}${Ha(this.b)}${Ha((isNaN(this.opacity)?1:this.opacity)*255)}`}function Gv(){const e=Cu(this.opacity);return`${e===1?"rgb(":"rgba("}${qa(this.r)}, ${qa(this.g)}, ${qa(this.b)}${e===1?")":`, ${e})`}`}function Cu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function qa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ha(e){return e=qa(e),(e<16?"0":"")+e.toString(16)}function Vv(e,t,r,a){return a<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Ar(e,t,r,a)}function NE(e){if(e instanceof Ar)return new Ar(e.h,e.s,e.l,e.opacity);if(e instanceof jo||(e=Ga(e)),!e)return new Ar;if(e instanceof Ar)return e;e=e.rgb();var t=e.r/255,r=e.g/255,a=e.b/255,s=Math.min(t,r,a),o=Math.max(t,r,a),c=NaN,d=o-s,f=(o+s)/2;return d?(t===o?c=(r-a)/d+(r0&&f<1?0:c,new Ar(c,d,f,e.opacity)}function JL(e,t,r,a){return arguments.length===1?NE(e):new Ar(e,t,r,a??1)}function Ar(e,t,r,a){this.h=+e,this.s=+t,this.l=+r,this.opacity=+a}Yp(Ar,JL,EE(jo,{brighter(e){return e=e==null?ku:Math.pow(ku,e),new Ar(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?yo:Math.pow(yo,e),new Ar(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,a=r+(r<.5?r:1-r)*t,s=2*r-a;return new Gn(bm(e>=240?e-240:e+120,s,a),bm(e,s,a),bm(e<120?e+240:e-120,s,a),this.opacity)},clamp(){return new Ar(Yv(this.h),au(this.s),au(this.l),Cu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Cu(this.opacity);return`${e===1?"hsl(":"hsla("}${Yv(this.h)}, ${au(this.s)*100}%, ${au(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Yv(e){return e=(e||0)%360,e<0?e+360:e}function au(e){return Math.max(0,Math.min(1,e||0))}function bm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Xp=e=>()=>e;function e6(e,t){return function(r){return e+r*t}}function t6(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(a){return Math.pow(e+a*t,r)}}function n6(e){return(e=+e)==1?SE:function(t,r){return r-t?t6(t,r,e):Xp(isNaN(t)?r:t)}}function SE(e,t){var r=t-e;return r?e6(e,r):Xp(isNaN(e)?t:e)}const Tu=(function e(t){var r=n6(t);function a(s,o){var c=r((s=ep(s)).r,(o=ep(o)).r),d=r(s.g,o.g),f=r(s.b,o.b),h=SE(s.opacity,o.opacity);return function(m){return s.r=c(m),s.g=d(m),s.b=f(m),s.opacity=h(m),s+""}}return a.gamma=e,a})(1);function r6(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,a=t.slice(),s;return function(o){for(s=0;sr&&(o=t.slice(r,o),d[c]?d[c]+=o:d[++c]=o),(a=a[0])===(s=s[0])?d[c]?d[c]+=s:d[++c]=s:(d[++c]=null,f.push({i:c,x:Vr(a,s)})),r=xm.lastIndex;return r180?m+=360:m-h>180&&(h+=360),y.push({i:p.push(s(p)+"rotate(",null,a)-2,x:Vr(h,m)})):m&&p.push(s(p)+"rotate("+m+a)}function d(h,m,p,y){h!==m?y.push({i:p.push(s(p)+"skewX(",null,a)-2,x:Vr(h,m)}):m&&p.push(s(p)+"skewX("+m+a)}function f(h,m,p,y,x,_){if(h!==p||m!==y){var N=x.push(s(x)+"scale(",null,",",null,")");_.push({i:N-4,x:Vr(h,p)},{i:N-2,x:Vr(m,y)})}else(p!==1||y!==1)&&x.push(s(x)+"scale("+p+","+y+")")}return function(h,m){var p=[],y=[];return h=e(h),m=e(m),o(h.translateX,h.translateY,m.translateX,m.translateY,p,y),c(h.rotate,m.rotate,p,y),d(h.skewX,m.skewX,p,y),f(h.scaleX,h.scaleY,m.scaleX,m.scaleY,p,y),h=m=null,function(x){for(var _=-1,N=y.length,S;++_=0&&e._call.call(void 0,t),e=e._next;--Ks}function Zv(){Va=(Mu=_o.now())+Ku,Ks=ao=0;try{x6()}finally{Ks=0,v6(),Va=0}}function y6(){var e=_o.now(),t=e-Mu;t>AE&&(Ku-=t,Mu=e)}function v6(){for(var e,t=Au,r,a=1/0;t;)t._call?(a>t._time&&(a=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:Au=r);so=e,rp(a)}function rp(e){if(!Ks){ao&&(ao=clearTimeout(ao));var t=e-Va;t>24?(e<1/0&&(ao=setTimeout(Zv,e-_o.now()-Ku)),eo&&(eo=clearInterval(eo))):(eo||(Mu=_o.now(),eo=setInterval(y6,AE)),Ks=1,ME(Zv))}}function Qv(e,t,r){var a=new Ou;return t=t==null?0:+t,a.restart(s=>{a.stop(),e(s+t)},t,r),a}var _6=Yu("start","end","cancel","interrupt"),w6=[],RE=0,Wv=1,ip=2,bu=3,Jv=4,ap=5,xu=6;function Zu(e,t,r,a,s,o){var c=e.__transition;if(!c)e.__transition={};else if(r in c)return;E6(e,r,{name:t,index:a,group:s,on:_6,tween:w6,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:RE})}function Zp(e,t){var r=Ir(e,t);if(r.state>RE)throw new Error("too late; already scheduled");return r}function Zr(e,t){var r=Ir(e,t);if(r.state>bu)throw new Error("too late; already running");return r}function Ir(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function E6(e,t,r){var a=e.__transition,s;a[t]=r,r.timer=OE(o,0,r.time);function o(h){r.state=Wv,r.timer.restart(c,r.delay,r.time),r.delay<=h&&c(h-r.delay)}function c(h){var m,p,y,x;if(r.state!==Wv)return f();for(m in a)if(x=a[m],x.name===r.name){if(x.state===bu)return Qv(c);x.state===Jv?(x.state=xu,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete a[m]):+mip&&a.state=0&&(t=t.slice(0,r)),!t||t==="start"})}function J6(e,t,r){var a,s,o=W6(t)?Zp:Zr;return function(){var c=o(this,e),d=c.on;d!==a&&(s=(a=d).copy()).on(t,r),c.on=s}}function ez(e,t){var r=this._id;return arguments.length<2?Ir(this.node(),r).on.on(e):this.each(J6(r,e,t))}function tz(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function nz(){return this.on("end.remove",tz(this._id))}function rz(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Gp(e));for(var a=this._groups,s=a.length,o=new Array(s),c=0;c()=>e;function Tz(e,{sourceEvent:t,target:r,transform:a,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:a,enumerable:!0,configurable:!0},_:{value:s}})}function vi(e,t,r){this.k=e,this.x=t,this.y=r}vi.prototype={constructor:vi,scale:function(e){return e===1?this:new vi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new vi(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Qu=new vi(1,0,0);zE.prototype=vi.prototype;function zE(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Qu;return e.__zoom}function ym(e){e.stopImmediatePropagation()}function to(e){e.preventDefault(),e.stopImmediatePropagation()}function Az(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Mz(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function e1(){return this.__zoom||Qu}function Oz(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Rz(){return navigator.maxTouchPoints||"ontouchstart"in this}function Dz(e,t,r){var a=e.invertX(t[0][0])-r[0][0],s=e.invertX(t[1][0])-r[1][0],o=e.invertY(t[0][1])-r[0][1],c=e.invertY(t[1][1])-r[1][1];return e.translate(s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s),c>o?(o+c)/2:Math.min(0,o)||Math.max(0,c))}function IE(){var e=Az,t=Mz,r=Dz,a=Oz,s=Rz,o=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,f=gu,h=Yu("start","zoom","end"),m,p,y,x=500,_=150,N=0,S=10;function w(T){T.property("__zoom",e1).on("wheel.zoom",B,{passive:!1}).on("mousedown.zoom",Z).on("dblclick.zoom",D).filter(s).on("touchstart.zoom",z).on("touchmove.zoom",V).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(T,$,O,H){var X=T.selection?T.selection():T;X.property("__zoom",e1),T!==X?I(T,$,O,H):X.interrupt().each(function(){R(this,arguments).event(H).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},w.scaleBy=function(T,$,O,H){w.scaleTo(T,function(){var X=this.__zoom.k,K=typeof $=="function"?$.apply(this,arguments):$;return X*K},O,H)},w.scaleTo=function(T,$,O,H){w.transform(T,function(){var X=t.apply(this,arguments),K=this.__zoom,C=O==null?M(X):typeof O=="function"?O.apply(this,arguments):O,j=K.invert(C),Y=typeof $=="function"?$.apply(this,arguments):$;return r(E(k(K,Y),C,j),X,c)},O,H)},w.translateBy=function(T,$,O,H){w.transform(T,function(){return r(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof O=="function"?O.apply(this,arguments):O),t.apply(this,arguments),c)},null,H)},w.translateTo=function(T,$,O,H,X){w.transform(T,function(){var K=t.apply(this,arguments),C=this.__zoom,j=H==null?M(K):typeof H=="function"?H.apply(this,arguments):H;return r(Qu.translate(j[0],j[1]).scale(C.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof O=="function"?-O.apply(this,arguments):-O),K,c)},H,X)};function k(T,$){return $=Math.max(o[0],Math.min(o[1],$)),$===T.k?T:new vi($,T.x,T.y)}function E(T,$,O){var H=$[0]-O[0]*T.k,X=$[1]-O[1]*T.k;return H===T.x&&X===T.y?T:new vi(T.k,H,X)}function M(T){return[(+T[0][0]+ +T[1][0])/2,(+T[0][1]+ +T[1][1])/2]}function I(T,$,O,H){T.on("start.zoom",function(){R(this,arguments).event(H).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(H).end()}).tween("zoom",function(){var X=this,K=arguments,C=R(X,K).event(H),j=t.apply(X,K),Y=O==null?M(j):typeof O=="function"?O.apply(X,K):O,L=Math.max(j[1][0]-j[0][0],j[1][1]-j[0][1]),G=X.__zoom,q=typeof $=="function"?$.apply(X,K):$,Q=f(G.invert(Y).concat(L/G.k),q.invert(Y).concat(L/q.k));return function(J){if(J===1)J=q;else{var W=Q(J),te=L/W[2];J=new vi(te,Y[0]-W[0]*te,Y[1]-W[1]*te)}C.zoom(null,J)}})}function R(T,$,O){return!O&&T.__zooming||new U(T,$)}function U(T,$){this.that=T,this.args=$,this.active=0,this.sourceEvent=null,this.extent=t.apply(T,$),this.taps=0}U.prototype={event:function(T){return T&&(this.sourceEvent=T),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(T,$){return this.mouse&&T!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&T!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&T!=="touch"&&(this.touch1[1]=$.invert(this.touch1[0])),this.that.__zoom=$,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(T){var $=ir(this.that).datum();h.call(T,this.that,new Tz(T,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:h}),$)}};function B(T,...$){if(!e.apply(this,arguments))return;var O=R(this,$).event(T),H=this.__zoom,X=Math.max(o[0],Math.min(o[1],H.k*Math.pow(2,a.apply(this,arguments)))),K=Cr(T);if(O.wheel)(O.mouse[0][0]!==K[0]||O.mouse[0][1]!==K[1])&&(O.mouse[1]=H.invert(O.mouse[0]=K)),clearTimeout(O.wheel);else{if(H.k===X)return;O.mouse=[K,H.invert(K)],yu(this),O.start()}to(T),O.wheel=setTimeout(C,_),O.zoom("mouse",r(E(k(H,X),O.mouse[0],O.mouse[1]),O.extent,c));function C(){O.wheel=null,O.end()}}function Z(T,...$){if(y||!e.apply(this,arguments))return;var O=T.currentTarget,H=R(this,$,!0).event(T),X=ir(T.view).on("mousemove.zoom",Y,!0).on("mouseup.zoom",L,!0),K=Cr(T,O),C=T.clientX,j=T.clientY;vE(T.view),ym(T),H.mouse=[K,this.__zoom.invert(K)],yu(this),H.start();function Y(G){if(to(G),!H.moved){var q=G.clientX-C,Q=G.clientY-j;H.moved=q*q+Q*Q>N}H.event(G).zoom("mouse",r(E(H.that.__zoom,H.mouse[0]=Cr(G,O),H.mouse[1]),H.extent,c))}function L(G){X.on("mousemove.zoom mouseup.zoom",null),_E(G.view,H.moved),to(G),H.event(G).end()}}function D(T,...$){if(e.apply(this,arguments)){var O=this.__zoom,H=Cr(T.changedTouches?T.changedTouches[0]:T,this),X=O.invert(H),K=O.k*(T.shiftKey?.5:2),C=r(E(k(O,K),H,X),t.apply(this,$),c);to(T),d>0?ir(this).transition().duration(d).call(I,C,H,T):ir(this).call(w.transform,C,H,T)}}function z(T,...$){if(e.apply(this,arguments)){var O=T.touches,H=O.length,X=R(this,$,T.changedTouches.length===H).event(T),K,C,j,Y;for(ym(T),C=0;C`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:r,targetHandle:a})=>`Couldn't create edge for ${e} handle id: "${e==="source"?r:a}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},wo=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],BE=["Enter"," ","Escape"],UE={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:r})=>`Moved selected node ${e}. New position, x: ${t}, y: ${r}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Zs;(function(e){e.Strict="strict",e.Loose="loose"})(Zs||(Zs={}));var Pa;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Pa||(Pa={}));var Eo;(function(e){e.Partial="partial",e.Full="full"})(Eo||(Eo={}));const HE={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ca;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ca||(ca={}));var Ru;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Ru||(Ru={}));var ze;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ze||(ze={}));const t1={[ze.Left]:ze.Right,[ze.Right]:ze.Left,[ze.Top]:ze.Bottom,[ze.Bottom]:ze.Top};function $E(e){return e===null?null:e?"valid":"invalid"}const qE=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,jz=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Wp=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Lo=(e,t=[0,0])=>{const{width:r,height:a}=Qr(e),s=e.origin??t,o=r*s[0],c=a*s[1];return{x:e.position.x-o,y:e.position.y-c}},Lz=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((a,s)=>{const o=typeof s=="string";let c=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(c=o?t.nodeLookup.get(s):Wp(s)?s:t.nodeLookup.get(s.id));const d=c?Du(c,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Wu(a,d)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Ju(r)},zo=(e,t={})=>{let r={x:1/0,y:1/0,x2:-1/0,y2:-1/0},a=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(r=Wu(r,Du(s)),a=!0)}),a?Ju(r):{x:0,y:0,width:0,height:0}},Jp=(e,t,[r,a,s]=[0,0,1],o=!1,c=!1)=>{const d=(t.x-r)/s,f=(t.y-a)/s,h=t.width/s,m=t.height/s,p=[];for(const y of e.values()){const{measured:x,selectable:_=!0,hidden:N=!1}=y;if(c&&!_||N)continue;const S=x.width??y.width??y.initialWidth??0,w=x.height??y.height??y.initialHeight??0,{x:k,y:E}=y.internals.positionAbsolute,M=VE(d,f,h,m,k,E,S,w),I=S*w,R=o&&M>0;(!y.internals.handleBounds||R||M>=I||y.dragging)&&p.push(y)}return p},zz=(e,t)=>{const r=new Set;return e.forEach(a=>{r.add(a.id)}),t.filter(a=>r.has(a.source)||r.has(a.target))};function Iz(e,t){const r=new Map,a=t!=null&&t.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{let o;if(t!=null&&t.includeHiddenNodes){const{width:c,height:d}=Qr(s);o=c>0&&d>0}else o=!!(s.measured.width&&s.measured.height&&!s.hidden);o&&(!a||a.has(s.id))&&r.set(s.id,s)}),r}async function Bz({nodes:e,width:t,height:r,panZoom:a,minZoom:s,maxZoom:o},c){if(e.size===0)return!0;const d=Iz(e,c),f=zo(d),h=tg(f,t,r,(c==null?void 0:c.minZoom)??s,(c==null?void 0:c.maxZoom)??o,(c==null?void 0:c.padding)??.1);return await a.setViewport(h,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function PE({nodeId:e,nextPosition:t,nodeLookup:r,nodeOrigin:a=[0,0],nodeExtent:s,onError:o}){const c=r.get(e),d=c.parentId?r.get(c.parentId):void 0,{x:f,y:h}=d?d.internals.positionAbsolute:{x:0,y:0},m=c.origin??a;let p=c.extent||s;if(c.extent==="parent"&&!c.expandParent)if(!d)o==null||o("005",Lr.error005());else{const x=d.measured.width,_=d.measured.height;x&&_&&(p=[[f,h],[f+x,h+_]])}else d&&Xa(c.extent)&&(p=[[c.extent[0][0]+f,c.extent[0][1]+h],[c.extent[1][0]+f,c.extent[1][1]+h]]);const y=Xa(p)?Ya(t,p,c.measured):t;return(c.measured.width===void 0||c.measured.height===void 0)&&(o==null||o("015",Lr.error015())),{position:{x:y.x-f+(c.measured.width??0)*m[0],y:y.y-h+(c.measured.height??0)*m[1]},positionAbsolute:y}}async function Uz({nodesToRemove:e=[],edgesToRemove:t=[],nodes:r,edges:a,onBeforeDelete:s}){const o=new Set(e.map(y=>y.id)),c=[];for(const y of r){if(y.deletable===!1)continue;const x=o.has(y.id),_=!x&&y.parentId&&c.find(N=>N.id===y.parentId);(x||_)&&c.push(y)}const d=new Set(t.map(y=>y.id)),f=a.filter(y=>y.deletable!==!1),m=zz(c,f);for(const y of f)d.has(y.id)&&!m.find(_=>_.id===y.id)&&m.push(y);if(!s)return{edges:m,nodes:c};const p=await s({nodes:c,edges:m});return typeof p=="boolean"?p?{edges:m,nodes:c}:{edges:[],nodes:[]}:p}const Qs=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),Ya=(e={x:0,y:0},t,r)=>({x:Qs(e.x,t[0][0],t[1][0]-((r==null?void 0:r.width)??0)),y:Qs(e.y,t[0][1],t[1][1]-((r==null?void 0:r.height)??0))});function FE(e,t,r){const{width:a,height:s}=Qr(r),{x:o,y:c}=r.internals.positionAbsolute;return Ya(e,[[o,c],[o+a,c+s]],t)}const n1=(e,t,r)=>er?-Qs(Math.abs(e-r),1,t)/t:0,eg=(e,t,r=15,a=40)=>{const s=n1(e.x,a,t.width-a)*r,o=n1(e.y,a,t.height-a)*r;return[s,o]},Wu=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),sp=({x:e,y:t,width:r,height:a})=>({x:e,y:t,x2:e+r,y2:t+a}),Ju=({x:e,y:t,x2:r,y2:a})=>({x:e,y:t,width:r-e,height:a-t}),No=(e,t=[0,0])=>{var s,o;const{x:r,y:a}=Wp(e)?e.internals.positionAbsolute:Lo(e,t);return{x:r,y:a,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},Du=(e,t=[0,0])=>{var s,o;const{x:r,y:a}=Wp(e)?e.internals.positionAbsolute:Lo(e,t);return{x:r,y:a,x2:r+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:a+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},GE=(e,t)=>Ju(Wu(sp(e),sp(t))),VE=(e,t,r,a,s,o,c,d)=>{const f=Math.max(0,Math.min(e+r,s+c)-Math.max(e,s)),h=Math.max(0,Math.min(t+a,o+d)-Math.max(t,o));return Math.ceil(f*h)},ju=(e,t)=>VE(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),r1=e=>Or(e.width)&&Or(e.height)&&Or(e.x)&&Or(e.y),Or=e=>!isNaN(e)&&isFinite(e),YE=(e,t)=>(r,a)=>{},Io=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Bo=({x:e,y:t},[r,a,s],o=!1,c=[1,1])=>{const d={x:(e-r)/s,y:(t-a)/s};return o?Io(d,c):d},Ws=({x:e,y:t},[r,a,s])=>({x:e*s+r,y:t*s+a});function Ls(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const r=parseFloat(e);if(!Number.isNaN(r))return Math.floor(r)}if(typeof e=="string"&&e.endsWith("%")){const r=parseFloat(e);if(!Number.isNaN(r))return Math.floor(t*r*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Hz(e,t,r){if(typeof e=="string"||typeof e=="number"){const a=Ls(e,r),s=Ls(e,t);return{top:a,right:s,bottom:a,left:s,x:s*2,y:a*2}}if(typeof e=="object"){const a=Ls(e.top??e.y??0,r),s=Ls(e.bottom??e.y??0,r),o=Ls(e.left??e.x??0,t),c=Ls(e.right??e.x??0,t);return{top:a,right:c,bottom:s,left:o,x:o+c,y:a+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function $z(e,t,r,a,s,o){const{x:c,y:d}=Ws(e,[t,r,a]),{x:f,y:h}=Ws({x:e.x+e.width,y:e.y+e.height},[t,r,a]),m=s-f,p=o-h;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(m),bottom:Math.floor(p)}}const tg=(e,t,r,a,s,o)=>{const c=Hz(o,t,r),d=(t-c.x)/e.width,f=(r-c.y)/e.height,h=Math.min(d,f),m=Qs(h,a,s),p=e.x+e.width/2,y=e.y+e.height/2,x=t/2-p*m,_=r/2-y*m,N=$z(e,x,_,m,t,r),S={left:Math.min(N.left-c.left,0),top:Math.min(N.top-c.top,0),right:Math.min(N.right-c.right,0),bottom:Math.min(N.bottom-c.bottom,0)};return{x:x-S.left+S.right,y:_-S.top+S.bottom,zoom:m}},So=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Xa(e){return e!=null&&e!=="parent"}function Qr(e){var t,r;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight??0}}function XE(e){var t,r;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight)!==void 0}function KE(e,t={width:0,height:0},r,a,s){const o={...e},c=a.get(r);if(c){const d=c.origin||s;o.x+=c.internals.positionAbsolute.x-(t.width??0)*d[0],o.y+=c.internals.positionAbsolute.y-(t.height??0)*d[1]}return o}function i1(e,t){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}function qz(){let e,t;return{promise:new Promise((a,s)=>{e=a,t=s}),resolve:e,reject:t}}function Pz(e){return{...UE,...e||{}}}function fo(e,{snapGrid:t=[0,0],snapToGrid:r=!1,transform:a,containerBounds:s}){const{x:o,y:c}=Rr(e),d=Bo({x:o-((s==null?void 0:s.left)??0),y:c-((s==null?void 0:s.top)??0)},a),{x:f,y:h}=r?Io(d,t):d;return{xSnapped:f,ySnapped:h,...d}}const ng=e=>({width:e.offsetWidth,height:e.offsetHeight}),ZE=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Fz=["INPUT","SELECT","TEXTAREA"];function QE(e){var a,s;const t=((s=(a=e.composedPath)==null?void 0:a.call(e))==null?void 0:s[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:Fz.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const WE=e=>"clientX"in e,Rr=(e,t)=>{var o,c;const r=WE(e),a=r?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,s=r?e.clientY:(c=e.touches)==null?void 0:c[0].clientY;return{x:a-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},a1=(e,t,r,a,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:e,nodeId:s,position:c.getAttribute("data-handlepos"),x:(d.left-r.left)/a,y:(d.top-r.top)/a,...ng(c)}})};function JE({sourceX:e,sourceY:t,targetX:r,targetY:a,sourceControlX:s,sourceControlY:o,targetControlX:c,targetControlY:d}){const f=e*.125+s*.375+c*.375+r*.125,h=t*.125+o*.375+d*.375+a*.125,m=Math.abs(f-e),p=Math.abs(h-t);return[f,h,m,p]}function ou(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function s1({pos:e,x1:t,y1:r,x2:a,y2:s,c:o}){switch(e){case ze.Left:return[t-ou(t-a,o),r];case ze.Right:return[t+ou(a-t,o),r];case ze.Top:return[t,r-ou(r-s,o)];case ze.Bottom:return[t,r+ou(s-r,o)]}}function eN({sourceX:e,sourceY:t,sourcePosition:r=ze.Bottom,targetX:a,targetY:s,targetPosition:o=ze.Top,curvature:c=.25}){const[d,f]=s1({pos:r,x1:e,y1:t,x2:a,y2:s,c}),[h,m]=s1({pos:o,x1:a,y1:s,x2:e,y2:t,c}),[p,y,x,_]=JE({sourceX:e,sourceY:t,targetX:a,targetY:s,sourceControlX:d,sourceControlY:f,targetControlX:h,targetControlY:m});return[`M${e},${t} C${d},${f} ${h},${m} ${a},${s}`,p,y,x,_]}function tN({sourceX:e,sourceY:t,targetX:r,targetY:a}){const s=Math.abs(r-e)/2,o=r0}const Yz=({source:e,sourceHandle:t,target:r,targetHandle:a})=>`xy-edge__${e}${t||""}-${r}${a||""}`,Xz=(e,t)=>t.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),Kz=(e,t,r={})=>{var o;if(!e.source||!e.target)return(o=r.onError)==null||o.call(r,"006",Lr.error006()),t;const a=r.getEdgeId||Yz;let s;return qE(e)?s={...e}:s={...e,id:a(e)},Xz(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function nN({sourceX:e,sourceY:t,targetX:r,targetY:a}){const[s,o,c,d]=tN({sourceX:e,sourceY:t,targetX:r,targetY:a});return[`M ${e},${t}L ${r},${a}`,s,o,c,d]}const l1={[ze.Left]:{x:-1,y:0},[ze.Right]:{x:1,y:0},[ze.Top]:{x:0,y:-1},[ze.Bottom]:{x:0,y:1}},Zz=({source:e,sourcePosition:t=ze.Bottom,target:r})=>t===ze.Left||t===ze.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Qz({source:e,sourcePosition:t=ze.Bottom,target:r,targetPosition:a=ze.Top,center:s,offset:o,stepPosition:c}){const d=l1[t],f=l1[a],h={x:e.x+d.x*o,y:e.y+d.y*o},m={x:r.x+f.x*o,y:r.y+f.y*o},p=Zz({source:h,sourcePosition:t,target:m}),y=p.x!==0?"x":"y",x=p[y];let _=[],N,S;const w={x:0,y:0},k={x:0,y:0},[,,E,M]=tN({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(d[y]*f[y]===-1){y==="x"?(N=s.x??h.x+(m.x-h.x)*c,S=s.y??(h.y+m.y)/2):(N=s.x??(h.x+m.x)/2,S=s.y??h.y+(m.y-h.y)*c);const B=[{x:N,y:h.y},{x:N,y:m.y}],Z=[{x:h.x,y:S},{x:m.x,y:S}];d[y]===x?_=y==="x"?B:Z:_=y==="x"?Z:B}else{const B=[{x:h.x,y:m.y}],Z=[{x:m.x,y:h.y}];if(y==="x"?_=d.x===x?Z:B:_=d.y===x?B:Z,t===a){const T=Math.abs(e[y]-r[y]);if(T<=o){const $=Math.min(o-1,o-T);d[y]===x?w[y]=(h[y]>e[y]?-1:1)*$:k[y]=(m[y]>r[y]?-1:1)*$}}if(t!==a){const T=y==="x"?"y":"x",$=d[y]===f[T],O=h[T]>m[T],H=h[T]=P?(N=(D.x+z.x)/2,S=_[0].y):(N=_[0].x,S=(D.y+z.y)/2)}const I={x:h.x+w.x,y:h.y+w.y},R={x:m.x+k.x,y:m.y+k.y};return[[e,...I.x!==_[0].x||I.y!==_[0].y?[I]:[],..._,...R.x!==_[_.length-1].x||R.y!==_[_.length-1].y?[R]:[],r],N,S,E,M]}function Wz(e,t,r,a){const s=Math.min(o1(e,t)/2,o1(t,r)/2,a),{x:o,y:c}=t;if(e.x===o&&o===r.x||e.y===c&&c===r.y)return`L${o} ${c}`;if(e.y===c){const h=e.xr.id===t):e[0])||null}function op(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(a=>`${a}=${e[a]}`).join("&")}`:""}function eI(e,{id:t,defaultColor:r,defaultMarkerStart:a,defaultMarkerEnd:s}){const o=new Set;return e.reduce((c,d)=>([d.markerStart||a,d.markerEnd||s].forEach(f=>{if(f&&typeof f=="object"){const h=op(f,t);o.has(h)||(c.push({id:h,color:f.color||r,...f}),o.add(h))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const rN=1e3,tI=10,rg={nodeOrigin:[0,0],nodeExtent:wo,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},nI={...rg,checkEquality:!0};function ig(e,t){const r={...e};for(const a in t)t[a]!==void 0&&(r[a]=t[a]);return r}function rI(e,t,r){const a=ig(rg,r);for(const s of e.values())if(s.parentId)sg(s,e,t,a);else{const o=Lo(s,a.nodeOrigin),c=Xa(s.extent)?s.extent:a.nodeExtent,d=Ya(o,c,Qr(s));s.internals.positionAbsolute=d}}function iI(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const r=[],a=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?r.push(o):s.type==="target"&&a.push(o)}return{source:r,target:a}}function ag(e){return e==="manual"}function cp(e,t,r,a={}){var m,p;const s=ig(nI,a),o={i:0},c=new Map(t),d=s!=null&&s.elevateNodesOnSelect&&!ag(s.zIndexMode)?rN:0;let f=e.length>0,h=!1;t.clear(),r.clear();for(const y of e){let x=c.get(y.id);if(s.checkEquality&&y===(x==null?void 0:x.internals.userNode))t.set(y.id,x);else{const _=Lo(y,s.nodeOrigin),N=Xa(y.extent)?y.extent:s.nodeExtent,S=Ya(_,N,Qr(y));x={...s.defaults,...y,measured:{width:(m=y.measured)==null?void 0:m.width,height:(p=y.measured)==null?void 0:p.height},internals:{positionAbsolute:S,handleBounds:iI(y,x),z:iN(y,d,s.zIndexMode),userNode:y}},t.set(y.id,x)}(x.measured===void 0||x.measured.width===void 0||x.measured.height===void 0)&&!x.hidden&&(f=!1),y.parentId&&sg(x,t,r,a,o),h||(h=y.selected??!1)}return{nodesInitialized:f,hasSelectedNodes:h}}function aI(e,t){if(!e.parentId)return;const r=t.get(e.parentId);r?r.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function sg(e,t,r,a,s){const{elevateNodesOnSelect:o,nodeOrigin:c,nodeExtent:d,zIndexMode:f}=ig(rg,a),h=e.parentId,m=t.get(h);if(!m){console.warn(`Parent node ${h} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aI(e,r),s&&!m.parentId&&m.internals.rootParentIndex===void 0&&f==="auto"&&(m.internals.rootParentIndex=++s.i,m.internals.z=m.internals.z+s.i*tI),s&&m.internals.rootParentIndex!==void 0&&(s.i=m.internals.rootParentIndex);const p=o&&!ag(f)?rN:0,{x:y,y:x,z:_}=sI(e,m,c,d,p,f),{positionAbsolute:N}=e.internals,S=y!==N.x||x!==N.y;(S||_!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:y,y:x}:N,z:_}})}function iN(e,t,r){const a=Or(e.zIndex)?e.zIndex:0;return ag(r)?a:a+(e.selected?t:0)}function sI(e,t,r,a,s,o){const{x:c,y:d}=t.internals.positionAbsolute,f=Qr(e),h=Lo(e,r),m=Xa(e.extent)?Ya(h,e.extent,f):h;let p=Ya({x:c+m.x,y:d+m.y},a,f);e.extent==="parent"&&(p=FE(p,f,t));const y=iN(e,s,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=y?x+1:y}}function lg(e,t,r,a=[0,0]){var c;const s=[],o=new Map;for(const d of e){const f=t.get(d.parentId);if(!f)continue;const h=((c=o.get(d.parentId))==null?void 0:c.expandedRect)??No(f),m=GE(h,d.rect);o.set(d.parentId,{expandedRect:m,parent:f})}return o.size>0&&o.forEach(({expandedRect:d,parent:f},h)=>{var E;const m=f.internals.positionAbsolute,p=Qr(f),y=f.origin??a,x=d.x0||_>0||w||k)&&(s.push({id:h,type:"position",position:{x:f.position.x-x+w,y:f.position.y-_+k}}),(E=r.get(h))==null||E.forEach(M=>{e.some(I=>I.id===M.id)||s.push({id:M.id,type:"position",position:{x:M.position.x+x,y:M.position.y+_}})})),(p.width0){const x=lg(y,t,r,s);h.push(...x)}return{changes:h,updatedInternals:f}}async function oI({delta:e,panZoom:t,transform:r,translateExtent:a,width:s,height:o}){if(!t||!e.x&&!e.y)return!1;const c=await t.setViewportConstrained({x:r[0]+e.x,y:r[1]+e.y,zoom:r[2]},[[0,0],[s,o]],a);return!!c&&(c.x!==r[0]||c.y!==r[1]||c.k!==r[2])}function f1(e,t,r,a,s,o){let c=s;const d=a.get(c)||new Map;a.set(c,d.set(r,t)),c=`${s}-${e}`;const f=a.get(c)||new Map;if(a.set(c,f.set(r,t)),o){c=`${s}-${e}-${o}`;const h=a.get(c)||new Map;a.set(c,h.set(r,t))}}function aN(e,t,r){e.clear(),t.clear();for(const a of r){const{source:s,target:o,sourceHandle:c=null,targetHandle:d=null}=a,f={edgeId:a.id,source:s,target:o,sourceHandle:c,targetHandle:d},h=`${s}-${c}--${o}-${d}`,m=`${o}-${d}--${s}-${c}`;f1("source",f,m,e,s,c),f1("target",f,h,e,o,d),t.set(a.id,a)}}function sN(e,t){if(!e.parentId)return!1;const r=t.get(e.parentId);return r?r.selected?!0:sN(r,t):!1}function h1(e,t,r){var s;let a=e;do{if((s=a==null?void 0:a.matches)!=null&&s.call(a,t))return!0;if(a===r)return!1;a=a==null?void 0:a.parentElement}while(a);return!1}function cI(e,t,r,a){const s=new Map;for(const[o,c]of e)if((c.selected||c.id===a)&&(!c.parentId||!sN(c,e))&&(c.draggable||t&&typeof c.draggable>"u")){const d=e.get(o);d&&s.set(o,{id:o,position:d.position||{x:0,y:0},distance:{x:r.x-d.internals.positionAbsolute.x,y:r.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return s}function vm({nodeId:e,dragItems:t,nodeLookup:r,dragging:a=!0}){var c,d,f;const s=[];for(const[h,m]of t){const p=(c=r.get(h))==null?void 0:c.internals.userNode;p&&s.push({...p,position:m.position,dragging:a})}if(!e)return[s[0],s];const o=(d=r.get(e))==null?void 0:d.internals.userNode;return[o?{...o,position:((f=t.get(e))==null?void 0:f.position)||o.position,dragging:a}:s[0],s]}function uI({dragItems:e,snapGrid:t,x:r,y:a}){const s=e.values().next().value;if(!s)return null;const o={x:r-s.distance.x,y:a-s.distance.y},c=Io(o,t);return{x:c.x-o.x,y:c.y-o.y}}function dI({onNodeMouseDown:e,getStoreItems:t,onDragStart:r,onDrag:a,onDragStop:s}){let o={x:null,y:null},c=0,d=new Map,f=!1,h={x:0,y:0},m=null,p=!1,y=null,x=!1,_=!1,N=null;function S({noDragClassName:k,handleSelector:E,domNode:M,isSelectable:I,nodeId:R,nodeClickDistance:U=0}){y=ir(M);function B({x:V,y:P}){const{nodeLookup:T,nodeExtent:$,snapGrid:O,snapToGrid:H,nodeOrigin:X,onNodeDrag:K,onSelectionDrag:C,onError:j,updateNodePositions:Y}=t();o={x:V,y:P};let L=!1;const G=d.size>1,q=G&&$?sp(zo(d)):null,Q=G&&H?uI({dragItems:d,snapGrid:O,x:V,y:P}):null;for(const[J,W]of d){if(!T.has(J))continue;let te={x:V-W.distance.x,y:P-W.distance.y};H&&(te=Q?{x:Math.round(te.x+Q.x),y:Math.round(te.y+Q.y)}:Io(te,O));let ce=null;if(G&&$&&!W.extent&&q){const{positionAbsolute:we}=W.internals,Ne=we.x-q.x+$[0][0],je=we.x+W.measured.width-q.x2+$[1][0],$e=we.y-q.y+$[0][1],st=we.y+W.measured.height-q.y2+$[1][1];ce=[[Ne,$e],[je,st]]}const{position:fe,positionAbsolute:be}=PE({nodeId:J,nextPosition:te,nodeLookup:T,nodeExtent:ce||$,nodeOrigin:X,onError:j});L=L||W.position.x!==fe.x||W.position.y!==fe.y,W.position=fe,W.internals.positionAbsolute=be}if(_=_||L,!!L&&(Y(d,!0),N&&(a||K||!R&&C))){const[J,W]=vm({nodeId:R,dragItems:d,nodeLookup:T});a==null||a(N,d,J,W),K==null||K(N,J,W),R||C==null||C(N,W)}}async function Z(){if(!m)return;const{transform:V,panBy:P,autoPanSpeed:T,autoPanOnNodeDrag:$}=t();if(!$){f=!1,cancelAnimationFrame(c);return}const[O,H]=eg(h,m,T);(O!==0||H!==0)&&(o.x=(o.x??0)-O/V[2],o.y=(o.y??0)-H/V[2],await P({x:O,y:H})&&B(o)),c=requestAnimationFrame(Z)}function D(V){var G;const{nodeLookup:P,multiSelectionActive:T,nodesDraggable:$,transform:O,snapGrid:H,snapToGrid:X,selectNodesOnDrag:K,onNodeDragStart:C,onSelectionDragStart:j,unselectNodesAndEdges:Y}=t();p=!0,(!K||!I)&&!T&&R&&((G=P.get(R))!=null&&G.selected||Y()),I&&K&&R&&(e==null||e(R));const L=fo(V.sourceEvent,{transform:O,snapGrid:H,snapToGrid:X,containerBounds:m});if(o=L,d=cI(P,$,L,R),d.size>0&&(r||C||!R&&j)){const[q,Q]=vm({nodeId:R,dragItems:d,nodeLookup:P});r==null||r(V.sourceEvent,d,q,Q),C==null||C(V.sourceEvent,q,Q),R||j==null||j(V.sourceEvent,Q)}}const z=wE().clickDistance(U).on("start",V=>{const{domNode:P,nodeDragThreshold:T,transform:$,snapGrid:O,snapToGrid:H}=t();m=(P==null?void 0:P.getBoundingClientRect())||null,x=!1,_=!1,N=V.sourceEvent,T===0&&D(V),o=fo(V.sourceEvent,{transform:$,snapGrid:O,snapToGrid:H,containerBounds:m}),h=Rr(V.sourceEvent,m)}).on("drag",V=>{const{autoPanOnNodeDrag:P,transform:T,snapGrid:$,snapToGrid:O,nodeDragThreshold:H,nodeLookup:X}=t(),K=fo(V.sourceEvent,{transform:T,snapGrid:$,snapToGrid:O,containerBounds:m});if(N=V.sourceEvent,(V.sourceEvent.type==="touchmove"&&V.sourceEvent.touches.length>1||R&&!X.has(R))&&(x=!0),!x){if(!f&&P&&p&&(f=!0,Z()),!p){const C=Rr(V.sourceEvent,m),j=C.x-h.x,Y=C.y-h.y;Math.sqrt(j*j+Y*Y)>H&&D(V)}(o.x!==K.xSnapped||o.y!==K.ySnapped)&&d&&p&&(h=Rr(V.sourceEvent,m),B(K))}}).on("end",V=>{if(!p||x){x&&d.size>0&&t().updateNodePositions(d,!1);return}if(f=!1,p=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:P,updateNodePositions:T,onNodeDragStop:$,onSelectionDragStop:O}=t();if(_&&(T(d,!1),_=!1),s||$||!R&&O){const[H,X]=vm({nodeId:R,dragItems:d,nodeLookup:P,dragging:!1});s==null||s(V.sourceEvent,d,H,X),$==null||$(V.sourceEvent,H,X),R||O==null||O(V.sourceEvent,X)}}}).filter(V=>{const P=V.target;return!V.button&&(!k||!h1(P,`.${k}`,M))&&(!E||h1(P,E,M))});y.call(z)}function w(){y==null||y.on(".drag",null)}return{update:S,destroy:w}}function fI(e,t,r){const a=[],s={x:e.x-r,y:e.y-r,width:r*2,height:r*2};for(const o of t.values())ju(s,No(o))>0&&a.push(o);return a}const hI=250;function mI(e,t,r,a){var d,f;let s=[],o=1/0;const c=fI(e,r,t+hI);for(const h of c){const m=[...((d=h.internals.handleBounds)==null?void 0:d.source)??[],...((f=h.internals.handleBounds)==null?void 0:f.target)??[]];for(const p of m){if(a.nodeId===p.nodeId&&a.type===p.type&&a.id===p.id)continue;const{x:y,y:x}=Ka(h,p,p.position,!0),_=Math.sqrt(Math.pow(y-e.x,2)+Math.pow(x-e.y,2));_>t||(_1){const h=a.type==="source"?"target":"source";return s.find(m=>m.type===h)??s[0]}return s[0]}function lN(e,t,r,a,s,o=!1){var h,m,p;const c=a.get(e);if(!c)return null;const d=s==="strict"?(h=c.internals.handleBounds)==null?void 0:h[t]:[...((m=c.internals.handleBounds)==null?void 0:m.source)??[],...((p=c.internals.handleBounds)==null?void 0:p.target)??[]],f=(r?d==null?void 0:d.find(y=>y.id===r):d==null?void 0:d[0])??null;return f&&o?{...f,...Ka(c,f,f.position,!0)}:f}function oN(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function pI(e,t){let r=null;return t?r=!0:e&&!t&&(r=!1),r}const cN=()=>!0;function gI(e,{connectionMode:t,connectionRadius:r,handleId:a,nodeId:s,edgeUpdaterType:o,isTarget:c,domNode:d,nodeLookup:f,lib:h,autoPanOnConnect:m,flowId:p,panBy:y,cancelConnection:x,onConnectStart:_,onConnect:N,onConnectEnd:S,isValidConnection:w=cN,onReconnectEnd:k,updateConnection:E,getTransform:M,getFromHandle:I,autoPanSpeed:R,dragThreshold:U=1,handleDomNode:B}){const Z=ZE(e.target);let D=0,z;const{x:V,y:P}=Rr(e),T=oN(o,B),$=d==null?void 0:d.getBoundingClientRect();let O=!1;if(!$||!T)return;const H=lN(s,T,a,f,t);if(!H)return;let X=Rr(e,$),K=!1,C=null,j=!1,Y=null;function L(){if(!m||!$)return;const[fe,be]=eg(X,$,R);y({x:fe,y:be}),D=requestAnimationFrame(L)}const G={...H,nodeId:s,type:T,position:H.position},q=f.get(s);let J={inProgress:!0,isValid:null,from:Ka(q,G,ze.Left,!0),fromHandle:G,fromPosition:G.position,fromNode:q,to:X,toHandle:null,toPosition:t1[G.position],toNode:null,pointer:X};function W(){O=!0,E(J),_==null||_(e,{nodeId:s,handleId:a,handleType:T})}U===0&&W();function te(fe){if(!O){const{x:st,y:Rt}=Rr(fe),Yt=st-V,Pt=Rt-P;if(!(Yt*Yt+Pt*Pt>U*U))return;W()}if(!I()||!G){ce(fe);return}const be=M();X=Rr(fe,$),z=mI(Bo(X,be,!1,[1,1]),r,f,G),K||(L(),K=!0);const we=uN(fe,{handle:z,connectionMode:t,fromNodeId:s,fromHandleId:a,fromType:c?"target":"source",isValidConnection:w,doc:Z,lib:h,flowId:p,nodeLookup:f});Y=we.handleDomNode,C=we.connection,j=pI(!!z,we.isValid);const Ne=f.get(s),je=Ne?Ka(Ne,G,ze.Left,!0):J.from,$e={...J,from:je,isValid:j,to:we.toHandle&&j?Ws({x:we.toHandle.x,y:we.toHandle.y},be):X,toHandle:we.toHandle,toPosition:j&&we.toHandle?we.toHandle.position:t1[G.position],toNode:we.toHandle?f.get(we.toHandle.nodeId):null,pointer:X};E($e),J=$e}function ce(fe){if(!("touches"in fe&&fe.touches.length>0)){if(O){(z||Y)&&C&&j&&(N==null||N(C));const{inProgress:be,...we}=J,Ne={...we,toPosition:J.toHandle?J.toPosition:null};S==null||S(fe,Ne),o&&(k==null||k(fe,Ne))}x(),cancelAnimationFrame(D),K=!1,j=!1,C=null,Y=null,Z.removeEventListener("mousemove",te),Z.removeEventListener("mouseup",ce),Z.removeEventListener("touchmove",te),Z.removeEventListener("touchend",ce)}}Z.addEventListener("mousemove",te),Z.addEventListener("mouseup",ce),Z.addEventListener("touchmove",te),Z.addEventListener("touchend",ce)}function uN(e,{handle:t,connectionMode:r,fromNodeId:a,fromHandleId:s,fromType:o,doc:c,lib:d,flowId:f,isValidConnection:h=cN,nodeLookup:m}){const p=o==="target",y=t?c.querySelector(`.${d}-flow__handle[data-id="${f}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x,y:_}=Rr(e),N=c.elementFromPoint(x,_),S=N!=null&&N.classList.contains(`${d}-flow__handle`)?N:y,w={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=oN(void 0,S),E=S.getAttribute("data-nodeid"),M=S.getAttribute("data-handleid"),I=S.classList.contains("connectable"),R=S.classList.contains("connectableend");if(!E||!k)return w;const U={source:p?E:a,sourceHandle:p?M:s,target:p?a:E,targetHandle:p?s:M};w.connection=U;const Z=I&&R&&(r===Zs.Strict?p&&k==="source"||!p&&k==="target":E!==a||M!==s);w.isValid=Z&&h(U),w.toHandle=lN(E,k,M,m,r,!0)}return w}const up={onPointerDown:gI,isValid:uN};function bI({domNode:e,panZoom:t,getTransform:r,getViewScale:a}){const s=ir(e);function o({translateExtent:d,width:f,height:h,zoomStep:m=1,pannable:p=!0,zoomable:y=!0,inversePan:x=!1}){const _=E=>{if(E.sourceEvent.type!=="wheel"||!t)return;const M=r(),I=E.sourceEvent.ctrlKey&&So()?10:1,R=-E.sourceEvent.deltaY*(E.sourceEvent.deltaMode===1?.05:E.sourceEvent.deltaMode?1:.002)*m,U=M[2]*Math.pow(2,R*I);t.scaleTo(U)};let N=[0,0];const S=E=>{(E.sourceEvent.type==="mousedown"||E.sourceEvent.type==="touchstart")&&(N=[E.sourceEvent.clientX??E.sourceEvent.touches[0].clientX,E.sourceEvent.clientY??E.sourceEvent.touches[0].clientY])},w=E=>{const M=r();if(E.sourceEvent.type!=="mousemove"&&E.sourceEvent.type!=="touchmove"||!t)return;const I=[E.sourceEvent.clientX??E.sourceEvent.touches[0].clientX,E.sourceEvent.clientY??E.sourceEvent.touches[0].clientY],R=[I[0]-N[0],I[1]-N[1]];N=I;const U=a()*Math.max(M[2],Math.log(M[2]))*(x?-1:1),B={x:M[0]-R[0]*U,y:M[1]-R[1]*U},Z=[[0,0],[f,h]];t.setViewportConstrained({x:B.x,y:B.y,zoom:M[2]},Z,d)},k=IE().on("start",S).on("zoom",p?w:null).on("zoom.wheel",y?_:null);s.call(k,{})}function c(){s.on("zoom",null)}return{update:o,destroy:c,pointer:Cr}}const ed=e=>({x:e.x,y:e.y,zoom:e.k}),_m=({x:e,y:t,zoom:r})=>Qu.translate(e,t).scale(r),Us=(e,t)=>e.target.closest(`.${t}`),dN=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),xI=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,wm=(e,t=0,r=xI,a=()=>{})=>{const s=typeof t=="number"&&t>0;return s||a(),s?e.transition().duration(t).ease(r).on("end",a):e},fN=e=>{const t=e.ctrlKey&&So()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function yI({zoomPanValues:e,noWheelClassName:t,d3Selection:r,d3Zoom:a,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:f,onPanZoomEnd:h}){return m=>{if(Us(m,t))return m.ctrlKey&&m.preventDefault(),!1;m.preventDefault(),m.stopImmediatePropagation();const p=r.property("__zoom").k||1;if(m.ctrlKey&&c){const S=Cr(m),w=fN(m),k=p*Math.pow(2,w);a.scaleTo(r,k,S,m);return}const y=m.deltaMode===1?20:1;let x=s===Pa.Vertical?0:m.deltaX*y,_=s===Pa.Horizontal?0:m.deltaY*y;!So()&&m.shiftKey&&s!==Pa.Vertical&&(x=m.deltaY*y,_=0),a.translateBy(r,-(x/p)*o,-(_/p)*o,{internal:!0});const N=ed(r.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?f==null||f(m,N):(e.isPanScrolling=!0,d==null||d(m,N)),e.panScrollTimeout=setTimeout(()=>{h==null||h(m,N),e.isPanScrolling=!1},150)}}function vI({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:r}){return function(a,s){const o=a.type==="wheel",c=!t&&o&&!a.ctrlKey,d=Us(a,e);if(a.ctrlKey&&o&&d&&a.preventDefault(),c||d)return null;a.preventDefault(),r.call(this,a,s)}}function _I({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:r}){return a=>{var o,c,d;if((o=a.sourceEvent)!=null&&o.internal)return;const s=ed(a.transform);e.mouseButton=((c=a.sourceEvent)==null?void 0:c.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=s,((d=a.sourceEvent)==null?void 0:d.type)==="mousedown"&&t(!0),r&&(r==null||r(a.sourceEvent,s))}}function wI({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:r,onTransformChange:a,onPanZoom:s}){return o=>{var c,d;e.usedRightMouseButton=!!(r&&dN(t,e.mouseButton??0)),(c=o.sourceEvent)!=null&&c.sync||a([o.transform.x,o.transform.y,o.transform.k]),s&&!((d=o.sourceEvent)!=null&&d.internal)&&(s==null||s(o.sourceEvent,ed(o.transform)))}}function EI({zoomPanValues:e,panOnDrag:t,panOnScroll:r,onDraggingChange:a,onPanZoomEnd:s,onPaneContextMenu:o}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(e.isZoomingOrPanning=!1,o&&dN(t,e.mouseButton??0)&&!e.usedRightMouseButton&&c.sourceEvent&&o(c.sourceEvent),e.usedRightMouseButton=!1,a(!1),s)){const f=ed(c.transform);e.prevViewport=f,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(c.sourceEvent,f)},r?150:0)}}}function NI({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:r,panOnDrag:a,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:c,noWheelClassName:d,noPanClassName:f,lib:h,connectionInProgress:m}){return p=>{var S;const y=e||t,x=r&&p.ctrlKey,_=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(Us(p,`${h}-flow__node`)||Us(p,`${h}-flow__edge`)))return!0;if(!a&&!y&&!s&&!o&&!r||c||m&&!_||Us(p,d)&&_||Us(p,f)&&(!_||s&&_&&!e)||!r&&p.ctrlKey&&_)return!1;if(!r&&p.type==="touchstart"&&((S=p.touches)==null?void 0:S.length)>1)return p.preventDefault(),!1;if(!y&&!s&&!x&&_||!a&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(a)&&!a.includes(p.button)&&p.type==="mousedown")return!1;const N=Array.isArray(a)&&a.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||_)&&N}}function SI({domNode:e,minZoom:t,maxZoom:r,translateExtent:a,viewport:s,onPanZoom:o,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:f}){const h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},m=e.getBoundingClientRect();let p=[[0,0],[m.width,m.height]];const y=typeof ResizeObserver<"u"?new ResizeObserver(P=>{const T=P[0];T&&(p=[[0,0],[T.contentRect.width,T.contentRect.height]])}):null;y==null||y.observe(e);const x=IE().extent(()=>p).scaleExtent([t,r]).translateExtent(a),_=ir(e).call(x);M({x:s.x,y:s.y,zoom:Qs(s.zoom,t,r)},[[0,0],[m.width,m.height]],a);const N=_.on("wheel.zoom"),S=_.on("dblclick.zoom");x.wheelDelta(fN);async function w(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).transform(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}function k({noWheelClassName:P,noPanClassName:T,onPaneContextMenu:$,userSelectionActive:O,panOnScroll:H,panOnDrag:X,panOnScrollMode:K,panOnScrollSpeed:C,preventScrolling:j,zoomOnPinch:Y,zoomOnScroll:L,zoomOnDoubleClick:G,zoomActivationKeyPressed:q,lib:Q,onTransformChange:J,connectionInProgress:W,paneClickDistance:te,selectionOnDrag:ce}){O&&!h.isZoomingOrPanning&&E();const fe=H&&!q&&!O;x.clickDistance(ce?1/0:!Or(te)||te<0?0:te);const be=fe?yI({zoomPanValues:h,noWheelClassName:P,d3Selection:_,d3Zoom:x,panOnScrollMode:K,panOnScrollSpeed:C,zoomOnPinch:Y,onPanZoomStart:c,onPanZoom:o,onPanZoomEnd:d}):vI({noWheelClassName:P,preventScrolling:j,d3ZoomHandler:N});_.on("wheel.zoom",be,{passive:!1});const we=_I({zoomPanValues:h,onDraggingChange:f,onPanZoomStart:c});x.on("start",we);const Ne=wI({zoomPanValues:h,panOnDrag:X,onPaneContextMenu:!!$,onPanZoom:o,onTransformChange:J});x.on("zoom",Ne);const je=EI({zoomPanValues:h,panOnDrag:X,panOnScroll:H,onPaneContextMenu:$,onPanZoomEnd:d,onDraggingChange:f});x.on("end",je);const $e=NI({zoomActivationKeyPressed:q,panOnDrag:X,zoomOnScroll:L,panOnScroll:H,zoomOnDoubleClick:G,zoomOnPinch:Y,userSelectionActive:O,noPanClassName:T,noWheelClassName:P,lib:Q,connectionInProgress:W});x.filter($e),G?_.on("dblclick.zoom",S):_.on("dblclick.zoom",null)}function E(){x.on("zoom",null)}async function M(P,T,$){const O=_m(P),H=x==null?void 0:x.constrain()(O,T,$);return H&&await w(H),H}async function I(P,T){const $=_m(P);return await w($,T),$}function R(P){if(_){const T=_m(P),$=_.property("__zoom");($.k!==P.zoom||$.x!==P.x||$.y!==P.y)&&(x==null||x.transform(_,T,null,{sync:!0}))}}function U(){const P=_?zE(_.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function B(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).scaleTo(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}async function Z(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).scaleBy(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}function D(P){x==null||x.scaleExtent(P)}function z(P){x==null||x.translateExtent(P)}function V(P){const T=!Or(P)||P<0?0:P;x==null||x.clickDistance(T)}return{update:k,destroy:E,setViewport:I,setViewportConstrained:M,getViewport:U,scaleTo:B,scaleBy:Z,setScaleExtent:D,setTranslateExtent:z,syncViewport:R,setClickDistance:V}}var Js;(function(e){e.Line="line",e.Handle="handle"})(Js||(Js={}));function kI({width:e,prevWidth:t,height:r,prevHeight:a,affectsX:s,affectsY:o}){const c=e-t,d=r-a,f=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&s&&(f[0]=f[0]*-1),d&&o&&(f[1]=f[1]*-1),f}function m1(e){const t=e.includes("right")||e.includes("left"),r=e.includes("bottom")||e.includes("top"),a=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:r,affectsX:a,affectsY:s}}function aa(e,t){return Math.max(0,t-e)}function sa(e,t){return Math.max(0,e-t)}function cu(e,t,r){return Math.max(0,t-e,e-r)}function p1(e,t){return e?!t:t}function CI(e,t,r,a,s,o,c,d){let{affectsX:f,affectsY:h}=t;const{isHorizontal:m,isVertical:p}=t,y=m&&p,{xSnapped:x,ySnapped:_}=r,{minWidth:N,maxWidth:S,minHeight:w,maxHeight:k}=a,{x:E,y:M,width:I,height:R,aspectRatio:U}=e;let B=Math.floor(m?x-e.pointerX:0),Z=Math.floor(p?_-e.pointerY:0);const D=I+(f?-B:B),z=R+(h?-Z:Z),V=-o[0]*I,P=-o[1]*R;let T=cu(D,N,S),$=cu(z,w,k);if(c){let X=0,K=0;f&&B<0?X=aa(E+B+V,c[0][0]):!f&&B>0&&(X=sa(E+D+V,c[1][0])),h&&Z<0?K=aa(M+Z+P,c[0][1]):!h&&Z>0&&(K=sa(M+z+P,c[1][1])),T=Math.max(T,X),$=Math.max($,K)}if(d){let X=0,K=0;f&&B>0?X=sa(E+B,d[0][0]):!f&&B<0&&(X=aa(E+D,d[1][0])),h&&Z>0?K=sa(M+Z,d[0][1]):!h&&Z<0&&(K=aa(M+z,d[1][1])),T=Math.max(T,X),$=Math.max($,K)}if(s){if(m){const X=cu(D/U,w,k)*U;if(T=Math.max(T,X),c){let K=0;!f&&!h||f&&!h&&y?K=sa(M+P+D/U,c[1][1])*U:K=aa(M+P+(f?B:-B)/U,c[0][1])*U,T=Math.max(T,K)}if(d){let K=0;!f&&!h||f&&!h&&y?K=aa(M+D/U,d[1][1])*U:K=sa(M+(f?B:-B)/U,d[0][1])*U,T=Math.max(T,K)}}if(p){const X=cu(z*U,N,S)/U;if($=Math.max($,X),c){let K=0;!f&&!h||h&&!f&&y?K=sa(E+z*U+V,c[1][0])/U:K=aa(E+(h?Z:-Z)*U+V,c[0][0])/U,$=Math.max($,K)}if(d){let K=0;!f&&!h||h&&!f&&y?K=aa(E+z*U,d[1][0])/U:K=sa(E+(h?Z:-Z)*U,d[0][0])/U,$=Math.max($,K)}}}Z=Z+(Z<0?$:-$),B=B+(B<0?T:-T),s&&(y?D>z*U?Z=(p1(f,h)?-B:B)/U:B=(p1(f,h)?-Z:Z)*U:m?(Z=B/U,h=f):(B=Z*U,f=h));const O=f?E+B:E,H=h?M+Z:M;return{width:I+(f?-B:B),height:R+(h?-Z:Z),x:o[0]*B*(f?-1:1)+O,y:o[1]*Z*(h?-1:1)+H}}const hN={width:0,height:0,x:0,y:0},TI={...hN,pointerX:0,pointerY:0,aspectRatio:1};function AI(e,t,r){const a=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,c=e.measured.height??0,d=r[0]*o,f=r[1]*c;return[[a-d,s-f],[a+o-d,s+c-f]]}function MI({domNode:e,nodeId:t,getStoreItems:r,onChange:a,onEnd:s}){const o=ir(e);let c={controlDirection:m1("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:h,boundaries:m,keepAspectRatio:p,resizeDirection:y,onResizeStart:x,onResize:_,onResizeEnd:N,shouldResize:S}){let w={...hN},k={...TI};c={boundaries:m,resizeDirection:y,keepAspectRatio:p,controlDirection:m1(h)};let E,M=null,I=[],R,U,B,Z=!1;const D=wE().on("start",z=>{const{nodeLookup:V,transform:P,snapGrid:T,snapToGrid:$,nodeOrigin:O,paneDomNode:H}=r();if(E=V.get(t),!E)return;M=(H==null?void 0:H.getBoundingClientRect())??null;const{xSnapped:X,ySnapped:K}=fo(z.sourceEvent,{transform:P,snapGrid:T,snapToGrid:$,containerBounds:M});w={width:E.measured.width??0,height:E.measured.height??0,x:E.position.x??0,y:E.position.y??0},k={...w,pointerX:X,pointerY:K,aspectRatio:w.width/w.height},R=void 0,U=Xa(E.extent)?E.extent:void 0,E.parentId&&(E.extent==="parent"||E.expandParent)&&(R=V.get(E.parentId)),R&&E.extent==="parent"&&(U=[[0,0],[R.measured.width,R.measured.height]]),I=[],B=void 0;for(const[C,j]of V)if(j.parentId===t&&(I.push({id:C,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const Y=AI(j,E,j.origin??O);B?B=[[Math.min(Y[0][0],B[0][0]),Math.min(Y[0][1],B[0][1])],[Math.max(Y[1][0],B[1][0]),Math.max(Y[1][1],B[1][1])]]:B=Y}x==null||x(z,{...w})}).on("drag",z=>{const{transform:V,snapGrid:P,snapToGrid:T,nodeOrigin:$}=r(),O=fo(z.sourceEvent,{transform:V,snapGrid:P,snapToGrid:T,containerBounds:M}),H=[];if(!E)return;const{x:X,y:K,width:C,height:j}=w,Y={},L=E.origin??$,{width:G,height:q,x:Q,y:J}=CI(k,c.controlDirection,O,c.boundaries,c.keepAspectRatio,L,U,B),W=G!==C,te=q!==j,ce=Q!==X&&W,fe=J!==K&&te;if(!ce&&!fe&&!W&&!te)return;if((ce||fe||L[0]===1||L[1]===1)&&(Y.x=ce?Q:w.x,Y.y=fe?J:w.y,w.x=Y.x,w.y=Y.y,I.length>0)){const je=Q-X,$e=J-K;for(const st of I)st.position={x:st.position.x-je+L[0]*(G-C),y:st.position.y-$e+L[1]*(q-j)},H.push(st)}if((W||te)&&(Y.width=W&&(!c.resizeDirection||c.resizeDirection==="horizontal")?G:w.width,Y.height=te&&(!c.resizeDirection||c.resizeDirection==="vertical")?q:w.height,w.width=Y.width,w.height=Y.height),R&&E.expandParent){const je=L[0]*(Y.width??0);Y.x&&Y.x{Z&&(N==null||N(z,{...w}),s==null||s({...w}),Z=!1)});o.call(D)}function f(){o.on(".drag",null)}return{update:d,destroy:f}}var Em={exports:{}},Nm={},Sm={exports:{}},km={};/** +`:h!=="text"?UD(S,h):S.replace(/&/g,"&").replace(//g,">");let k="",E="";return N.removed?k=String(p++):(N.added||(k=String(p++)),E=String(y++)),{highlighted:w,added:!!N.added,removed:!!N.removed,leftNo:k,rightNo:E}})),_=()=>{vp(s),d(!0),setTimeout(()=>d(!1),2e3),o==null||o()};return g.jsxs("div",{className:"rounded-md border border-[#2a2a2a] overflow-hidden",children:[g.jsxs("div",{className:"flex items-stretch",children:[g.jsxs("span",{className:"relative flex items-center text-[13px] text-[#999] font-mono px-4 py-2 border-r border-[#2a2a2a] break-all",children:[e,":",f,g.jsx("span",{className:"absolute top-0 inset-x-0 h-0.5 bg-white/60 rounded-full"})]}),g.jsx("div",{className:"flex-1 border-b border-[#2a2a2a]"}),g.jsx("button",{onClick:_,className:"px-3 py-2 text-[#555] hover:text-white transition-colors flex-shrink-0 border-b border-[#2a2a2a]","aria-label":"Copy fixed code",children:c?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})})]}),g.jsx("div",{className:"overflow-auto max-h-[400px]",children:g.jsx("table",{className:"w-full border-collapse font-mono text-[12px] leading-[22px] [font-variant-ligatures:none]",children:g.jsx("tbody",{children:x.map((N,S)=>g.jsxs("tr",{className:N.added?"bg-blue-500/[0.12]":N.removed?"bg-red-500/[0.12]":"",children:[g.jsx("td",{className:"select-none w-[1px] whitespace-nowrap pl-4 pr-1.5 text-right text-[#555] align-top text-[12px] leading-[22px]",children:N.leftNo}),g.jsx("td",{className:"select-none w-[1px] whitespace-nowrap pl-1.5 pr-4 text-right text-[#555] align-top text-[12px] leading-[22px] border-r border-[#2a2a2a]",children:N.rightNo}),g.jsx("td",{className:"pl-4 pr-4 whitespace-pre",dangerouslySetInnerHTML:{__html:N.highlighted}})]},S))})})})]})}const $D=/^```([^\n`]*)\r?\n([\s\S]*?)\r?\n?```$/;function sE(e){if(!e)return{code:""};const t=$D.exec(e.trim());if(!t)return{code:e};const r=t[1].trim();return{language:(r?r.split(/\s+/)[0]:void 0)||void 0,code:t[2]}}function qD({description:e,scriptCode:t,onCopy:r}){const[a,s]=ee.useState(!1);if(!e&&!t)return null;const{language:o,code:c}=sE(t),d=iE(c,o),f=()=>{c&&(vp(c),s(!0),setTimeout(()=>s(!1),2e3),r==null||r())};return g.jsxs("section",{children:[g.jsx("h2",{className:"text-xl font-semibold text-white mb-3",children:"Proof of Concept"}),g.jsxs("div",{className:"space-y-4",children:[e&&g.jsx("div",{className:"prose-markdown",children:g.jsx(Bp,{remarkPlugins:[qp],rehypePlugins:[Pp],components:Fp,children:e})}),c&&g.jsxs("div",{className:"group/poc relative rounded-md border border-[#2a2a2a] overflow-hidden",children:[g.jsxs("div",{className:"flex items-stretch",children:[g.jsxs("span",{className:"relative flex items-center text-[13px] text-[#999] font-mono px-4 py-2 border-r border-[#2a2a2a]",children:["PoC Script",g.jsx("span",{className:"absolute top-0 inset-x-0 h-0.5 bg-white/60 rounded-full"})]}),g.jsx("div",{className:"flex-1 border-b border-[#2a2a2a]"}),g.jsx("button",{onClick:f,className:"px-3 py-2 text-[#555] hover:text-white transition-colors flex-shrink-0 border-b border-[#2a2a2a]","aria-label":"Copy PoC code",children:a?g.jsx(Gs,{className:"w-3.5 h-3.5 text-emerald-400"}):g.jsx(mo,{className:"w-3.5 h-3.5"})})]}),g.jsx("div",{className:"overflow-auto max-h-[400px] px-4 py-3",children:g.jsx("pre",{className:"font-mono text-[12px] leading-[22px] whitespace-pre [font-variant-ligatures:none]",children:g.jsx("code",{dangerouslySetInnerHTML:{__html:d}})})})]})]})]})}function lE(e){const t=e.match(/(?:https?:\/\/)?(?:www\.)?github\.com\/([^\s/]+\/[^\s/]+)/);if(t){const s=t[1].replace(/\.git$/,"");return{display:s,href:`https://github.com/${s}`,provider:"github"}}const r=e.match(/(?:https?:\/\/)?(?:www\.)?gitlab\.com\/([^\s/]+\/[^\s/]+)/);if(r){const s=r[1].replace(/\.git$/,"");return{display:s,href:`https://gitlab.com/${s}`,provider:"gitlab"}}const a=e.match(/(?:https?:\/\/)?(?:www\.)?bitbucket\.org\/([^\s/]+\/[^\s/]+)/);if(a){const s=a[1].replace(/\.git$/,"");return{display:s,href:`https://bitbucket.org/${s}`,provider:"bitbucket"}}return/^https?:\/\//i.test(e)?{display:e.replace(/^https?:\/\/(www\.)?/,""),href:e,provider:null}:/^[a-zA-Z0-9][\w.-]*\.[a-zA-Z]{2,}/.test(e)?{display:e,href:`https://${e}`,provider:null}:{display:e,href:null,provider:null}}function bo(e,t){return e?lE(e).display.replace(/\/$/,""):t||"Untitled pentest"}function PD({className:e}){return g.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,"aria-hidden":"true",children:g.jsx("path",{d:"M2.65 3a.72.72 0 0 0-.72.83l2.86 17.39a.98.98 0 0 0 .96.82h13.72a.72.72 0 0 0 .72-.6l2.86-17.4A.72.72 0 0 0 22.3 3H2.65Zm12.1 12.53H9.3L8.06 8.9h7.8l-1.11 6.63Z"})})}function FD({provider:e,className:t}){const r=t??"w-4 h-4";return e==="gitlab"?g.jsx(EC,{className:`${r} text-orange-400`}):e==="bitbucket"?g.jsx(PD,{className:`${r} text-blue-400`}):g.jsx(_C,{className:`${r} text-white`})}const GD={attack_vector:{N:"Remotely exploitable",A:"Adjacent network",L:"Local access required",P:"Physical access required"},attack_complexity:{L:"Easy to exploit",H:"Requires specific conditions"},privileges_required:{N:"No authentication needed",L:"Low privileges needed",H:"High privileges needed"},user_interaction:{N:"No user action required",R:"Requires user action",P:"Passive user role",A:"Active user role"},scope:{U:"Impact stays contained",C:"Can spread to other systems"},confidentiality:{N:"No data exposure",L:"Partial data exposure",H:"Full data exposure"},integrity:{N:"No data modification",L:"Limited modification",H:"Full data modification"},availability:{N:"No service disruption",L:"Limited disruption",H:"Full service disruption"}},VD={attack_vector:{N:"high",A:"medium",L:"low",P:"low"},attack_complexity:{L:"high",H:"low"},privileges_required:{N:"high",L:"medium",H:"low"},user_interaction:{N:"high",R:"low",P:"medium",A:"low"},scope:{C:"high",U:"low"},confidentiality:{H:"high",L:"medium",N:"low"},integrity:{H:"high",L:"medium",N:"low"},availability:{H:"high",L:"medium",N:"low"}},YD={high:"bg-red-500/15 text-red-400 border-red-500/25",medium:"bg-yellow-500/15 text-yellow-400 border-yellow-500/25",low:"bg-[#222] text-[#666] border-[#333]"},XD=[{label:"Exploitability",keys:["attack_vector","attack_complexity","privileges_required","user_interaction"]},{label:"Impact",keys:["scope","confidentiality","integrity","availability"]}];function KD(e,t,r,a,s){const o=e.replace(/\.git$/,"").replace(/\/+$/,""),c=a.split("/").map(encodeURIComponent).join("/"),d=r.split("/").map(encodeURIComponent).join("/");return t==="github"?`${o}/blob/${d}/${c}#L${s}`:t==="gitlab"?`${o}/-/blob/${d}/${c}#L${s}`:null}function ZD({vulnerability:e,statusSlot:t,slackThreadUrl:r}){var R;const{severity:a,cvss:s,cve:o,cwe:c,fix_effort:d,created_at:f,target:h,endpoint:m,method:p,code_locations:y,cvss_breakdown:x,location_meta:_}=e,[N,S]=ee.useState(!0),w=y==null?void 0:y.filter(U=>U.fix_before&&U.fix_after),k=w&&w.length>0,E=h?lE(h):null,M=!!(h||m||p||k),I=x&&Object.values(x).some(U=>U!=null);return g.jsxs("aside",{className:"lg:sticky lg:top-6 lg:max-h-[calc(100vh-3rem)] lg:overflow-y-auto",children:[g.jsx("div",{className:"pb-4",children:g.jsxs("div",{className:"space-y-3",children:[g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Severity"}),g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx("div",{className:`w-2 h-2 rounded-full ${yp(a)}`,"aria-hidden":"true"}),g.jsx("span",{className:"text-sm font-medium capitalize text-white",children:a})]})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CVSS Score"}),g.jsx("span",{className:"text-sm font-semibold tabular-nums text-white",children:s!==null?s:"N/A"})]}),o&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CVE"}),g.jsx("span",{className:"text-sm text-white font-mono",children:o})]}),c&&c.length>0&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"CWE"}),g.jsx("span",{className:"text-xs text-white font-mono truncate max-w-[80%] text-right",title:c.join(" · "),children:c.join(" · ")})]}),d&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Fix Effort"}),g.jsx("span",{className:`inline-flex items-center px-2 py-0.5 text-[11px] font-medium rounded-full border ${((R=ET[d])==null?void 0:R.color)??"text-[#666]"}`,children:d.charAt(0).toUpperCase()+d.slice(1)})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Discovered"}),g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx(R_,{className:"w-3 h-3 text-[#444]","aria-hidden":"true"}),g.jsx("span",{className:"text-sm text-white",children:Hm(f)})]})]}),g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Status"}),t]})]})}),M&&g.jsxs("div",{className:"border-t border-[#191919] pt-4 pb-4",children:[g.jsx("p",{className:"text-xs font-medium text-[#aaa] mb-2.5",children:"Asset"}),g.jsxs("div",{className:"space-y-2.5",children:[h&&E&&g.jsxs("div",{className:"flex items-center gap-1.5",children:[E.provider?g.jsx("span",{className:"flex-shrink-0 [&_svg]:w-3.5 [&_svg]:h-3.5","aria-hidden":"true",children:g.jsx(FD,{provider:E.provider})}):g.jsx(j_,{className:"w-3.5 h-3.5 text-[#555] flex-shrink-0","aria-hidden":"true"}),E.href?g.jsx("a",{href:E.href,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-white hover:text-[#ccc] break-words min-w-0 transition-colors",children:E.display}):g.jsx("span",{className:"text-sm text-white break-words min-w-0",children:E.display})]}),m&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Endpoint"}),g.jsx("span",{className:"text-xs text-white font-mono truncate max-w-[75%] text-right",children:m})]}),p&&g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsx("span",{className:"text-xs text-[#aaa]",children:"Method"}),g.jsx("span",{className:"text-xs text-white font-mono",children:p})]}),k&&g.jsxs("div",{children:[g.jsx("span",{className:"text-xs text-[#aaa] mb-1.5 block",children:"Locations"}),g.jsx("div",{className:"space-y-0.5",children:w.map((U,B)=>{const Z=`${U.file}:${U.start_line}`,D=_?KD(_.repo_url,_.provider,_.branch,U.file,U.start_line):null;return D?g.jsx("a",{href:D,target:"_blank",rel:"noopener noreferrer",className:"text-[13px] text-[#888] hover:text-white font-mono break-all transition-colors block",children:Z},`loc-${B}`):g.jsx("span",{className:"text-[13px] text-[#888] font-mono break-all block",children:Z},`loc-${B}`)})})]})]})]}),I&&g.jsxs("div",{className:"border-t border-[#191919] pt-4",children:[g.jsxs("button",{onClick:()=>S(!N),className:"flex items-center justify-between w-full mb-2.5 group","aria-expanded":N,children:[g.jsx("span",{className:"text-xs font-medium text-[#aaa]",children:"Risk Assessment"}),g.jsx(ho,{className:`w-3.5 h-3.5 text-[#555] group-hover:text-white transition-transform ${N?"":"-rotate-90"}`,"aria-hidden":"true"})]}),g.jsx("div",{className:`space-y-3 ${N?"":"hidden"}`,children:XD.map(U=>{const B=U.keys.filter(Z=>x[Z]!=null);return B.length===0?null:g.jsxs("div",{children:[g.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[g.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[#444] font-medium",children:U.label}),g.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[#444] font-medium mr-2",children:"Risk"})]}),g.jsx("div",{className:"space-y-1",children:B.map(Z=>{var P,T;const D=x[Z],z=D?((P=VD[Z])==null?void 0:P[D])??"low":"low",V=D?((T=GD[Z])==null?void 0:T[D])??D:"N/A";return g.jsxs("div",{className:"flex items-center justify-between py-0.5",children:[g.jsx("span",{className:"text-[12px] text-[#aaa]",children:V}),g.jsx("span",{className:`text-[10px] font-medium px-1.5 py-0.5 rounded border ${YD[z]}`,children:z})]},Z)})})]},U.label)})})]})]})}function zv(e){return e?Math.floor((Date.now()-new Date(e).getTime())/1e3)<604800?` ${Hm(e)}`:` on ${Hm(e)}`:""}const QD={open:null,in_progress:{icon:R_,label:"Marked as In Progress",iconColor:"text-blue-400"},snoozed:{icon:Ik,label:"Snoozed",iconColor:"text-purple-400"},fixed:{icon:O_,label:"Marked as Fixed",iconColor:"text-emerald-400"},ignored:{icon:C_,label:"Marked as Ignored",iconColor:"text-[#888]"}},WD=[{label:"Auto-fix & open a PR",slug:"autofix",icon:Bm,requiresCode:!0},{label:"Sync to Jira / Linear",slug:"integrations",icon:bC}];function JD({vulnerability:e}){const t=wT[e.status],r=e.code_locations&&e.code_locations.length>0,a=r||e.remediation_steps,s=!!(e.evidence||e.assumptions||e.poc_description||e.poc_script_code),[o,c]=ee.useState("fix"),f=[{id:"fix",label:"Fix",show:!!a},{id:"reproduction",label:"Reproduction",show:s}].filter(h=>h.show);return g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[g.jsxs("div",{className:"min-w-0 flex-1",children:[g.jsxs("div",{className:"mb-2",children:[e.display_number&&g.jsx("span",{className:"text-xs font-mono text-[#555] block mb-1",children:_A(e.display_number)}),g.jsx("h1",{className:"text-2xl font-semibold text-white",children:e.title})]}),g.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[g.jsx("span",{className:`inline-flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded-full border ${t.color}`,children:t.label}),g.jsxs("div",{className:`inline-flex items-center gap-1.5 px-3 py-1 text-sm font-semibold rounded-full border ${I_[e.severity]}`,title:Zc(e)?`Adjusted from ${e.original_severity}`:void 0,children:[g.jsx("div",{className:`w-2 h-2 rounded-full ${yp(e.severity)}`}),g.jsxs("span",{className:"capitalize",children:[e.severity,!Zc(e)&&e.cvss?` ${e.cvss}`:""]}),Zc(e)&&g.jsx(Vs,{className:"w-3 h-3 opacity-70","aria-hidden":"true"})]}),e.cve&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"text-[#333]",children:"·"}),g.jsx("span",{className:"text-sm text-[#666] font-mono",children:e.cve})]})]})]}),g.jsx("div",{className:"flex flex-shrink-0 flex-wrap items-center gap-2",children:WD.filter(h=>!h.requiresCode||r).map(h=>{const m=h.icon;return g.jsxs("a",{href:fa($u,h.slug),target:"_blank",rel:"noopener noreferrer",onClick:()=>Dr(h.slug,"finding_detail"),className:"inline-flex items-center gap-1.5 rounded-lg bg-white px-3 py-1.5 text-xs font-semibold text-black transition-opacity hover:opacity-90",children:[g.jsx(m,{className:"h-3.5 w-3.5","aria-hidden":"true"}),h.label]},h.slug)})})]}),e.status!=="open"&&(()=>{const h=QD[e.status];if(!h)return null;const m=h.icon;return g.jsxs("div",{className:"rounded-lg px-4 py-3.5 flex gap-3",style:{border:"1px solid rgba(255,255,255,0.08)"},children:[g.jsx(m,{className:`w-5 h-5 flex-shrink-0 mt-0.5 ${h.iconColor}`,"aria-hidden":"true"}),g.jsxs("div",{className:"min-w-0",children:[g.jsxs("p",{className:"text-sm font-semibold text-white",children:[h.label,zv(e.status_changed_at)]}),e.status_note&&g.jsxs("p",{className:"text-sm text-[#666] italic mt-1",children:["“",e.status_note,"”"]})]})]})})(),Zc(e)&&g.jsxs("div",{className:"rounded-lg px-4 py-3.5 flex gap-3",style:{border:"1px solid rgba(255,255,255,0.08)"},children:[g.jsx(Vs,{className:"w-5 h-5 flex-shrink-0 mt-0.5 text-orange-400","aria-hidden":"true"}),g.jsxs("div",{className:"min-w-0",children:[g.jsxs("p",{className:"text-sm font-semibold text-white",children:["Severity changed manually from"," ",g.jsx("span",{className:"capitalize",children:e.original_severity}),e.cvss!=null?` (${e.cvss})`:""," to"," ",g.jsx("span",{className:"capitalize",children:e.severity}),zv(e.severity_changed_at)]}),e.severity_override_reason&&g.jsxs("p",{className:"text-sm text-[#666] italic mt-1",children:["“",e.severity_override_reason,"”"]})]})]}),g.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_340px] gap-8",children:[g.jsxs("div",{className:"min-w-0",children:[g.jsxs("div",{className:"space-y-8",children:[g.jsx(oa,{title:"TL;DR",content:e.description}),e.impact&&g.jsx(oa,{title:"Impact",content:e.impact}),e.technical_analysis&&g.jsx(oa,{title:"Technical Details",content:e.technical_analysis})]}),f.length>0&&g.jsxs("div",{className:"mt-10",children:[g.jsx("div",{className:"border-b border-[#2a2a2a]",children:g.jsx("nav",{className:"flex gap-6","aria-label":"Tabs",children:f.map(h=>g.jsxs("button",{onClick:()=>c(h.id),className:`relative min-w-[80px] text-center pb-3 text-[16px] font-semibold transition-colors ${o===h.id?"text-white":"text-[#666] hover:text-white"}`,"aria-current":o===h.id?"page":void 0,children:[h.label,o===h.id&&g.jsx("span",{className:"absolute bottom-0 inset-x-0 h-0.5 bg-white rounded-full"})]},h.id))})}),a&&g.jsxs("div",{className:`pt-6 space-y-6 ${o==="fix"?"animate-tab-in":"hidden"}`,children:[e.remediation_steps&&g.jsx(oa,{title:"How do I fix it?",content:e.remediation_steps}),r&&e.code_locations.filter(h=>h.fix_before&&h.fix_after).map((h,m)=>g.jsx(HD,{file:h.file,startLine:h.start_line,endLine:h.end_line,before:h.fix_before,after:h.fix_after},`fix-${m}`))]}),s&&g.jsxs("div",{className:`pt-6 space-y-8 ${o==="reproduction"?"animate-tab-in":"hidden"}`,children:[e.assumptions&&g.jsx(oa,{title:"Assumptions",content:e.assumptions}),e.evidence&&g.jsx(oa,{title:"Evidence",content:e.evidence}),g.jsx(qD,{description:e.poc_description,scriptCode:e.poc_script_code})]})]})]}),g.jsx("div",{className:"lg:border-l lg:border-[#2a2a2a] lg:pl-6",children:g.jsx(ZD,{vulnerability:e,statusSlot:g.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full border ${t.color}`,children:[g.jsx("div",{className:`w-1.5 h-1.5 rounded-full ${t.dotColor}`}),t.label]})})})]})]})}const Iv=[{key:"critical",label:"critical",dotClass:"bg-red-500",textClass:"text-red-500"},{key:"high",label:"high",dotClass:"bg-orange-500",textClass:"text-orange-500"},{key:"medium",label:"medium",dotClass:"bg-yellow-500",textClass:"text-yellow-500"},{key:"low",label:"low",dotClass:"bg-blue-500",textClass:"text-blue-500"}];function ej({findings:e,className:t,unit:r="issues",trailing:a}){return e.total<=0?null:g.jsxs("div",{className:Mr("space-y-3",t),children:[g.jsxs("div",{className:"flex flex-wrap items-center gap-x-8 gap-y-3",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("span",{className:"text-2xl font-semibold text-white tabular-nums",children:e.total}),g.jsx("span",{className:"text-sm text-[#666]",children:r})]}),g.jsx("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:Iv.map(({key:s,label:o,dotClass:c,textClass:d})=>{const f=e[s];return f<=0?null:g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx("div",{className:Mr("w-2 h-2 rounded-full",c),"aria-hidden":"true"}),g.jsx("span",{className:Mr("text-sm tabular-nums",d),children:f}),g.jsx("span",{className:"text-xs text-[#555]",children:o})]},s)})}),a?g.jsx("div",{className:"flex items-center gap-2",children:a}):null]}),g.jsx("div",{className:"h-1.5 rounded-full bg-[#222] overflow-hidden flex",children:Iv.map(({key:s,dotClass:o})=>{const c=e[s];return c<=0?null:g.jsx("div",{className:Mr("h-full",o),style:{width:`${c/e.total*100}%`}},s)})})]})}function ln(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,a;r{}};function Yu(){for(var e=0,t=arguments.length,r={},a;e=0&&(a=r.slice(s+1),r=r.slice(0,s)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:a}})}pu.prototype=Yu.prototype={constructor:pu,on:function(e,t){var r=this._,a=nj(e+"",r),s,o=-1,c=a.length;if(arguments.length<2){for(;++o0)for(var r=new Array(s),a=0,s,o;a=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Uv.hasOwnProperty(t)?{space:Uv[t],local:e}:e}function ij(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Wm&&t.documentElement.namespaceURI===Wm?t.createElement(e):t.createElementNS(r,e)}}function aj(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function oE(e){var t=Xu(e);return(t.local?aj:ij)(t)}function sj(){}function Gp(e){return e==null?sj:function(){return this.querySelector(e)}}function lj(e){typeof e!="function"&&(e=Gp(e));for(var t=this._groups,r=t.length,a=new Array(r),s=0;s=E&&(E=k+1);!(I=S[E])&&++E<_;);M._next=I||null}}return c=new sr(c,a),c._enter=d,c._exit=f,c}function Cj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Tj(){return new sr(this._exit||this._groups.map(fE),this._parents)}function Aj(e,t,r){var a=this.enter(),s=this,o=this.exit();return typeof e=="function"?(a=e(a),a&&(a=a.selection())):a=a.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),r==null?o.remove():r(o),a&&s?a.merge(s).order():s}function Mj(e){for(var t=e.selection?e.selection():e,r=this._groups,a=t._groups,s=r.length,o=a.length,c=Math.min(s,o),d=new Array(s),f=0;f=0;)(c=a[s])&&(o&&c.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(c,o),o=c);return this}function Rj(e){e||(e=Dj);function t(p,y){return p&&y?e(p.__data__,y.__data__):!p-!y}for(var r=this._groups,a=r.length,s=new Array(a),o=0;ot?1:e>=t?0:NaN}function jj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Lj(){return Array.from(this)}function zj(){for(var e=this._groups,t=0,r=e.length;t1?this.each((t==null?Yj:typeof t=="function"?Kj:Xj)(e,t,r??"")):Xs(this.node(),e)}function Xs(e,t){return e.style.getPropertyValue(t)||hE(e).getComputedStyle(e,null).getPropertyValue(t)}function Qj(e){return function(){delete this[e]}}function Wj(e,t){return function(){this[e]=t}}function Jj(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function eL(e,t){return arguments.length>1?this.each((t==null?Qj:typeof t=="function"?Jj:Wj)(e,t)):this.node()[e]}function mE(e){return e.trim().split(/^|\s+/)}function Vp(e){return e.classList||new pE(e)}function pE(e){this._node=e,this._names=mE(e.getAttribute("class")||"")}pE.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function gE(e,t){for(var r=Vp(e),a=-1,s=t.length;++a=0&&(r=t.slice(a+1),t=t.slice(0,a)),{type:t,name:r}})}function TL(e){return function(){var t=this.__on;if(t){for(var r=0,a=-1,s=t.length,o;r()=>e;function Jm(e,{sourceEvent:t,subject:r,target:a,identifier:s,active:o,x:c,y:d,dx:f,dy:h,dispatch:m}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:f,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:m}})}Jm.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function BL(e){return!e.ctrlKey&&!e.button}function UL(){return this.parentNode}function HL(e,t){return t??{x:e.x,y:e.y}}function $L(){return navigator.maxTouchPoints||"ontouchstart"in this}function wE(){var e=BL,t=UL,r=HL,a=$L,s={},o=Yu("start","drag","end"),c=0,d,f,h,m,p=0;function y(M){M.on("mousedown.drag",x).filter(a).on("touchstart.drag",S).on("touchmove.drag",w,IL).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(M,I){if(!(m||!e.call(this,M,I))){var R=E(this,t.call(this,M,I),M,I,"mouse");R&&(ir(M.view).on("mousemove.drag",_,xo).on("mouseup.drag",N,xo),vE(M.view),gm(M),h=!1,d=M.clientX,f=M.clientY,R("start",M))}}function _(M){if(Ps(M),!h){var I=M.clientX-d,R=M.clientY-f;h=I*I+R*R>p}s.mouse("drag",M)}function N(M){ir(M.view).on("mousemove.drag mouseup.drag",null),_E(M.view,h),Ps(M),s.mouse("end",M)}function S(M,I){if(e.call(this,M,I)){var R=M.changedTouches,U=t.call(this,M,I),B=R.length,Z,D;for(Z=0;Z>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?iu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?iu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=PL.exec(e))?new Gn(t[1],t[2],t[3],1):(t=FL.exec(e))?new Gn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=GL.exec(e))?iu(t[1],t[2],t[3],t[4]):(t=VL.exec(e))?iu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=YL.exec(e))?Vv(t[1],t[2]/100,t[3]/100,1):(t=XL.exec(e))?Vv(t[1],t[2]/100,t[3]/100,t[4]):Hv.hasOwnProperty(e)?Pv(Hv[e]):e==="transparent"?new Gn(NaN,NaN,NaN,0):null}function Pv(e){return new Gn(e>>16&255,e>>8&255,e&255,1)}function iu(e,t,r,a){return a<=0&&(e=t=r=NaN),new Gn(e,t,r,a)}function QL(e){return e instanceof jo||(e=Ga(e)),e?(e=e.rgb(),new Gn(e.r,e.g,e.b,e.opacity)):new Gn}function ep(e,t,r,a){return arguments.length===1?QL(e):new Gn(e,t,r,a??1)}function Gn(e,t,r,a){this.r=+e,this.g=+t,this.b=+r,this.opacity=+a}Yp(Gn,ep,EE(jo,{brighter(e){return e=e==null?ku:Math.pow(ku,e),new Gn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?yo:Math.pow(yo,e),new Gn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Gn(qa(this.r),qa(this.g),qa(this.b),Cu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fv,formatHex:Fv,formatHex8:WL,formatRgb:Gv,toString:Gv}));function Fv(){return`#${Ha(this.r)}${Ha(this.g)}${Ha(this.b)}`}function WL(){return`#${Ha(this.r)}${Ha(this.g)}${Ha(this.b)}${Ha((isNaN(this.opacity)?1:this.opacity)*255)}`}function Gv(){const e=Cu(this.opacity);return`${e===1?"rgb(":"rgba("}${qa(this.r)}, ${qa(this.g)}, ${qa(this.b)}${e===1?")":`, ${e})`}`}function Cu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function qa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ha(e){return e=qa(e),(e<16?"0":"")+e.toString(16)}function Vv(e,t,r,a){return a<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Ar(e,t,r,a)}function NE(e){if(e instanceof Ar)return new Ar(e.h,e.s,e.l,e.opacity);if(e instanceof jo||(e=Ga(e)),!e)return new Ar;if(e instanceof Ar)return e;e=e.rgb();var t=e.r/255,r=e.g/255,a=e.b/255,s=Math.min(t,r,a),o=Math.max(t,r,a),c=NaN,d=o-s,f=(o+s)/2;return d?(t===o?c=(r-a)/d+(r0&&f<1?0:c,new Ar(c,d,f,e.opacity)}function JL(e,t,r,a){return arguments.length===1?NE(e):new Ar(e,t,r,a??1)}function Ar(e,t,r,a){this.h=+e,this.s=+t,this.l=+r,this.opacity=+a}Yp(Ar,JL,EE(jo,{brighter(e){return e=e==null?ku:Math.pow(ku,e),new Ar(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?yo:Math.pow(yo,e),new Ar(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,a=r+(r<.5?r:1-r)*t,s=2*r-a;return new Gn(bm(e>=240?e-240:e+120,s,a),bm(e,s,a),bm(e<120?e+240:e-120,s,a),this.opacity)},clamp(){return new Ar(Yv(this.h),au(this.s),au(this.l),Cu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Cu(this.opacity);return`${e===1?"hsl(":"hsla("}${Yv(this.h)}, ${au(this.s)*100}%, ${au(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Yv(e){return e=(e||0)%360,e<0?e+360:e}function au(e){return Math.max(0,Math.min(1,e||0))}function bm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Xp=e=>()=>e;function e6(e,t){return function(r){return e+r*t}}function t6(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(a){return Math.pow(e+a*t,r)}}function n6(e){return(e=+e)==1?SE:function(t,r){return r-t?t6(t,r,e):Xp(isNaN(t)?r:t)}}function SE(e,t){var r=t-e;return r?e6(e,r):Xp(isNaN(e)?t:e)}const Tu=(function e(t){var r=n6(t);function a(s,o){var c=r((s=ep(s)).r,(o=ep(o)).r),d=r(s.g,o.g),f=r(s.b,o.b),h=SE(s.opacity,o.opacity);return function(m){return s.r=c(m),s.g=d(m),s.b=f(m),s.opacity=h(m),s+""}}return a.gamma=e,a})(1);function r6(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,a=t.slice(),s;return function(o){for(s=0;sr&&(o=t.slice(r,o),d[c]?d[c]+=o:d[++c]=o),(a=a[0])===(s=s[0])?d[c]?d[c]+=s:d[++c]=s:(d[++c]=null,f.push({i:c,x:Vr(a,s)})),r=xm.lastIndex;return r180?m+=360:m-h>180&&(h+=360),y.push({i:p.push(s(p)+"rotate(",null,a)-2,x:Vr(h,m)})):m&&p.push(s(p)+"rotate("+m+a)}function d(h,m,p,y){h!==m?y.push({i:p.push(s(p)+"skewX(",null,a)-2,x:Vr(h,m)}):m&&p.push(s(p)+"skewX("+m+a)}function f(h,m,p,y,x,_){if(h!==p||m!==y){var N=x.push(s(x)+"scale(",null,",",null,")");_.push({i:N-4,x:Vr(h,p)},{i:N-2,x:Vr(m,y)})}else(p!==1||y!==1)&&x.push(s(x)+"scale("+p+","+y+")")}return function(h,m){var p=[],y=[];return h=e(h),m=e(m),o(h.translateX,h.translateY,m.translateX,m.translateY,p,y),c(h.rotate,m.rotate,p,y),d(h.skewX,m.skewX,p,y),f(h.scaleX,h.scaleY,m.scaleX,m.scaleY,p,y),h=m=null,function(x){for(var _=-1,N=y.length,S;++_=0&&e._call.call(void 0,t),e=e._next;--Ks}function Zv(){Va=(Mu=_o.now())+Ku,Ks=ao=0;try{x6()}finally{Ks=0,v6(),Va=0}}function y6(){var e=_o.now(),t=e-Mu;t>AE&&(Ku-=t,Mu=e)}function v6(){for(var e,t=Au,r,a=1/0;t;)t._call?(a>t._time&&(a=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:Au=r);so=e,rp(a)}function rp(e){if(!Ks){ao&&(ao=clearTimeout(ao));var t=e-Va;t>24?(e<1/0&&(ao=setTimeout(Zv,e-_o.now()-Ku)),eo&&(eo=clearInterval(eo))):(eo||(Mu=_o.now(),eo=setInterval(y6,AE)),Ks=1,ME(Zv))}}function Qv(e,t,r){var a=new Ou;return t=t==null?0:+t,a.restart(s=>{a.stop(),e(s+t)},t,r),a}var _6=Yu("start","end","cancel","interrupt"),w6=[],RE=0,Wv=1,ip=2,bu=3,Jv=4,ap=5,xu=6;function Zu(e,t,r,a,s,o){var c=e.__transition;if(!c)e.__transition={};else if(r in c)return;E6(e,r,{name:t,index:a,group:s,on:_6,tween:w6,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:RE})}function Zp(e,t){var r=Ir(e,t);if(r.state>RE)throw new Error("too late; already scheduled");return r}function Zr(e,t){var r=Ir(e,t);if(r.state>bu)throw new Error("too late; already running");return r}function Ir(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function E6(e,t,r){var a=e.__transition,s;a[t]=r,r.timer=OE(o,0,r.time);function o(h){r.state=Wv,r.timer.restart(c,r.delay,r.time),r.delay<=h&&c(h-r.delay)}function c(h){var m,p,y,x;if(r.state!==Wv)return f();for(m in a)if(x=a[m],x.name===r.name){if(x.state===bu)return Qv(c);x.state===Jv?(x.state=xu,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete a[m]):+mip&&a.state=0&&(t=t.slice(0,r)),!t||t==="start"})}function J6(e,t,r){var a,s,o=W6(t)?Zp:Zr;return function(){var c=o(this,e),d=c.on;d!==a&&(s=(a=d).copy()).on(t,r),c.on=s}}function ez(e,t){var r=this._id;return arguments.length<2?Ir(this.node(),r).on.on(e):this.each(J6(r,e,t))}function tz(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function nz(){return this.on("end.remove",tz(this._id))}function rz(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Gp(e));for(var a=this._groups,s=a.length,o=new Array(s),c=0;c()=>e;function Tz(e,{sourceEvent:t,target:r,transform:a,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:a,enumerable:!0,configurable:!0},_:{value:s}})}function vi(e,t,r){this.k=e,this.x=t,this.y=r}vi.prototype={constructor:vi,scale:function(e){return e===1?this:new vi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new vi(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Qu=new vi(1,0,0);zE.prototype=vi.prototype;function zE(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Qu;return e.__zoom}function ym(e){e.stopImmediatePropagation()}function to(e){e.preventDefault(),e.stopImmediatePropagation()}function Az(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Mz(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function e1(){return this.__zoom||Qu}function Oz(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Rz(){return navigator.maxTouchPoints||"ontouchstart"in this}function Dz(e,t,r){var a=e.invertX(t[0][0])-r[0][0],s=e.invertX(t[1][0])-r[1][0],o=e.invertY(t[0][1])-r[0][1],c=e.invertY(t[1][1])-r[1][1];return e.translate(s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s),c>o?(o+c)/2:Math.min(0,o)||Math.max(0,c))}function IE(){var e=Az,t=Mz,r=Dz,a=Oz,s=Rz,o=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,f=gu,h=Yu("start","zoom","end"),m,p,y,x=500,_=150,N=0,S=10;function w(T){T.property("__zoom",e1).on("wheel.zoom",B,{passive:!1}).on("mousedown.zoom",Z).on("dblclick.zoom",D).filter(s).on("touchstart.zoom",z).on("touchmove.zoom",V).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(T,$,O,H){var X=T.selection?T.selection():T;X.property("__zoom",e1),T!==X?I(T,$,O,H):X.interrupt().each(function(){R(this,arguments).event(H).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},w.scaleBy=function(T,$,O,H){w.scaleTo(T,function(){var X=this.__zoom.k,K=typeof $=="function"?$.apply(this,arguments):$;return X*K},O,H)},w.scaleTo=function(T,$,O,H){w.transform(T,function(){var X=t.apply(this,arguments),K=this.__zoom,C=O==null?M(X):typeof O=="function"?O.apply(this,arguments):O,j=K.invert(C),Y=typeof $=="function"?$.apply(this,arguments):$;return r(E(k(K,Y),C,j),X,c)},O,H)},w.translateBy=function(T,$,O,H){w.transform(T,function(){return r(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof O=="function"?O.apply(this,arguments):O),t.apply(this,arguments),c)},null,H)},w.translateTo=function(T,$,O,H,X){w.transform(T,function(){var K=t.apply(this,arguments),C=this.__zoom,j=H==null?M(K):typeof H=="function"?H.apply(this,arguments):H;return r(Qu.translate(j[0],j[1]).scale(C.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof O=="function"?-O.apply(this,arguments):-O),K,c)},H,X)};function k(T,$){return $=Math.max(o[0],Math.min(o[1],$)),$===T.k?T:new vi($,T.x,T.y)}function E(T,$,O){var H=$[0]-O[0]*T.k,X=$[1]-O[1]*T.k;return H===T.x&&X===T.y?T:new vi(T.k,H,X)}function M(T){return[(+T[0][0]+ +T[1][0])/2,(+T[0][1]+ +T[1][1])/2]}function I(T,$,O,H){T.on("start.zoom",function(){R(this,arguments).event(H).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(H).end()}).tween("zoom",function(){var X=this,K=arguments,C=R(X,K).event(H),j=t.apply(X,K),Y=O==null?M(j):typeof O=="function"?O.apply(X,K):O,L=Math.max(j[1][0]-j[0][0],j[1][1]-j[0][1]),G=X.__zoom,q=typeof $=="function"?$.apply(X,K):$,Q=f(G.invert(Y).concat(L/G.k),q.invert(Y).concat(L/q.k));return function(J){if(J===1)J=q;else{var W=Q(J),te=L/W[2];J=new vi(te,Y[0]-W[0]*te,Y[1]-W[1]*te)}C.zoom(null,J)}})}function R(T,$,O){return!O&&T.__zooming||new U(T,$)}function U(T,$){this.that=T,this.args=$,this.active=0,this.sourceEvent=null,this.extent=t.apply(T,$),this.taps=0}U.prototype={event:function(T){return T&&(this.sourceEvent=T),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(T,$){return this.mouse&&T!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&T!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&T!=="touch"&&(this.touch1[1]=$.invert(this.touch1[0])),this.that.__zoom=$,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(T){var $=ir(this.that).datum();h.call(T,this.that,new Tz(T,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:h}),$)}};function B(T,...$){if(!e.apply(this,arguments))return;var O=R(this,$).event(T),H=this.__zoom,X=Math.max(o[0],Math.min(o[1],H.k*Math.pow(2,a.apply(this,arguments)))),K=Cr(T);if(O.wheel)(O.mouse[0][0]!==K[0]||O.mouse[0][1]!==K[1])&&(O.mouse[1]=H.invert(O.mouse[0]=K)),clearTimeout(O.wheel);else{if(H.k===X)return;O.mouse=[K,H.invert(K)],yu(this),O.start()}to(T),O.wheel=setTimeout(C,_),O.zoom("mouse",r(E(k(H,X),O.mouse[0],O.mouse[1]),O.extent,c));function C(){O.wheel=null,O.end()}}function Z(T,...$){if(y||!e.apply(this,arguments))return;var O=T.currentTarget,H=R(this,$,!0).event(T),X=ir(T.view).on("mousemove.zoom",Y,!0).on("mouseup.zoom",L,!0),K=Cr(T,O),C=T.clientX,j=T.clientY;vE(T.view),ym(T),H.mouse=[K,this.__zoom.invert(K)],yu(this),H.start();function Y(G){if(to(G),!H.moved){var q=G.clientX-C,Q=G.clientY-j;H.moved=q*q+Q*Q>N}H.event(G).zoom("mouse",r(E(H.that.__zoom,H.mouse[0]=Cr(G,O),H.mouse[1]),H.extent,c))}function L(G){X.on("mousemove.zoom mouseup.zoom",null),_E(G.view,H.moved),to(G),H.event(G).end()}}function D(T,...$){if(e.apply(this,arguments)){var O=this.__zoom,H=Cr(T.changedTouches?T.changedTouches[0]:T,this),X=O.invert(H),K=O.k*(T.shiftKey?.5:2),C=r(E(k(O,K),H,X),t.apply(this,$),c);to(T),d>0?ir(this).transition().duration(d).call(I,C,H,T):ir(this).call(w.transform,C,H,T)}}function z(T,...$){if(e.apply(this,arguments)){var O=T.touches,H=O.length,X=R(this,$,T.changedTouches.length===H).event(T),K,C,j,Y;for(ym(T),C=0;C`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:r,targetHandle:a})=>`Couldn't create edge for ${e} handle id: "${e==="source"?r:a}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},wo=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],BE=["Enter"," ","Escape"],UE={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:r})=>`Moved selected node ${e}. New position, x: ${t}, y: ${r}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Zs;(function(e){e.Strict="strict",e.Loose="loose"})(Zs||(Zs={}));var Pa;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Pa||(Pa={}));var Eo;(function(e){e.Partial="partial",e.Full="full"})(Eo||(Eo={}));const HE={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ca;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ca||(ca={}));var Ru;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Ru||(Ru={}));var ze;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ze||(ze={}));const t1={[ze.Left]:ze.Right,[ze.Right]:ze.Left,[ze.Top]:ze.Bottom,[ze.Bottom]:ze.Top};function $E(e){return e===null?null:e?"valid":"invalid"}const qE=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,jz=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Wp=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Lo=(e,t=[0,0])=>{const{width:r,height:a}=Qr(e),s=e.origin??t,o=r*s[0],c=a*s[1];return{x:e.position.x-o,y:e.position.y-c}},Lz=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((a,s)=>{const o=typeof s=="string";let c=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(c=o?t.nodeLookup.get(s):Wp(s)?s:t.nodeLookup.get(s.id));const d=c?Du(c,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Wu(a,d)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Ju(r)},zo=(e,t={})=>{let r={x:1/0,y:1/0,x2:-1/0,y2:-1/0},a=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(r=Wu(r,Du(s)),a=!0)}),a?Ju(r):{x:0,y:0,width:0,height:0}},Jp=(e,t,[r,a,s]=[0,0,1],o=!1,c=!1)=>{const d=(t.x-r)/s,f=(t.y-a)/s,h=t.width/s,m=t.height/s,p=[];for(const y of e.values()){const{measured:x,selectable:_=!0,hidden:N=!1}=y;if(c&&!_||N)continue;const S=x.width??y.width??y.initialWidth??0,w=x.height??y.height??y.initialHeight??0,{x:k,y:E}=y.internals.positionAbsolute,M=VE(d,f,h,m,k,E,S,w),I=S*w,R=o&&M>0;(!y.internals.handleBounds||R||M>=I||y.dragging)&&p.push(y)}return p},zz=(e,t)=>{const r=new Set;return e.forEach(a=>{r.add(a.id)}),t.filter(a=>r.has(a.source)||r.has(a.target))};function Iz(e,t){const r=new Map,a=t!=null&&t.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{let o;if(t!=null&&t.includeHiddenNodes){const{width:c,height:d}=Qr(s);o=c>0&&d>0}else o=!!(s.measured.width&&s.measured.height&&!s.hidden);o&&(!a||a.has(s.id))&&r.set(s.id,s)}),r}async function Bz({nodes:e,width:t,height:r,panZoom:a,minZoom:s,maxZoom:o},c){if(e.size===0)return!0;const d=Iz(e,c),f=zo(d),h=tg(f,t,r,(c==null?void 0:c.minZoom)??s,(c==null?void 0:c.maxZoom)??o,(c==null?void 0:c.padding)??.1);return await a.setViewport(h,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function PE({nodeId:e,nextPosition:t,nodeLookup:r,nodeOrigin:a=[0,0],nodeExtent:s,onError:o}){const c=r.get(e),d=c.parentId?r.get(c.parentId):void 0,{x:f,y:h}=d?d.internals.positionAbsolute:{x:0,y:0},m=c.origin??a;let p=c.extent||s;if(c.extent==="parent"&&!c.expandParent)if(!d)o==null||o("005",Lr.error005());else{const x=d.measured.width,_=d.measured.height;x&&_&&(p=[[f,h],[f+x,h+_]])}else d&&Xa(c.extent)&&(p=[[c.extent[0][0]+f,c.extent[0][1]+h],[c.extent[1][0]+f,c.extent[1][1]+h]]);const y=Xa(p)?Ya(t,p,c.measured):t;return(c.measured.width===void 0||c.measured.height===void 0)&&(o==null||o("015",Lr.error015())),{position:{x:y.x-f+(c.measured.width??0)*m[0],y:y.y-h+(c.measured.height??0)*m[1]},positionAbsolute:y}}async function Uz({nodesToRemove:e=[],edgesToRemove:t=[],nodes:r,edges:a,onBeforeDelete:s}){const o=new Set(e.map(y=>y.id)),c=[];for(const y of r){if(y.deletable===!1)continue;const x=o.has(y.id),_=!x&&y.parentId&&c.find(N=>N.id===y.parentId);(x||_)&&c.push(y)}const d=new Set(t.map(y=>y.id)),f=a.filter(y=>y.deletable!==!1),m=zz(c,f);for(const y of f)d.has(y.id)&&!m.find(_=>_.id===y.id)&&m.push(y);if(!s)return{edges:m,nodes:c};const p=await s({nodes:c,edges:m});return typeof p=="boolean"?p?{edges:m,nodes:c}:{edges:[],nodes:[]}:p}const Qs=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),Ya=(e={x:0,y:0},t,r)=>({x:Qs(e.x,t[0][0],t[1][0]-((r==null?void 0:r.width)??0)),y:Qs(e.y,t[0][1],t[1][1]-((r==null?void 0:r.height)??0))});function FE(e,t,r){const{width:a,height:s}=Qr(r),{x:o,y:c}=r.internals.positionAbsolute;return Ya(e,[[o,c],[o+a,c+s]],t)}const n1=(e,t,r)=>er?-Qs(Math.abs(e-r),1,t)/t:0,eg=(e,t,r=15,a=40)=>{const s=n1(e.x,a,t.width-a)*r,o=n1(e.y,a,t.height-a)*r;return[s,o]},Wu=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),sp=({x:e,y:t,width:r,height:a})=>({x:e,y:t,x2:e+r,y2:t+a}),Ju=({x:e,y:t,x2:r,y2:a})=>({x:e,y:t,width:r-e,height:a-t}),No=(e,t=[0,0])=>{var s,o;const{x:r,y:a}=Wp(e)?e.internals.positionAbsolute:Lo(e,t);return{x:r,y:a,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},Du=(e,t=[0,0])=>{var s,o;const{x:r,y:a}=Wp(e)?e.internals.positionAbsolute:Lo(e,t);return{x:r,y:a,x2:r+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:a+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},GE=(e,t)=>Ju(Wu(sp(e),sp(t))),VE=(e,t,r,a,s,o,c,d)=>{const f=Math.max(0,Math.min(e+r,s+c)-Math.max(e,s)),h=Math.max(0,Math.min(t+a,o+d)-Math.max(t,o));return Math.ceil(f*h)},ju=(e,t)=>VE(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),r1=e=>Or(e.width)&&Or(e.height)&&Or(e.x)&&Or(e.y),Or=e=>!isNaN(e)&&isFinite(e),YE=(e,t)=>(r,a)=>{},Io=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Bo=({x:e,y:t},[r,a,s],o=!1,c=[1,1])=>{const d={x:(e-r)/s,y:(t-a)/s};return o?Io(d,c):d},Ws=({x:e,y:t},[r,a,s])=>({x:e*s+r,y:t*s+a});function Ls(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const r=parseFloat(e);if(!Number.isNaN(r))return Math.floor(r)}if(typeof e=="string"&&e.endsWith("%")){const r=parseFloat(e);if(!Number.isNaN(r))return Math.floor(t*r*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Hz(e,t,r){if(typeof e=="string"||typeof e=="number"){const a=Ls(e,r),s=Ls(e,t);return{top:a,right:s,bottom:a,left:s,x:s*2,y:a*2}}if(typeof e=="object"){const a=Ls(e.top??e.y??0,r),s=Ls(e.bottom??e.y??0,r),o=Ls(e.left??e.x??0,t),c=Ls(e.right??e.x??0,t);return{top:a,right:c,bottom:s,left:o,x:o+c,y:a+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function $z(e,t,r,a,s,o){const{x:c,y:d}=Ws(e,[t,r,a]),{x:f,y:h}=Ws({x:e.x+e.width,y:e.y+e.height},[t,r,a]),m=s-f,p=o-h;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(m),bottom:Math.floor(p)}}const tg=(e,t,r,a,s,o)=>{const c=Hz(o,t,r),d=(t-c.x)/e.width,f=(r-c.y)/e.height,h=Math.min(d,f),m=Qs(h,a,s),p=e.x+e.width/2,y=e.y+e.height/2,x=t/2-p*m,_=r/2-y*m,N=$z(e,x,_,m,t,r),S={left:Math.min(N.left-c.left,0),top:Math.min(N.top-c.top,0),right:Math.min(N.right-c.right,0),bottom:Math.min(N.bottom-c.bottom,0)};return{x:x-S.left+S.right,y:_-S.top+S.bottom,zoom:m}},So=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Xa(e){return e!=null&&e!=="parent"}function Qr(e){var t,r;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight??0}}function XE(e){var t,r;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight)!==void 0}function KE(e,t={width:0,height:0},r,a,s){const o={...e},c=a.get(r);if(c){const d=c.origin||s;o.x+=c.internals.positionAbsolute.x-(t.width??0)*d[0],o.y+=c.internals.positionAbsolute.y-(t.height??0)*d[1]}return o}function i1(e,t){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}function qz(){let e,t;return{promise:new Promise((a,s)=>{e=a,t=s}),resolve:e,reject:t}}function Pz(e){return{...UE,...e||{}}}function fo(e,{snapGrid:t=[0,0],snapToGrid:r=!1,transform:a,containerBounds:s}){const{x:o,y:c}=Rr(e),d=Bo({x:o-((s==null?void 0:s.left)??0),y:c-((s==null?void 0:s.top)??0)},a),{x:f,y:h}=r?Io(d,t):d;return{xSnapped:f,ySnapped:h,...d}}const ng=e=>({width:e.offsetWidth,height:e.offsetHeight}),ZE=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Fz=["INPUT","SELECT","TEXTAREA"];function QE(e){var a,s;const t=((s=(a=e.composedPath)==null?void 0:a.call(e))==null?void 0:s[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:Fz.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const WE=e=>"clientX"in e,Rr=(e,t)=>{var o,c;const r=WE(e),a=r?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,s=r?e.clientY:(c=e.touches)==null?void 0:c[0].clientY;return{x:a-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},a1=(e,t,r,a,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:e,nodeId:s,position:c.getAttribute("data-handlepos"),x:(d.left-r.left)/a,y:(d.top-r.top)/a,...ng(c)}})};function JE({sourceX:e,sourceY:t,targetX:r,targetY:a,sourceControlX:s,sourceControlY:o,targetControlX:c,targetControlY:d}){const f=e*.125+s*.375+c*.375+r*.125,h=t*.125+o*.375+d*.375+a*.125,m=Math.abs(f-e),p=Math.abs(h-t);return[f,h,m,p]}function ou(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function s1({pos:e,x1:t,y1:r,x2:a,y2:s,c:o}){switch(e){case ze.Left:return[t-ou(t-a,o),r];case ze.Right:return[t+ou(a-t,o),r];case ze.Top:return[t,r-ou(r-s,o)];case ze.Bottom:return[t,r+ou(s-r,o)]}}function eN({sourceX:e,sourceY:t,sourcePosition:r=ze.Bottom,targetX:a,targetY:s,targetPosition:o=ze.Top,curvature:c=.25}){const[d,f]=s1({pos:r,x1:e,y1:t,x2:a,y2:s,c}),[h,m]=s1({pos:o,x1:a,y1:s,x2:e,y2:t,c}),[p,y,x,_]=JE({sourceX:e,sourceY:t,targetX:a,targetY:s,sourceControlX:d,sourceControlY:f,targetControlX:h,targetControlY:m});return[`M${e},${t} C${d},${f} ${h},${m} ${a},${s}`,p,y,x,_]}function tN({sourceX:e,sourceY:t,targetX:r,targetY:a}){const s=Math.abs(r-e)/2,o=r0}const Yz=({source:e,sourceHandle:t,target:r,targetHandle:a})=>`xy-edge__${e}${t||""}-${r}${a||""}`,Xz=(e,t)=>t.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),Kz=(e,t,r={})=>{var o;if(!e.source||!e.target)return(o=r.onError)==null||o.call(r,"006",Lr.error006()),t;const a=r.getEdgeId||Yz;let s;return qE(e)?s={...e}:s={...e,id:a(e)},Xz(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function nN({sourceX:e,sourceY:t,targetX:r,targetY:a}){const[s,o,c,d]=tN({sourceX:e,sourceY:t,targetX:r,targetY:a});return[`M ${e},${t}L ${r},${a}`,s,o,c,d]}const l1={[ze.Left]:{x:-1,y:0},[ze.Right]:{x:1,y:0},[ze.Top]:{x:0,y:-1},[ze.Bottom]:{x:0,y:1}},Zz=({source:e,sourcePosition:t=ze.Bottom,target:r})=>t===ze.Left||t===ze.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Qz({source:e,sourcePosition:t=ze.Bottom,target:r,targetPosition:a=ze.Top,center:s,offset:o,stepPosition:c}){const d=l1[t],f=l1[a],h={x:e.x+d.x*o,y:e.y+d.y*o},m={x:r.x+f.x*o,y:r.y+f.y*o},p=Zz({source:h,sourcePosition:t,target:m}),y=p.x!==0?"x":"y",x=p[y];let _=[],N,S;const w={x:0,y:0},k={x:0,y:0},[,,E,M]=tN({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(d[y]*f[y]===-1){y==="x"?(N=s.x??h.x+(m.x-h.x)*c,S=s.y??(h.y+m.y)/2):(N=s.x??(h.x+m.x)/2,S=s.y??h.y+(m.y-h.y)*c);const B=[{x:N,y:h.y},{x:N,y:m.y}],Z=[{x:h.x,y:S},{x:m.x,y:S}];d[y]===x?_=y==="x"?B:Z:_=y==="x"?Z:B}else{const B=[{x:h.x,y:m.y}],Z=[{x:m.x,y:h.y}];if(y==="x"?_=d.x===x?Z:B:_=d.y===x?B:Z,t===a){const T=Math.abs(e[y]-r[y]);if(T<=o){const $=Math.min(o-1,o-T);d[y]===x?w[y]=(h[y]>e[y]?-1:1)*$:k[y]=(m[y]>r[y]?-1:1)*$}}if(t!==a){const T=y==="x"?"y":"x",$=d[y]===f[T],O=h[T]>m[T],H=h[T]=P?(N=(D.x+z.x)/2,S=_[0].y):(N=_[0].x,S=(D.y+z.y)/2)}const I={x:h.x+w.x,y:h.y+w.y},R={x:m.x+k.x,y:m.y+k.y};return[[e,...I.x!==_[0].x||I.y!==_[0].y?[I]:[],..._,...R.x!==_[_.length-1].x||R.y!==_[_.length-1].y?[R]:[],r],N,S,E,M]}function Wz(e,t,r,a){const s=Math.min(o1(e,t)/2,o1(t,r)/2,a),{x:o,y:c}=t;if(e.x===o&&o===r.x||e.y===c&&c===r.y)return`L${o} ${c}`;if(e.y===c){const h=e.xr.id===t):e[0])||null}function op(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(a=>`${a}=${e[a]}`).join("&")}`:""}function eI(e,{id:t,defaultColor:r,defaultMarkerStart:a,defaultMarkerEnd:s}){const o=new Set;return e.reduce((c,d)=>([d.markerStart||a,d.markerEnd||s].forEach(f=>{if(f&&typeof f=="object"){const h=op(f,t);o.has(h)||(c.push({id:h,color:f.color||r,...f}),o.add(h))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const rN=1e3,tI=10,rg={nodeOrigin:[0,0],nodeExtent:wo,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},nI={...rg,checkEquality:!0};function ig(e,t){const r={...e};for(const a in t)t[a]!==void 0&&(r[a]=t[a]);return r}function rI(e,t,r){const a=ig(rg,r);for(const s of e.values())if(s.parentId)sg(s,e,t,a);else{const o=Lo(s,a.nodeOrigin),c=Xa(s.extent)?s.extent:a.nodeExtent,d=Ya(o,c,Qr(s));s.internals.positionAbsolute=d}}function iI(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const r=[],a=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?r.push(o):s.type==="target"&&a.push(o)}return{source:r,target:a}}function ag(e){return e==="manual"}function cp(e,t,r,a={}){var m,p;const s=ig(nI,a),o={i:0},c=new Map(t),d=s!=null&&s.elevateNodesOnSelect&&!ag(s.zIndexMode)?rN:0;let f=e.length>0,h=!1;t.clear(),r.clear();for(const y of e){let x=c.get(y.id);if(s.checkEquality&&y===(x==null?void 0:x.internals.userNode))t.set(y.id,x);else{const _=Lo(y,s.nodeOrigin),N=Xa(y.extent)?y.extent:s.nodeExtent,S=Ya(_,N,Qr(y));x={...s.defaults,...y,measured:{width:(m=y.measured)==null?void 0:m.width,height:(p=y.measured)==null?void 0:p.height},internals:{positionAbsolute:S,handleBounds:iI(y,x),z:iN(y,d,s.zIndexMode),userNode:y}},t.set(y.id,x)}(x.measured===void 0||x.measured.width===void 0||x.measured.height===void 0)&&!x.hidden&&(f=!1),y.parentId&&sg(x,t,r,a,o),h||(h=y.selected??!1)}return{nodesInitialized:f,hasSelectedNodes:h}}function aI(e,t){if(!e.parentId)return;const r=t.get(e.parentId);r?r.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function sg(e,t,r,a,s){const{elevateNodesOnSelect:o,nodeOrigin:c,nodeExtent:d,zIndexMode:f}=ig(rg,a),h=e.parentId,m=t.get(h);if(!m){console.warn(`Parent node ${h} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aI(e,r),s&&!m.parentId&&m.internals.rootParentIndex===void 0&&f==="auto"&&(m.internals.rootParentIndex=++s.i,m.internals.z=m.internals.z+s.i*tI),s&&m.internals.rootParentIndex!==void 0&&(s.i=m.internals.rootParentIndex);const p=o&&!ag(f)?rN:0,{x:y,y:x,z:_}=sI(e,m,c,d,p,f),{positionAbsolute:N}=e.internals,S=y!==N.x||x!==N.y;(S||_!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:y,y:x}:N,z:_}})}function iN(e,t,r){const a=Or(e.zIndex)?e.zIndex:0;return ag(r)?a:a+(e.selected?t:0)}function sI(e,t,r,a,s,o){const{x:c,y:d}=t.internals.positionAbsolute,f=Qr(e),h=Lo(e,r),m=Xa(e.extent)?Ya(h,e.extent,f):h;let p=Ya({x:c+m.x,y:d+m.y},a,f);e.extent==="parent"&&(p=FE(p,f,t));const y=iN(e,s,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=y?x+1:y}}function lg(e,t,r,a=[0,0]){var c;const s=[],o=new Map;for(const d of e){const f=t.get(d.parentId);if(!f)continue;const h=((c=o.get(d.parentId))==null?void 0:c.expandedRect)??No(f),m=GE(h,d.rect);o.set(d.parentId,{expandedRect:m,parent:f})}return o.size>0&&o.forEach(({expandedRect:d,parent:f},h)=>{var E;const m=f.internals.positionAbsolute,p=Qr(f),y=f.origin??a,x=d.x0||_>0||w||k)&&(s.push({id:h,type:"position",position:{x:f.position.x-x+w,y:f.position.y-_+k}}),(E=r.get(h))==null||E.forEach(M=>{e.some(I=>I.id===M.id)||s.push({id:M.id,type:"position",position:{x:M.position.x+x,y:M.position.y+_}})})),(p.width0){const x=lg(y,t,r,s);h.push(...x)}return{changes:h,updatedInternals:f}}async function oI({delta:e,panZoom:t,transform:r,translateExtent:a,width:s,height:o}){if(!t||!e.x&&!e.y)return!1;const c=await t.setViewportConstrained({x:r[0]+e.x,y:r[1]+e.y,zoom:r[2]},[[0,0],[s,o]],a);return!!c&&(c.x!==r[0]||c.y!==r[1]||c.k!==r[2])}function f1(e,t,r,a,s,o){let c=s;const d=a.get(c)||new Map;a.set(c,d.set(r,t)),c=`${s}-${e}`;const f=a.get(c)||new Map;if(a.set(c,f.set(r,t)),o){c=`${s}-${e}-${o}`;const h=a.get(c)||new Map;a.set(c,h.set(r,t))}}function aN(e,t,r){e.clear(),t.clear();for(const a of r){const{source:s,target:o,sourceHandle:c=null,targetHandle:d=null}=a,f={edgeId:a.id,source:s,target:o,sourceHandle:c,targetHandle:d},h=`${s}-${c}--${o}-${d}`,m=`${o}-${d}--${s}-${c}`;f1("source",f,m,e,s,c),f1("target",f,h,e,o,d),t.set(a.id,a)}}function sN(e,t){if(!e.parentId)return!1;const r=t.get(e.parentId);return r?r.selected?!0:sN(r,t):!1}function h1(e,t,r){var s;let a=e;do{if((s=a==null?void 0:a.matches)!=null&&s.call(a,t))return!0;if(a===r)return!1;a=a==null?void 0:a.parentElement}while(a);return!1}function cI(e,t,r,a){const s=new Map;for(const[o,c]of e)if((c.selected||c.id===a)&&(!c.parentId||!sN(c,e))&&(c.draggable||t&&typeof c.draggable>"u")){const d=e.get(o);d&&s.set(o,{id:o,position:d.position||{x:0,y:0},distance:{x:r.x-d.internals.positionAbsolute.x,y:r.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return s}function vm({nodeId:e,dragItems:t,nodeLookup:r,dragging:a=!0}){var c,d,f;const s=[];for(const[h,m]of t){const p=(c=r.get(h))==null?void 0:c.internals.userNode;p&&s.push({...p,position:m.position,dragging:a})}if(!e)return[s[0],s];const o=(d=r.get(e))==null?void 0:d.internals.userNode;return[o?{...o,position:((f=t.get(e))==null?void 0:f.position)||o.position,dragging:a}:s[0],s]}function uI({dragItems:e,snapGrid:t,x:r,y:a}){const s=e.values().next().value;if(!s)return null;const o={x:r-s.distance.x,y:a-s.distance.y},c=Io(o,t);return{x:c.x-o.x,y:c.y-o.y}}function dI({onNodeMouseDown:e,getStoreItems:t,onDragStart:r,onDrag:a,onDragStop:s}){let o={x:null,y:null},c=0,d=new Map,f=!1,h={x:0,y:0},m=null,p=!1,y=null,x=!1,_=!1,N=null;function S({noDragClassName:k,handleSelector:E,domNode:M,isSelectable:I,nodeId:R,nodeClickDistance:U=0}){y=ir(M);function B({x:V,y:P}){const{nodeLookup:T,nodeExtent:$,snapGrid:O,snapToGrid:H,nodeOrigin:X,onNodeDrag:K,onSelectionDrag:C,onError:j,updateNodePositions:Y}=t();o={x:V,y:P};let L=!1;const G=d.size>1,q=G&&$?sp(zo(d)):null,Q=G&&H?uI({dragItems:d,snapGrid:O,x:V,y:P}):null;for(const[J,W]of d){if(!T.has(J))continue;let te={x:V-W.distance.x,y:P-W.distance.y};H&&(te=Q?{x:Math.round(te.x+Q.x),y:Math.round(te.y+Q.y)}:Io(te,O));let ce=null;if(G&&$&&!W.extent&&q){const{positionAbsolute:we}=W.internals,Ne=we.x-q.x+$[0][0],je=we.x+W.measured.width-q.x2+$[1][0],$e=we.y-q.y+$[0][1],st=we.y+W.measured.height-q.y2+$[1][1];ce=[[Ne,$e],[je,st]]}const{position:fe,positionAbsolute:be}=PE({nodeId:J,nextPosition:te,nodeLookup:T,nodeExtent:ce||$,nodeOrigin:X,onError:j});L=L||W.position.x!==fe.x||W.position.y!==fe.y,W.position=fe,W.internals.positionAbsolute=be}if(_=_||L,!!L&&(Y(d,!0),N&&(a||K||!R&&C))){const[J,W]=vm({nodeId:R,dragItems:d,nodeLookup:T});a==null||a(N,d,J,W),K==null||K(N,J,W),R||C==null||C(N,W)}}async function Z(){if(!m)return;const{transform:V,panBy:P,autoPanSpeed:T,autoPanOnNodeDrag:$}=t();if(!$){f=!1,cancelAnimationFrame(c);return}const[O,H]=eg(h,m,T);(O!==0||H!==0)&&(o.x=(o.x??0)-O/V[2],o.y=(o.y??0)-H/V[2],await P({x:O,y:H})&&B(o)),c=requestAnimationFrame(Z)}function D(V){var G;const{nodeLookup:P,multiSelectionActive:T,nodesDraggable:$,transform:O,snapGrid:H,snapToGrid:X,selectNodesOnDrag:K,onNodeDragStart:C,onSelectionDragStart:j,unselectNodesAndEdges:Y}=t();p=!0,(!K||!I)&&!T&&R&&((G=P.get(R))!=null&&G.selected||Y()),I&&K&&R&&(e==null||e(R));const L=fo(V.sourceEvent,{transform:O,snapGrid:H,snapToGrid:X,containerBounds:m});if(o=L,d=cI(P,$,L,R),d.size>0&&(r||C||!R&&j)){const[q,Q]=vm({nodeId:R,dragItems:d,nodeLookup:P});r==null||r(V.sourceEvent,d,q,Q),C==null||C(V.sourceEvent,q,Q),R||j==null||j(V.sourceEvent,Q)}}const z=wE().clickDistance(U).on("start",V=>{const{domNode:P,nodeDragThreshold:T,transform:$,snapGrid:O,snapToGrid:H}=t();m=(P==null?void 0:P.getBoundingClientRect())||null,x=!1,_=!1,N=V.sourceEvent,T===0&&D(V),o=fo(V.sourceEvent,{transform:$,snapGrid:O,snapToGrid:H,containerBounds:m}),h=Rr(V.sourceEvent,m)}).on("drag",V=>{const{autoPanOnNodeDrag:P,transform:T,snapGrid:$,snapToGrid:O,nodeDragThreshold:H,nodeLookup:X}=t(),K=fo(V.sourceEvent,{transform:T,snapGrid:$,snapToGrid:O,containerBounds:m});if(N=V.sourceEvent,(V.sourceEvent.type==="touchmove"&&V.sourceEvent.touches.length>1||R&&!X.has(R))&&(x=!0),!x){if(!f&&P&&p&&(f=!0,Z()),!p){const C=Rr(V.sourceEvent,m),j=C.x-h.x,Y=C.y-h.y;Math.sqrt(j*j+Y*Y)>H&&D(V)}(o.x!==K.xSnapped||o.y!==K.ySnapped)&&d&&p&&(h=Rr(V.sourceEvent,m),B(K))}}).on("end",V=>{if(!p||x){x&&d.size>0&&t().updateNodePositions(d,!1);return}if(f=!1,p=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:P,updateNodePositions:T,onNodeDragStop:$,onSelectionDragStop:O}=t();if(_&&(T(d,!1),_=!1),s||$||!R&&O){const[H,X]=vm({nodeId:R,dragItems:d,nodeLookup:P,dragging:!1});s==null||s(V.sourceEvent,d,H,X),$==null||$(V.sourceEvent,H,X),R||O==null||O(V.sourceEvent,X)}}}).filter(V=>{const P=V.target;return!V.button&&(!k||!h1(P,`.${k}`,M))&&(!E||h1(P,E,M))});y.call(z)}function w(){y==null||y.on(".drag",null)}return{update:S,destroy:w}}function fI(e,t,r){const a=[],s={x:e.x-r,y:e.y-r,width:r*2,height:r*2};for(const o of t.values())ju(s,No(o))>0&&a.push(o);return a}const hI=250;function mI(e,t,r,a){var d,f;let s=[],o=1/0;const c=fI(e,r,t+hI);for(const h of c){const m=[...((d=h.internals.handleBounds)==null?void 0:d.source)??[],...((f=h.internals.handleBounds)==null?void 0:f.target)??[]];for(const p of m){if(a.nodeId===p.nodeId&&a.type===p.type&&a.id===p.id)continue;const{x:y,y:x}=Ka(h,p,p.position,!0),_=Math.sqrt(Math.pow(y-e.x,2)+Math.pow(x-e.y,2));_>t||(_1){const h=a.type==="source"?"target":"source";return s.find(m=>m.type===h)??s[0]}return s[0]}function lN(e,t,r,a,s,o=!1){var h,m,p;const c=a.get(e);if(!c)return null;const d=s==="strict"?(h=c.internals.handleBounds)==null?void 0:h[t]:[...((m=c.internals.handleBounds)==null?void 0:m.source)??[],...((p=c.internals.handleBounds)==null?void 0:p.target)??[]],f=(r?d==null?void 0:d.find(y=>y.id===r):d==null?void 0:d[0])??null;return f&&o?{...f,...Ka(c,f,f.position,!0)}:f}function oN(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function pI(e,t){let r=null;return t?r=!0:e&&!t&&(r=!1),r}const cN=()=>!0;function gI(e,{connectionMode:t,connectionRadius:r,handleId:a,nodeId:s,edgeUpdaterType:o,isTarget:c,domNode:d,nodeLookup:f,lib:h,autoPanOnConnect:m,flowId:p,panBy:y,cancelConnection:x,onConnectStart:_,onConnect:N,onConnectEnd:S,isValidConnection:w=cN,onReconnectEnd:k,updateConnection:E,getTransform:M,getFromHandle:I,autoPanSpeed:R,dragThreshold:U=1,handleDomNode:B}){const Z=ZE(e.target);let D=0,z;const{x:V,y:P}=Rr(e),T=oN(o,B),$=d==null?void 0:d.getBoundingClientRect();let O=!1;if(!$||!T)return;const H=lN(s,T,a,f,t);if(!H)return;let X=Rr(e,$),K=!1,C=null,j=!1,Y=null;function L(){if(!m||!$)return;const[fe,be]=eg(X,$,R);y({x:fe,y:be}),D=requestAnimationFrame(L)}const G={...H,nodeId:s,type:T,position:H.position},q=f.get(s);let J={inProgress:!0,isValid:null,from:Ka(q,G,ze.Left,!0),fromHandle:G,fromPosition:G.position,fromNode:q,to:X,toHandle:null,toPosition:t1[G.position],toNode:null,pointer:X};function W(){O=!0,E(J),_==null||_(e,{nodeId:s,handleId:a,handleType:T})}U===0&&W();function te(fe){if(!O){const{x:st,y:Rt}=Rr(fe),Yt=st-V,Pt=Rt-P;if(!(Yt*Yt+Pt*Pt>U*U))return;W()}if(!I()||!G){ce(fe);return}const be=M();X=Rr(fe,$),z=mI(Bo(X,be,!1,[1,1]),r,f,G),K||(L(),K=!0);const we=uN(fe,{handle:z,connectionMode:t,fromNodeId:s,fromHandleId:a,fromType:c?"target":"source",isValidConnection:w,doc:Z,lib:h,flowId:p,nodeLookup:f});Y=we.handleDomNode,C=we.connection,j=pI(!!z,we.isValid);const Ne=f.get(s),je=Ne?Ka(Ne,G,ze.Left,!0):J.from,$e={...J,from:je,isValid:j,to:we.toHandle&&j?Ws({x:we.toHandle.x,y:we.toHandle.y},be):X,toHandle:we.toHandle,toPosition:j&&we.toHandle?we.toHandle.position:t1[G.position],toNode:we.toHandle?f.get(we.toHandle.nodeId):null,pointer:X};E($e),J=$e}function ce(fe){if(!("touches"in fe&&fe.touches.length>0)){if(O){(z||Y)&&C&&j&&(N==null||N(C));const{inProgress:be,...we}=J,Ne={...we,toPosition:J.toHandle?J.toPosition:null};S==null||S(fe,Ne),o&&(k==null||k(fe,Ne))}x(),cancelAnimationFrame(D),K=!1,j=!1,C=null,Y=null,Z.removeEventListener("mousemove",te),Z.removeEventListener("mouseup",ce),Z.removeEventListener("touchmove",te),Z.removeEventListener("touchend",ce)}}Z.addEventListener("mousemove",te),Z.addEventListener("mouseup",ce),Z.addEventListener("touchmove",te),Z.addEventListener("touchend",ce)}function uN(e,{handle:t,connectionMode:r,fromNodeId:a,fromHandleId:s,fromType:o,doc:c,lib:d,flowId:f,isValidConnection:h=cN,nodeLookup:m}){const p=o==="target",y=t?c.querySelector(`.${d}-flow__handle[data-id="${f}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x,y:_}=Rr(e),N=c.elementFromPoint(x,_),S=N!=null&&N.classList.contains(`${d}-flow__handle`)?N:y,w={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=oN(void 0,S),E=S.getAttribute("data-nodeid"),M=S.getAttribute("data-handleid"),I=S.classList.contains("connectable"),R=S.classList.contains("connectableend");if(!E||!k)return w;const U={source:p?E:a,sourceHandle:p?M:s,target:p?a:E,targetHandle:p?s:M};w.connection=U;const Z=I&&R&&(r===Zs.Strict?p&&k==="source"||!p&&k==="target":E!==a||M!==s);w.isValid=Z&&h(U),w.toHandle=lN(E,k,M,m,r,!0)}return w}const up={onPointerDown:gI,isValid:uN};function bI({domNode:e,panZoom:t,getTransform:r,getViewScale:a}){const s=ir(e);function o({translateExtent:d,width:f,height:h,zoomStep:m=1,pannable:p=!0,zoomable:y=!0,inversePan:x=!1}){const _=E=>{if(E.sourceEvent.type!=="wheel"||!t)return;const M=r(),I=E.sourceEvent.ctrlKey&&So()?10:1,R=-E.sourceEvent.deltaY*(E.sourceEvent.deltaMode===1?.05:E.sourceEvent.deltaMode?1:.002)*m,U=M[2]*Math.pow(2,R*I);t.scaleTo(U)};let N=[0,0];const S=E=>{(E.sourceEvent.type==="mousedown"||E.sourceEvent.type==="touchstart")&&(N=[E.sourceEvent.clientX??E.sourceEvent.touches[0].clientX,E.sourceEvent.clientY??E.sourceEvent.touches[0].clientY])},w=E=>{const M=r();if(E.sourceEvent.type!=="mousemove"&&E.sourceEvent.type!=="touchmove"||!t)return;const I=[E.sourceEvent.clientX??E.sourceEvent.touches[0].clientX,E.sourceEvent.clientY??E.sourceEvent.touches[0].clientY],R=[I[0]-N[0],I[1]-N[1]];N=I;const U=a()*Math.max(M[2],Math.log(M[2]))*(x?-1:1),B={x:M[0]-R[0]*U,y:M[1]-R[1]*U},Z=[[0,0],[f,h]];t.setViewportConstrained({x:B.x,y:B.y,zoom:M[2]},Z,d)},k=IE().on("start",S).on("zoom",p?w:null).on("zoom.wheel",y?_:null);s.call(k,{})}function c(){s.on("zoom",null)}return{update:o,destroy:c,pointer:Cr}}const ed=e=>({x:e.x,y:e.y,zoom:e.k}),_m=({x:e,y:t,zoom:r})=>Qu.translate(e,t).scale(r),Us=(e,t)=>e.target.closest(`.${t}`),dN=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),xI=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,wm=(e,t=0,r=xI,a=()=>{})=>{const s=typeof t=="number"&&t>0;return s||a(),s?e.transition().duration(t).ease(r).on("end",a):e},fN=e=>{const t=e.ctrlKey&&So()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function yI({zoomPanValues:e,noWheelClassName:t,d3Selection:r,d3Zoom:a,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:f,onPanZoomEnd:h}){return m=>{if(Us(m,t))return m.ctrlKey&&m.preventDefault(),!1;m.preventDefault(),m.stopImmediatePropagation();const p=r.property("__zoom").k||1;if(m.ctrlKey&&c){const S=Cr(m),w=fN(m),k=p*Math.pow(2,w);a.scaleTo(r,k,S,m);return}const y=m.deltaMode===1?20:1;let x=s===Pa.Vertical?0:m.deltaX*y,_=s===Pa.Horizontal?0:m.deltaY*y;!So()&&m.shiftKey&&s!==Pa.Vertical&&(x=m.deltaY*y,_=0),a.translateBy(r,-(x/p)*o,-(_/p)*o,{internal:!0});const N=ed(r.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?f==null||f(m,N):(e.isPanScrolling=!0,d==null||d(m,N)),e.panScrollTimeout=setTimeout(()=>{h==null||h(m,N),e.isPanScrolling=!1},150)}}function vI({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:r}){return function(a,s){const o=a.type==="wheel",c=!t&&o&&!a.ctrlKey,d=Us(a,e);if(a.ctrlKey&&o&&d&&a.preventDefault(),c||d)return null;a.preventDefault(),r.call(this,a,s)}}function _I({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:r}){return a=>{var o,c,d;if((o=a.sourceEvent)!=null&&o.internal)return;const s=ed(a.transform);e.mouseButton=((c=a.sourceEvent)==null?void 0:c.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=s,((d=a.sourceEvent)==null?void 0:d.type)==="mousedown"&&t(!0),r&&(r==null||r(a.sourceEvent,s))}}function wI({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:r,onTransformChange:a,onPanZoom:s}){return o=>{var c,d;e.usedRightMouseButton=!!(r&&dN(t,e.mouseButton??0)),(c=o.sourceEvent)!=null&&c.sync||a([o.transform.x,o.transform.y,o.transform.k]),s&&!((d=o.sourceEvent)!=null&&d.internal)&&(s==null||s(o.sourceEvent,ed(o.transform)))}}function EI({zoomPanValues:e,panOnDrag:t,panOnScroll:r,onDraggingChange:a,onPanZoomEnd:s,onPaneContextMenu:o}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(e.isZoomingOrPanning=!1,o&&dN(t,e.mouseButton??0)&&!e.usedRightMouseButton&&c.sourceEvent&&o(c.sourceEvent),e.usedRightMouseButton=!1,a(!1),s)){const f=ed(c.transform);e.prevViewport=f,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(c.sourceEvent,f)},r?150:0)}}}function NI({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:r,panOnDrag:a,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:c,noWheelClassName:d,noPanClassName:f,lib:h,connectionInProgress:m}){return p=>{var S;const y=e||t,x=r&&p.ctrlKey,_=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(Us(p,`${h}-flow__node`)||Us(p,`${h}-flow__edge`)))return!0;if(!a&&!y&&!s&&!o&&!r||c||m&&!_||Us(p,d)&&_||Us(p,f)&&(!_||s&&_&&!e)||!r&&p.ctrlKey&&_)return!1;if(!r&&p.type==="touchstart"&&((S=p.touches)==null?void 0:S.length)>1)return p.preventDefault(),!1;if(!y&&!s&&!x&&_||!a&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(a)&&!a.includes(p.button)&&p.type==="mousedown")return!1;const N=Array.isArray(a)&&a.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||_)&&N}}function SI({domNode:e,minZoom:t,maxZoom:r,translateExtent:a,viewport:s,onPanZoom:o,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:f}){const h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},m=e.getBoundingClientRect();let p=[[0,0],[m.width,m.height]];const y=typeof ResizeObserver<"u"?new ResizeObserver(P=>{const T=P[0];T&&(p=[[0,0],[T.contentRect.width,T.contentRect.height]])}):null;y==null||y.observe(e);const x=IE().extent(()=>p).scaleExtent([t,r]).translateExtent(a),_=ir(e).call(x);M({x:s.x,y:s.y,zoom:Qs(s.zoom,t,r)},[[0,0],[m.width,m.height]],a);const N=_.on("wheel.zoom"),S=_.on("dblclick.zoom");x.wheelDelta(fN);async function w(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).transform(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}function k({noWheelClassName:P,noPanClassName:T,onPaneContextMenu:$,userSelectionActive:O,panOnScroll:H,panOnDrag:X,panOnScrollMode:K,panOnScrollSpeed:C,preventScrolling:j,zoomOnPinch:Y,zoomOnScroll:L,zoomOnDoubleClick:G,zoomActivationKeyPressed:q,lib:Q,onTransformChange:J,connectionInProgress:W,paneClickDistance:te,selectionOnDrag:ce}){O&&!h.isZoomingOrPanning&&E();const fe=H&&!q&&!O;x.clickDistance(ce?1/0:!Or(te)||te<0?0:te);const be=fe?yI({zoomPanValues:h,noWheelClassName:P,d3Selection:_,d3Zoom:x,panOnScrollMode:K,panOnScrollSpeed:C,zoomOnPinch:Y,onPanZoomStart:c,onPanZoom:o,onPanZoomEnd:d}):vI({noWheelClassName:P,preventScrolling:j,d3ZoomHandler:N});_.on("wheel.zoom",be,{passive:!1});const we=_I({zoomPanValues:h,onDraggingChange:f,onPanZoomStart:c});x.on("start",we);const Ne=wI({zoomPanValues:h,panOnDrag:X,onPaneContextMenu:!!$,onPanZoom:o,onTransformChange:J});x.on("zoom",Ne);const je=EI({zoomPanValues:h,panOnDrag:X,panOnScroll:H,onPaneContextMenu:$,onPanZoomEnd:d,onDraggingChange:f});x.on("end",je);const $e=NI({zoomActivationKeyPressed:q,panOnDrag:X,zoomOnScroll:L,panOnScroll:H,zoomOnDoubleClick:G,zoomOnPinch:Y,userSelectionActive:O,noPanClassName:T,noWheelClassName:P,lib:Q,connectionInProgress:W});x.filter($e),G?_.on("dblclick.zoom",S):_.on("dblclick.zoom",null)}function E(){x.on("zoom",null)}async function M(P,T,$){const O=_m(P),H=x==null?void 0:x.constrain()(O,T,$);return H&&await w(H),H}async function I(P,T){const $=_m(P);return await w($,T),$}function R(P){if(_){const T=_m(P),$=_.property("__zoom");($.k!==P.zoom||$.x!==P.x||$.y!==P.y)&&(x==null||x.transform(_,T,null,{sync:!0}))}}function U(){const P=_?zE(_.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function B(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).scaleTo(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}async function Z(P,T){return _?new Promise($=>{x==null||x.interpolate((T==null?void 0:T.interpolate)==="linear"?uo:gu).scaleBy(wm(_,T==null?void 0:T.duration,T==null?void 0:T.ease,()=>$(!0)),P)}):!1}function D(P){x==null||x.scaleExtent(P)}function z(P){x==null||x.translateExtent(P)}function V(P){const T=!Or(P)||P<0?0:P;x==null||x.clickDistance(T)}return{update:k,destroy:E,setViewport:I,setViewportConstrained:M,getViewport:U,scaleTo:B,scaleBy:Z,setScaleExtent:D,setTranslateExtent:z,syncViewport:R,setClickDistance:V}}var Js;(function(e){e.Line="line",e.Handle="handle"})(Js||(Js={}));function kI({width:e,prevWidth:t,height:r,prevHeight:a,affectsX:s,affectsY:o}){const c=e-t,d=r-a,f=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&s&&(f[0]=f[0]*-1),d&&o&&(f[1]=f[1]*-1),f}function m1(e){const t=e.includes("right")||e.includes("left"),r=e.includes("bottom")||e.includes("top"),a=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:r,affectsX:a,affectsY:s}}function aa(e,t){return Math.max(0,t-e)}function sa(e,t){return Math.max(0,e-t)}function cu(e,t,r){return Math.max(0,t-e,e-r)}function p1(e,t){return e?!t:t}function CI(e,t,r,a,s,o,c,d){let{affectsX:f,affectsY:h}=t;const{isHorizontal:m,isVertical:p}=t,y=m&&p,{xSnapped:x,ySnapped:_}=r,{minWidth:N,maxWidth:S,minHeight:w,maxHeight:k}=a,{x:E,y:M,width:I,height:R,aspectRatio:U}=e;let B=Math.floor(m?x-e.pointerX:0),Z=Math.floor(p?_-e.pointerY:0);const D=I+(f?-B:B),z=R+(h?-Z:Z),V=-o[0]*I,P=-o[1]*R;let T=cu(D,N,S),$=cu(z,w,k);if(c){let X=0,K=0;f&&B<0?X=aa(E+B+V,c[0][0]):!f&&B>0&&(X=sa(E+D+V,c[1][0])),h&&Z<0?K=aa(M+Z+P,c[0][1]):!h&&Z>0&&(K=sa(M+z+P,c[1][1])),T=Math.max(T,X),$=Math.max($,K)}if(d){let X=0,K=0;f&&B>0?X=sa(E+B,d[0][0]):!f&&B<0&&(X=aa(E+D,d[1][0])),h&&Z>0?K=sa(M+Z,d[0][1]):!h&&Z<0&&(K=aa(M+z,d[1][1])),T=Math.max(T,X),$=Math.max($,K)}if(s){if(m){const X=cu(D/U,w,k)*U;if(T=Math.max(T,X),c){let K=0;!f&&!h||f&&!h&&y?K=sa(M+P+D/U,c[1][1])*U:K=aa(M+P+(f?B:-B)/U,c[0][1])*U,T=Math.max(T,K)}if(d){let K=0;!f&&!h||f&&!h&&y?K=aa(M+D/U,d[1][1])*U:K=sa(M+(f?B:-B)/U,d[0][1])*U,T=Math.max(T,K)}}if(p){const X=cu(z*U,N,S)/U;if($=Math.max($,X),c){let K=0;!f&&!h||h&&!f&&y?K=sa(E+z*U+V,c[1][0])/U:K=aa(E+(h?Z:-Z)*U+V,c[0][0])/U,$=Math.max($,K)}if(d){let K=0;!f&&!h||h&&!f&&y?K=aa(E+z*U,d[1][0])/U:K=sa(E+(h?Z:-Z)*U,d[0][0])/U,$=Math.max($,K)}}}Z=Z+(Z<0?$:-$),B=B+(B<0?T:-T),s&&(y?D>z*U?Z=(p1(f,h)?-B:B)/U:B=(p1(f,h)?-Z:Z)*U:m?(Z=B/U,h=f):(B=Z*U,f=h));const O=f?E+B:E,H=h?M+Z:M;return{width:I+(f?-B:B),height:R+(h?-Z:Z),x:o[0]*B*(f?-1:1)+O,y:o[1]*Z*(h?-1:1)+H}}const hN={width:0,height:0,x:0,y:0},TI={...hN,pointerX:0,pointerY:0,aspectRatio:1};function AI(e,t,r){const a=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,c=e.measured.height??0,d=r[0]*o,f=r[1]*c;return[[a-d,s-f],[a+o-d,s+c-f]]}function MI({domNode:e,nodeId:t,getStoreItems:r,onChange:a,onEnd:s}){const o=ir(e);let c={controlDirection:m1("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:h,boundaries:m,keepAspectRatio:p,resizeDirection:y,onResizeStart:x,onResize:_,onResizeEnd:N,shouldResize:S}){let w={...hN},k={...TI};c={boundaries:m,resizeDirection:y,keepAspectRatio:p,controlDirection:m1(h)};let E,M=null,I=[],R,U,B,Z=!1;const D=wE().on("start",z=>{const{nodeLookup:V,transform:P,snapGrid:T,snapToGrid:$,nodeOrigin:O,paneDomNode:H}=r();if(E=V.get(t),!E)return;M=(H==null?void 0:H.getBoundingClientRect())??null;const{xSnapped:X,ySnapped:K}=fo(z.sourceEvent,{transform:P,snapGrid:T,snapToGrid:$,containerBounds:M});w={width:E.measured.width??0,height:E.measured.height??0,x:E.position.x??0,y:E.position.y??0},k={...w,pointerX:X,pointerY:K,aspectRatio:w.width/w.height},R=void 0,U=Xa(E.extent)?E.extent:void 0,E.parentId&&(E.extent==="parent"||E.expandParent)&&(R=V.get(E.parentId)),R&&E.extent==="parent"&&(U=[[0,0],[R.measured.width,R.measured.height]]),I=[],B=void 0;for(const[C,j]of V)if(j.parentId===t&&(I.push({id:C,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const Y=AI(j,E,j.origin??O);B?B=[[Math.min(Y[0][0],B[0][0]),Math.min(Y[0][1],B[0][1])],[Math.max(Y[1][0],B[1][0]),Math.max(Y[1][1],B[1][1])]]:B=Y}x==null||x(z,{...w})}).on("drag",z=>{const{transform:V,snapGrid:P,snapToGrid:T,nodeOrigin:$}=r(),O=fo(z.sourceEvent,{transform:V,snapGrid:P,snapToGrid:T,containerBounds:M}),H=[];if(!E)return;const{x:X,y:K,width:C,height:j}=w,Y={},L=E.origin??$,{width:G,height:q,x:Q,y:J}=CI(k,c.controlDirection,O,c.boundaries,c.keepAspectRatio,L,U,B),W=G!==C,te=q!==j,ce=Q!==X&&W,fe=J!==K&&te;if(!ce&&!fe&&!W&&!te)return;if((ce||fe||L[0]===1||L[1]===1)&&(Y.x=ce?Q:w.x,Y.y=fe?J:w.y,w.x=Y.x,w.y=Y.y,I.length>0)){const je=Q-X,$e=J-K;for(const st of I)st.position={x:st.position.x-je+L[0]*(G-C),y:st.position.y-$e+L[1]*(q-j)},H.push(st)}if((W||te)&&(Y.width=W&&(!c.resizeDirection||c.resizeDirection==="horizontal")?G:w.width,Y.height=te&&(!c.resizeDirection||c.resizeDirection==="vertical")?q:w.height,w.width=Y.width,w.height=Y.height),R&&E.expandParent){const je=L[0]*(Y.width??0);Y.x&&Y.x{Z&&(N==null||N(z,{...w}),s==null||s({...w}),Z=!1)});o.call(D)}function f(){o.on(".drag",null)}return{update:d,destroy:f}}var Em={exports:{}},Nm={},Sm={exports:{}},km={};/** * @license React * use-sync-external-store-shim.production.js * diff --git a/strix/viewer/static/index.html b/strix/viewer/static/index.html index 2e93dcb4..1aad90de 100644 --- a/strix/viewer/static/index.html +++ b/strix/viewer/static/index.html @@ -6,7 +6,7 @@ Strix Results - + diff --git a/tests/test_fenced_code.py b/tests/test_fenced_code.py index 6f7975d9..b711781c 100644 --- a/tests/test_fenced_code.py +++ b/tests/test_fenced_code.py @@ -4,10 +4,11 @@ from __future__ import annotations from pygments.lexers import BashLexer, PythonLexer -from strix.interface.tui.renderers.fenced import ( +from strix.report.fenced import ( guess_language_name, parse_fenced_code, resolve_lexer, + safe_fence, ) from strix.viewer.report_pdf import _strip_code_fence @@ -62,3 +63,16 @@ def test_resolve_lexer_falls_back_to_python_when_unresolvable() -> None: def test_guess_language_name_defaults_to_python_when_inconclusive() -> None: assert guess_language_name("") == "python" + + +def test_parse_fenced_code_handles_crlf() -> None: + language, code = parse_fenced_code("```python\r\nx = 1\r\n```") + assert language == "python" + assert code == "x = 1" + + +def test_safe_fence_widens_past_embedded_backticks() -> None: + # A PoC body containing a ``` run must be wrapped in a longer fence so it + # can't terminate the block early. + assert safe_fence("plain code") == "```" + assert safe_fence("has ```\nfence inside") == "````" diff --git a/tests/test_report_writer.py b/tests/test_report_writer.py index b9d855a0..05222796 100644 --- a/tests/test_report_writer.py +++ b/tests/test_report_writer.py @@ -119,9 +119,11 @@ def test_render_vulnerability_md_poc_code_cannot_break_out_of_fence() -> None: injected = "curl x\n```\n\n## Injected Heading\n![x](https://evil.example/beacon.png)" md = render_vulnerability_md(_sample_report(poc_script_code=injected)) lines = md.split("\n") - fence = next(ln for ln in lines[lines.index("## Proof of Concept") + 1 :] if ln.strip()) - assert set(fence) == {"`"} - assert len(fence) >= 4 # wider than the payload's 3-backtick run + opening = next(ln for ln in lines[lines.index("## Proof of Concept") + 1 :] if ln.strip()) + ticks = opening[: len(opening) - len(opening.lstrip("`"))] + assert len(ticks) >= 4 # wider than the payload's 3-backtick run + assert "`" not in opening.removeprefix(ticks) # backtick run + language tag only + assert f"\n{ticks}\n" in md # pure-backtick closing fence of the same width assert injected in md # the payload survives verbatim, inside the fence