agent-workbench 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -4351,19 +4351,30 @@ async function readSettings(file) {
4351
4351
  return null;
4352
4352
  }
4353
4353
  }
4354
+ function levelOf(value) {
4355
+ if (typeof value !== "object" || value === null) return null;
4356
+ const level = value["effortLevel"];
4357
+ return typeof level === "string" && level.length > 0 ? level : null;
4358
+ }
4354
4359
  function effortFor(model2, modelSettings) {
4355
4360
  if (typeof modelSettings !== "object" || modelSettings === null) return null;
4361
+ const entries = Object.entries(modelSettings);
4362
+ let own = null;
4363
+ for (const entry of entries) {
4364
+ if (entry[0].length === 0 || !model2.includes(entry[0])) continue;
4365
+ if (own === null || entry[0].length > own[0].length) own = entry;
4366
+ }
4367
+ if (own !== null) return levelOf(own[1]);
4356
4368
  const family = FAMILIES.find((candidate) => model2.includes(candidate));
4357
4369
  if (family === void 0) return null;
4358
- for (const [id, value] of Object.entries(modelSettings)) {
4370
+ for (const [id, value] of entries) {
4359
4371
  if (!id.includes(family)) continue;
4360
- if (typeof value !== "object" || value === null) continue;
4361
- const level = value["effortLevel"];
4362
- if (typeof level === "string" && level.length > 0) return level;
4372
+ const level = levelOf(value);
4373
+ if (level !== null) return level;
4363
4374
  }
4364
4375
  return null;
4365
4376
  }
4366
- async function readAgentDefaults(cwd) {
4377
+ async function readAgentDefaults(cwd, sessionModel = null) {
4367
4378
  const withWindow = (configured) => ({
4368
4379
  ...configured,
4369
4380
  contextWindow: NO_OBSERVATIONS.windowForConfigured(configured.model)
@@ -4378,7 +4389,8 @@ async function readAgentDefaults(cwd) {
4378
4389
  if (settings2 === null) continue;
4379
4390
  const { model: model2 } = settings2;
4380
4391
  if (typeof model2 !== "string" || model2.length === 0) continue;
4381
- return withWindow({ model: model2, effort: effortFor(model2, settings2.modelSettings) });
4392
+ const resumed = sessionModel !== null && FAMILIES.some((family) => sessionModel.includes(family)) ? sessionModel : model2;
4393
+ return withWindow({ model: model2, effort: effortFor(resumed, settings2.modelSettings) });
4382
4394
  }
4383
4395
  return withWindow({ model: null, effort: null });
4384
4396
  }
@@ -6355,7 +6367,7 @@ function createClaudeCodeAdapter() {
6355
6367
  },
6356
6368
  history: createClaudeCodeHistory(variants),
6357
6369
  status,
6358
- defaults: (cwd) => readAgentDefaults(cwd),
6370
+ defaults: (cwd, sessionModel) => readAgentDefaults(cwd, sessionModel ?? null),
6359
6371
  /** La carpeta de la CLI. No se lista ni se entra: regla 2.1. */
6360
6372
  protectedDirs: () => [path21.join(homedir5(), ".claude")],
6361
6373
  dispose: () => status.dispose()
@@ -15748,6 +15760,15 @@ function draftOwnerOf(descriptor) {
15748
15760
  if (descriptor.sessionId.length === 0) return null;
15749
15761
  return { agent: descriptor.agent, sessionId: descriptor.sessionId };
15750
15762
  }
15763
+ function draftEntriesOf(descriptors, store, owner) {
15764
+ const entries = [];
15765
+ for (const descriptor of descriptors) {
15766
+ const tabOwner = draftOwnerOf(descriptor);
15767
+ if (tabOwner === null || owner !== void 0 && keyOf(tabOwner) !== keyOf(owner)) continue;
15768
+ entries.push({ terminalId: descriptor.terminalId, draft: store.get(tabOwner) ?? { text: "", pasted: [] } });
15769
+ }
15770
+ return entries;
15771
+ }
15751
15772
  function workspaceDraftOwners(state) {
15752
15773
  const owners = state.tabs.map(({ agent, sessionId }) => ({ agent, sessionId }));
15753
15774
  for (const { raw } of state.foreignTabs) {
@@ -16758,7 +16779,8 @@ var TerminalRegistry = class extends EventEmitter6 {
16758
16779
  // el registro: el catch de abajo la saca.
16759
16780
  alive: false,
16760
16781
  exitCode: null,
16761
- sleeping: true
16782
+ sleeping: true,
16783
+ launchedAt: null
16762
16784
  };
16763
16785
  const entry = {
16764
16786
  descriptor,
@@ -16933,7 +16955,8 @@ var TerminalRegistry = class extends EventEmitter6 {
16933
16955
  ...target.descriptor,
16934
16956
  alive: false,
16935
16957
  exitCode,
16936
- sleeping: false
16958
+ sleeping: false,
16959
+ launchedAt: null
16937
16960
  };
16938
16961
  target.stopWatchingActivity?.();
16939
16962
  target.stopWatchingActivity = null;
@@ -16958,7 +16981,9 @@ var TerminalRegistry = class extends EventEmitter6 {
16958
16981
  sessionId: launchedSessionId,
16959
16982
  alive: true,
16960
16983
  exitCode: null,
16961
- sleeping: false
16984
+ sleeping: false,
16985
+ // El mismo instante contra el que el hub mide lo que es de este proceso.
16986
+ launchedAt
16962
16987
  };
16963
16988
  this.watchActivity(entry);
16964
16989
  if (adapter !== null) {
@@ -17132,7 +17157,8 @@ var TerminalRegistry = class extends EventEmitter6 {
17132
17157
  createdAt: Date.now(),
17133
17158
  alive: false,
17134
17159
  exitCode: null,
17135
- sleeping: true
17160
+ sleeping: true,
17161
+ launchedAt: null
17136
17162
  };
17137
17163
  this.terminals.set(terminalId, {
17138
17164
  descriptor,
@@ -17281,7 +17307,7 @@ import { WebSocketServer } from "ws";
17281
17307
 
17282
17308
  // packages/server/src/directory-picker.ts
17283
17309
  import { randomUUID as randomUUID6 } from "node:crypto";
17284
- import { mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
17310
+ import { lstat, mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
17285
17311
  import { homedir as homedir11 } from "node:os";
17286
17312
  import path44 from "node:path";
17287
17313
  var MAX_ENTRIES = 500;
@@ -17296,6 +17322,16 @@ function isInsideProtected(target, dirs) {
17296
17322
  return resolved === protectedDir || resolved.startsWith(protectedDir + path44.sep);
17297
17323
  });
17298
17324
  }
17325
+ async function isListedDirectory(parent, entry, readLink = lstat) {
17326
+ if (entry.isDirectory()) return true;
17327
+ if (!entry.isSymbolicLink()) return false;
17328
+ try {
17329
+ const info = await readLink(path44.join(parent, entry.name));
17330
+ return info.isDirectory() && !info.isSymbolicLink();
17331
+ } catch {
17332
+ return false;
17333
+ }
17334
+ }
17299
17335
  async function listRoots() {
17300
17336
  const roots = [];
17301
17337
  const home = homedir11();
@@ -17441,7 +17477,8 @@ var DirectoryPickers = class {
17441
17477
  let truncated = false;
17442
17478
  try {
17443
17479
  const found = await readdir11(picker.current, { withFileTypes: true });
17444
- const dirs = found.filter((entry) => entry.isDirectory()).map((entry) => entry.name).filter((name) => !SKIPPED.has(name)).filter((name) => !isInsideProtected(path44.join(picker.current, name), this.protectedDirs)).sort((a, b) => a.localeCompare(b));
17480
+ const listed = await Promise.all(found.map((entry) => isListedDirectory(picker.current, entry)));
17481
+ const dirs = found.filter((_, index) => listed[index] === true).map((entry) => entry.name).filter((name) => !SKIPPED.has(name)).filter((name) => !isInsideProtected(path44.join(picker.current, name), this.protectedDirs)).sort((a, b) => a.localeCompare(b));
17445
17482
  truncated = dirs.length > MAX_ENTRIES;
17446
17483
  names = dirs.slice(0, MAX_ENTRIES);
17447
17484
  } catch {
@@ -18312,14 +18349,14 @@ import path49 from "node:path";
18312
18349
 
18313
18350
  // packages/server/src/vault/move.ts
18314
18351
  import { constants } from "node:fs";
18315
- import { copyFile as copyFile2, lstat, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
18352
+ import { copyFile as copyFile2, lstat as lstat2, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
18316
18353
  import path46 from "node:path";
18317
18354
  var MOVED_ENTRIES = ["vault.json", "sessions", "memory"];
18318
18355
  var OWN_TEMP_FILE = /\.\d+\.[0-9a-f]{12}\.tmp$/;
18319
18356
  async function copyTree(source, target, result) {
18320
18357
  let info;
18321
18358
  try {
18322
- info = await lstat(source);
18359
+ info = await lstat2(source);
18323
18360
  } catch {
18324
18361
  return;
18325
18362
  }
@@ -19795,15 +19832,6 @@ function attachTerminalSocket(options) {
19795
19832
  }
19796
19833
  return false;
19797
19834
  };
19798
- const draftEntriesOf = (descriptors) => {
19799
- const entries = [];
19800
- for (const descriptor of descriptors) {
19801
- const owner = draftOwnerOf(descriptor);
19802
- const draft = owner === null ? null : drafts.get(owner);
19803
- if (draft !== null) entries.push({ terminalId: descriptor.terminalId, draft });
19804
- }
19805
- return entries;
19806
- };
19807
19835
  const draftTabs = new DraftTabs();
19808
19836
  draftTabs.update(registry.list());
19809
19837
  const onRegistryChanged = () => {
@@ -19811,7 +19839,7 @@ function attachTerminalSocket(options) {
19811
19839
  broadcast({ type: "terminal.list", terminals, order: registry.getOrder() });
19812
19840
  const { appeared, moved } = draftTabs.update(terminals);
19813
19841
  for (const { from, to } of moved) drafts.move(from, to);
19814
- const entries = draftEntriesOf(appeared);
19842
+ const entries = draftEntriesOf(appeared, drafts).filter((entry) => !isEmptyComposerDraft(entry.draft));
19815
19843
  if (entries.length > 0) broadcast({ type: "composer.drafts", drafts: entries });
19816
19844
  };
19817
19845
  const onRegistryExit = (terminalId, exitCode, signal) => broadcast({ type: "terminal.exit", terminalId, exitCode, signal });
@@ -19834,11 +19862,11 @@ function attachTerminalSocket(options) {
19834
19862
  const onConversationPlans = (terminalId, plans) => broadcast({ type: "conversation.plans", terminalId, plans });
19835
19863
  const onConversationTurns = (terminalId, turns) => broadcast({ type: "conversation.turns", terminalId, turns });
19836
19864
  const onConversationParts = (terminalId, updates) => broadcast({ type: "conversation.parts", terminalId, updates });
19837
- const defaultsFor = async (terminalId) => {
19865
+ const defaultsFor = async (terminalId, sessionModel) => {
19838
19866
  const descriptor = registry.get(terminalId);
19839
19867
  const adapter = adapterOf(terminalId);
19840
19868
  if (descriptor === null || adapter === null) return NO_DEFAULTS;
19841
- return await adapter.defaults(descriptor.cwd) ?? NO_DEFAULTS;
19869
+ return await adapter.defaults(descriptor.cwd, sessionModel) ?? NO_DEFAULTS;
19842
19870
  };
19843
19871
  const pieceWriter = (socket, terminalId) => (piece) => writeToTerminal(socket, terminalId, piece);
19844
19872
  const dropTab = (terminalId) => {
@@ -19880,7 +19908,7 @@ function attachTerminalSocket(options) {
19880
19908
  const onConversationReset = (terminalId) => {
19881
19909
  const snapshot = conversations.getSnapshot(terminalId);
19882
19910
  if (snapshot === null) return;
19883
- void defaultsFor(terminalId).then((defaults) => {
19911
+ void defaultsFor(terminalId, snapshot.usage.lastModel).then((defaults) => {
19884
19912
  broadcast({
19885
19913
  type: "conversation.reset",
19886
19914
  terminalId,
@@ -20045,7 +20073,7 @@ function attachTerminalSocket(options) {
20045
20073
  send(socket, { type: "index.status", status: index.getStatus() });
20046
20074
  send(socket, { type: "index.projects", projects: index.getProjects(), replace: true });
20047
20075
  send(socket, { type: "notes.list", notes: notes.list() });
20048
- send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list()) });
20076
+ send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts) });
20049
20077
  send(socket, { type: "vault.status", status: vault.status() });
20050
20078
  if (deviceId === null) send(socket, { type: "remote.status", status: remote.status() });
20051
20079
  send(socket, { type: "settings.status", settings: appSettings.status() });
@@ -20089,8 +20117,15 @@ function attachTerminalSocket(options) {
20089
20117
  settled = true;
20090
20118
  send(socket, { type: "agent.submitted", terminalId, requestId: message.requestId, delivered });
20091
20119
  };
20092
- const submittedOwner = draftOwnerOf(registry.get(terminalId));
20120
+ const submittedTab = registry.get(terminalId);
20121
+ const submittedOwner = draftOwnerOf(submittedTab);
20093
20122
  if (submittedOwner !== null) drafts.delete(submittedOwner);
20123
+ if (submittedTab !== null) {
20124
+ broadcast({
20125
+ type: "composer.drafts",
20126
+ drafts: submittedOwner === null ? [{ terminalId, draft: { text: "", pasted: [] } }] : draftEntriesOf(registry.list(), drafts, submittedOwner)
20127
+ });
20128
+ }
20094
20129
  const files = message.files ?? [];
20095
20130
  if (files.length > MAX_FILES_PER_SUBMIT) {
20096
20131
  sendError(
@@ -20528,7 +20563,7 @@ function attachTerminalSocket(options) {
20528
20563
  hasMore: snapshot.hasMore,
20529
20564
  usage: snapshot.usage,
20530
20565
  permissionMode: snapshot.permissionMode,
20531
- defaults: await defaultsFor(message.terminalId),
20566
+ defaults: await defaultsFor(message.terminalId, snapshot.usage.lastModel),
20532
20567
  waitingFor: snapshot.waitingFor,
20533
20568
  openToolCall: conversations.isToolCallOpen(message.terminalId),
20534
20569
  subagents: conversations.getSubagents(message.terminalId)
@@ -20816,6 +20851,9 @@ function attachTerminalSocket(options) {
20816
20851
  if (owner === null) break;
20817
20852
  const outcome = drafts.save(owner, message.draft);
20818
20853
  debugLog("drafts", `${message.terminalId.slice(0, 8)}: ${outcome}`);
20854
+ const update = { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts, owner) };
20855
+ if (outcome === "unchanged") send(socket, update);
20856
+ else broadcast(update);
20819
20857
  break;
20820
20858
  }
20821
20859
  /*
@@ -1,4 +1,4 @@
1
- import{g as vt}from"./index-CrEDljyV.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const Z=v("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
1
+ import{g as vt}from"./index-zFKk_FJ_.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const Z=v("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
2
2
  https://github.com/highlightjs/highlight.js/issues/2277`),Q=s,G=T),L===void 0&&(L=!0);const ge={code:G,language:Q};Pe("before:highlight",ge);const Ne=ge.result?ge.result:Ie(ge.language,ge.code,L);return Ne.code=ge.code,Pe("after:highlight",Ne),Ne}function Ie(s,T,L,G){const Q=Object.create(null);function ge(g,m){return g.keywords[m]}function Ne(){if(!R.keywords){ne.addText(H);return}let g=0;R.keywordPatternRe.lastIndex=0;let m=R.keywordPatternRe.exec(H),I="";for(;m;){I+=H.substring(g,m.index);const F=pe.case_insensitive?m[0].toLowerCase():m[0],ae=ge(R,F);if(ae){const[me,wt]=ae;if(ne.addText(I),I="",Q[F]=(Q[F]||0)+1,Q[F]<=lt&&($e+=wt),me.startsWith("_"))I+=m[0];else{const Rt=pe.classNameAliases[me]||me;be(m[0],Rt)}}else I+=m[0];g=R.keywordPatternRe.lastIndex,m=R.keywordPatternRe.exec(H)}I+=H.substring(g),ne.addText(I)}function Ue(){if(H==="")return;let g=null;if(typeof R.subLanguage=="string"){if(!a[R.subLanguage]){ne.addText(H);return}g=Ie(R.subLanguage,H,!0,In[R.subLanguage]),In[R.subLanguage]=g._top}else g=rn(H,R.subLanguage.length?R.subLanguage:null);R.relevance>0&&($e+=g.relevance),ne.__addSublanguage(g._emitter,g.language)}function le(){R.subLanguage!=null?Ue():Ne(),H=""}function be(g,m){g!==""&&(ne.startScope(m),ne.addText(g),ne.endScope())}function Rn(g,m){let I=1;const F=m.length-1;for(;I<=F;){if(!g._emit[I]){I++;continue}const ae=pe.classNameAliases[g[I]]||g[I],me=m[I];ae?be(me,ae):(H=me,Ne(),H=""),I++}}function vn(g,m){return g.scope&&typeof g.scope=="string"&&ne.openNode(pe.classNameAliases[g.scope]||g.scope),g.beginScope&&(g.beginScope._wrap?(be(H,pe.classNameAliases[g.beginScope._wrap]||g.beginScope._wrap),H=""):g.beginScope._multi&&(Rn(g.beginScope,m),H="")),R=Object.create(g,{parent:{value:R}}),R}function Mn(g,m,I){let F=U(g.endRe,I);if(F){if(g["on:end"]){const ae=new t(g);g["on:end"](m,ae),ae.isMatchIgnored&&(F=!1)}if(F){for(;g.endsParent&&g.parent;)g=g.parent;return g}}if(g.endsWithParent)return Mn(g.parent,m,I)}function Tt(g){return R.matcher.regexIndex===0?(H+=g[0],1):(ln=!0,0)}function St(g){const m=g[0],I=g.rule,F=new t(I),ae=[I.__beforeBegin,I["on:begin"]];for(const me of ae)if(me&&(me(g,F),F.isMatchIgnored))return Tt(m);return I.skip?H+=m:(I.excludeBegin&&(H+=m),le(),!I.returnBegin&&!I.excludeBegin&&(H=m)),vn(I,g),I.returnBegin?0:m.length}function yt(g){const m=g[0],I=T.substring(g.index),F=Mn(R,g,I);if(!F)return Sn;const ae=R;R.endScope&&R.endScope._wrap?(le(),be(m,R.endScope._wrap)):R.endScope&&R.endScope._multi?(le(),Rn(R.endScope,g)):ae.skip?H+=m:(ae.returnEnd||ae.excludeEnd||(H+=m),le(),ae.excludeEnd&&(H=m));do R.scope&&ne.closeNode(),!R.skip&&!R.subLanguage&&($e+=R.relevance),R=R.parent;while(R!==F.parent);return F.starts&&vn(F.starts,g),ae.returnEnd?0:m.length}function Ot(){const g=[];for(let m=R;m!==pe;m=m.parent)m.scope&&g.unshift(m.scope);g.forEach(m=>ne.openNode(m))}let Fe={};function Cn(g,m){const I=m&&m[0];if(H+=g,I==null)return le(),0;if(Fe.type==="begin"&&m.type==="end"&&Fe.index===m.index&&I===""){if(H+=T.slice(m.index,m.index+1),!Z){const F=new Error(`0 width match regex (${s})`);throw F.languageName=s,F.badRule=Fe.rule,F}return 1}if(Fe=m,m.type==="begin")return St(m);if(m.type==="illegal"&&!L){const F=new Error('Illegal lexeme "'+I+'" for mode "'+(R.scope||"<unnamed>")+'"');throw F.mode=R,F}else if(m.type==="end"){const F=yt(m);if(F!==Sn)return F}if(m.type==="illegal"&&I==="")return m.index===T.length||(H+=`
3
3
  `),1;if(cn>1e5&&cn>m.index*3)throw new Error("potential infinite loop, way more iterations than matches");return H+=I,I.length}const pe=he(s);if(!pe)throw Se(q.replace("{}",s)),new Error('Unknown language: "'+s+'"');const At=rt(pe);let on="",R=G||At;const In={},ne=new p.__emitter(p);Ot();let H="",$e=0,ye=0,cn=0,ln=!1;try{if(pe.__emitTokens)pe.__emitTokens(T,ne);else{for(R.matcher.considerAll();;){cn++,ln?ln=!1:R.matcher.considerAll(),R.matcher.lastIndex=ye;const g=R.matcher.exec(T);if(!g)break;const m=T.substring(ye,g.index),I=Cn(m,g);ye=g.index+I}Cn(T.substring(ye))}return ne.finalize(),on=ne.toHTML(),{language:s,value:on,relevance:$e,illegal:!1,_emitter:ne,_top:R}}catch(g){if(g.message&&g.message.includes("Illegal"))return{language:s,value:tn(T),illegal:!0,relevance:0,_illegalBy:{message:g.message,index:ye,context:T.slice(ye-100,ye+100),mode:g.mode,resultSoFar:on},_emitter:ne};if(Z)return{language:s,value:tn(T),illegal:!1,relevance:0,errorRaised:g,_emitter:ne,_top:R};throw g}}function an(s){const T={value:tn(s),illegal:!1,relevance:0,_top:E,_emitter:new p.__emitter(p)};return T._emitter.addText(s),T}function rn(s,T){T=T||p.languages||Object.keys(a);const L=an(s),G=T.filter(he).filter(wn).map(le=>Ie(le,s,!1));G.unshift(L);const Q=G.sort((le,be)=>{if(le.relevance!==be.relevance)return be.relevance-le.relevance;if(le.language&&be.language){if(he(le.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===le.language)return-1}return 0}),[ge,Ne]=Q,Ue=ge;return Ue.secondBest=Ne,Ue}function dt(s,T,L){const G=T&&c[T]||L;s.classList.add("hljs"),s.classList.add(`language-${G}`)}function sn(s){let T=null;const L=J(s);if(O(L))return;if(Pe("before:highlightElement",{el:s,language:L}),s.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",s);return}if(s.children.length>0&&(p.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(s)),p.throwUnescapedHTML))throw new ct("One of your code blocks includes unescaped HTML.",s.innerHTML);T=s;const G=T.textContent,Q=L?X(G,{language:L,ignoreIllegals:!0}):rn(G);s.innerHTML=Q.value,s.dataset.highlighted="yes",dt(s,L,Q.language),s.result={language:Q.language,re:Q.relevance,relevance:Q.relevance},Q.secondBest&&(s.secondBest={language:Q.secondBest.language,relevance:Q.secondBest.relevance}),Pe("after:highlightElement",{el:s,result:Q,text:G})}function ut(s){p=Tn(p,s)}const gt=()=>{Be(),we("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function bt(){Be(),we("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let On=!1;function Be(){function s(){Be()}if(document.readyState==="loading"){On||window.addEventListener("DOMContentLoaded",s,!1),On=!0;return}document.querySelectorAll(p.cssSelector).forEach(sn)}function pt(s,T){let L=null;try{L=T(n)}catch(G){if(Se("Language definition for '{}' could not be registered.".replace("{}",s)),Z)Se(G);else throw G;L=E}L.name||(L.name=s),a[s]=L,L.rawDefinition=T.bind(null,n),L.aliases&&An(L.aliases,{languageName:s})}function _t(s){delete a[s];for(const T of Object.keys(c))c[T]===s&&delete c[T]}function Et(){return Object.keys(a)}function he(s){return s=(s||"").toLowerCase(),a[s]||a[c[s]]}function An(s,{languageName:T}){typeof s=="string"&&(s=[s]),s.forEach(L=>{c[L.toLowerCase()]=T})}function wn(s){const T=he(s);return T&&!T.disableAutodetect}function ft(s){s["before:highlightBlock"]&&!s["before:highlightElement"]&&(s["before:highlightElement"]=T=>{s["before:highlightBlock"](Object.assign({block:T.el},T))}),s["after:highlightBlock"]&&!s["after:highlightElement"]&&(s["after:highlightElement"]=T=>{s["after:highlightBlock"](Object.assign({block:T.el},T))})}function mt(s){ft(s),w.push(s)}function ht(s){const T=w.indexOf(s);T!==-1&&w.splice(T,1)}function Pe(s,T){const L=s;w.forEach(function(G){G[L]&&G[L](T)})}function Nt(s){return we("10.7.0","highlightBlock will be removed entirely in v12.0"),we("10.7.0","Please use highlightElement now."),sn(s)}Object.assign(n,{highlight:X,highlightAuto:rn,highlightAll:Be,highlightElement:sn,highlightBlock:Nt,configure:ut,initHighlighting:gt,initHighlightingOnLoad:bt,registerLanguage:pt,unregisterLanguage:_t,listLanguages:Et,getLanguage:he,registerAliases:An,autoDetection:wn,inherit:Tn,addPlugin:mt,removePlugin:ht}),n.debugMode=function(){Z=!1},n.safeMode=function(){Z=!0},n.versionString=ot,n.regex={concat:S,lookahead:f,either:v,optional:A,anyNumberOfTimes:N};for(const s in Oe)typeof Oe[s]=="object"&&e(Oe[s]);return Object.assign(n,Oe),n},Re=yn({});return Re.newInstance=()=>yn({}),dn=Re,Re.HighlightJS=Re,Re.default=Re,dn}var Ct=Mt();const bn=vt(Ct);function It(e){const t=e.regex,i={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const d={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},y=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,d]};d.contains.push(o);const _={match:/\\"/},u={className:"string",begin:/'/,end:/'/},b={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],N=e.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.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"],M=["true","false"],v={match:/(\/[a-z._-]+)+/},D=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],k=["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"],C=["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:M,built_in:[...D,...U,"set","shopt",...k,...C]},contains:[N,e.SHEBANG(),A,h,y,l,v,o,_,u,b,i]}}function kt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),_={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:o}]},b={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.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:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},h={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},f={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},b,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},N={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},e.inherit(b,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},A=[f,N],S={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},M=t.optional(d)+e.IDENT_RE+"\\s*\\(",v=12,k={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"},C=[...A,_,i,e.C_BLOCK_COMMENT_MODE,h,b],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:k,contains:C.concat([{begin:/\(/,end:/\)/,keywords:k,contains:C.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+l+"[\\*&\\s]+){1,"+v+"}"+M,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:k,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:k,relevance:0},{begin:M,returnBegin:!0,contains:[e.inherit(S,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,b,h,_,{begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,b,h,_]}]},_,i,e.C_BLOCK_COMMENT_MODE,...A]};return{name:"C",aliases:["h"],keywords:k,disableAutodetect:!0,illegal:"</",contains:[].concat(x,P,C,[...A,{begin:e.IDENT_RE+"::",keywords:k},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:N,strings:b,keywords:k}}}function xt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="(?!struct)("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.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:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},b={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},u,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},f={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},e.inherit(u,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},N=[h,f],A={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},S=t.optional(d)+e.IDENT_RE+"\\s*\\(",M=12,v=["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"],D=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["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"],P={type:D,keyword:v,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},W={className:"function.dispatch",relevance:0,keywords:{_hint:k},begin:t.concat(/\b/,`(?!${v.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},$=[W,...N,o,i,e.C_BLOCK_COMMENT_MODE,b,u],te={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:P,contains:$.concat([{begin:/\(/,end:/\)/,keywords:P,contains:$.concat(["self"]),relevance:0}]),relevance:0},ce={className:"function",begin:"("+l+"[\\*&\\s]+){1,"+M+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:P,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:P,relevance:0},{begin:S,returnBegin:!0,contains:[A],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,b]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,u,b,o,{begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,u,b,o]}]},o,i,e.C_BLOCK_COMMENT_MODE,...N]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:P,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(te,ce,W,$,[...N,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:P,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:P},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Dt(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],i=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],d=["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"],y=["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"],l={keyword:d.concat(y),built_in:t,literal:r},o=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),_="\\d(_*\\d)*",u="([uU][lL]?|[lL][uU]?)?",h={className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+u},{begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+u},{begin:"(-?)(\\b"+_+"(\\.("+_+")?)?|\\."+_+")([eE][-+]?"+_+")?"+"([fFdDmM]|[uU][lL]?|[lL][uU]?)?"}],relevance:0},f={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},N={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},A=e.inherit(N,{illegal:/\n/}),S={className:"subst",begin:/\{/,end:/\}/,keywords:l},M=e.inherit(S,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,M]},D={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},S]},U=e.inherit(D,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},M]});S.contains=[D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.C_BLOCK_COMMENT_MODE],M.contains=[U,v,A,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const k={variants:[f,D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},o]},x=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",P={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:l,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.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"},o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,C,e.C_LINE_COMMENT_MODE,e.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:"("+x+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:l,contains:[{beginKeywords:i.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,relevance:0,contains:[k,h,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},P]}}const Lt=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Bt=["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"],Pt=["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"],Ut=[...Bt,...Pt],Ft=["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(),$t=["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(),zt=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kt=["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","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","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","unicode-range","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 Gt(e){const t=e.regex,i=Lt(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},d="and or not only",y=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",o=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,r,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+$t.join("|")+")"},{begin:":(:)?("+zt.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kt.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:y},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Ft.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ut.join("|")+")\\b"}]}}function Ht(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:"</"}}function Wt(e){const y={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:y,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:y,illegal:/["']/}]}]}}function Yt(e){const t=e.regex,i={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const d={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},y={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},o={begin:/\[/,end:/\]/,contains:[r,y,d,l,i,"self"],relevance:0},_=/[A-Za-z0-9_-]+/,u=/"(\\"|[^"])*"/,b=/'[^']*'/,h=t.either(_,u,b),f=t.concat(h,"(\\s*\\.\\s*",h,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:f,className:"attr",starts:{end:/$/,contains:[r,o,y,d,l,i]}}]}}var ve="[0-9](_*[0-9])*",ze=`\\.(${ve})`,Ke="[0-9a-fA-F](_*[0-9a-fA-F])*",xn={className:"number",variants:[{begin:`(\\b(${ve})((${ze})|\\.)?|(${ze}))[eE][+-]?(${ve})[fFdD]?\\b`},{begin:`\\b(${ve})((${ze})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ze})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{begin:`\\b0[xX]((${Ke})\\.?|(${Ke})?\\.(${Ke}))[pP][+-]?(${ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ke})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Un(e,t,i){return i===-1?"":e.replace(t,r=>Un(e,t,i-1))}function Zt(e){const t=e.regex,i="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r="(?:(?:\\s*\\[\\s*])+)?",d=i+"<@@@>"+r,l="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+d+")?")+"|"+d+")",o=Un("(?:\\s*<\\s*"+l+"(?:\\s*,\\s*"+l+")*\\s*>)?",/<@@@>/g,2),f={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:"@"+i,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},A={className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:f,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[i,t.concat(o,r,/\s+/),i,r,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,i],className:{1:"keyword",3:"title.class"},contains:[A,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[i,t.concat(o,r,/\s+/),i,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:f,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,xn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},xn,N]}}const Dn="[A-Za-z$_][0-9A-Za-z$_]*",qt=["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"],Xt=["true","false","null","undefined","NaN","Infinity"],Fn=["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"],$n=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Vt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Qt=[].concat(zn,Fn,$n);function Jt(e){const t=e.regex,i=(B,{after:j})=>{const oe="</"+B[0].slice(1);return B.input.indexOf(oe,j)!==-1},r=Dn,d={begin:"<>",end:"</>"},y=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(B,j)=>{const oe=B[0].length+B.index,ie=B.input[oe];if(ie==="<"||ie===","){j.ignoreMatch();return}ie===">"&&(i(B,{after:oe})||j.ignoreMatch());let ee;const fe=B.input.substring(oe);if(ee=fe.match(/^\s*=/)){j.ignoreMatch();return}if((ee=fe.match(/^\s+extends\s+/))&&ee.index===0){j.ignoreMatch();return}}},o={$pattern:Dn,keyword:qt,literal:Xt,built_in:Qt,"variable.language":Vt},_="[0-9](_?[0-9])*",u=`\\.(${_})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${b})((${u})|\\.)?|(${u}))[eE][+-]?(${_})\\b`},{begin:`\\b(${b})\\b((${u})\\b|\\.)?|(${u})\\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},f={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},N={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"css"}},S={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"graphql"}},M={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},D={className:"comment",variants:[e.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:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},U=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,{match:/\$\d+/},h];f.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const k=[].concat(D,f.contains),C=k.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(k)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:C},P={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},W={relevance:0,match:t.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:{_:[...Fn,...$n]}},$={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},te={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ce={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(B){return t.concat("(?!",B.join("|"),")")}const ue={match:t.concat(/\b/,de([...zn,"super","import","await"].map(B=>`${B}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",Ee={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:W},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),$,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,D,{match:/\$\d+/},h,W,{scope:"attr",match:r+t.lookahead(":"),relevance:0},Ee,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[D,e.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:d.begin,end:d.end},{match:y},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},te,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},ue,ce,P,V,{match:/\$[(.]/}]}}const jt="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",ei={scope:"number",match:jt,relevance:0};function ni(e){const t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],d={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:r},contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,ei,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Me="[0-9](_*[0-9])*",Ge=`\\.(${Me})`,He="[0-9a-fA-F](_*[0-9a-fA-F])*",ti={className:"number",variants:[{begin:`(\\b(${Me})((${Ge})|\\.)?|(${Ge}))[eE][+-]?(${Me})[fFdD]?\\b`},{begin:`\\b(${Me})((${Ge})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ge})[fFdD]?\\b`},{begin:`\\b(${Me})[fFdD]\\b`},{begin:`\\b0[xX]((${He})\\.?|(${He})?\\.(${He}))[pP][+-]?(${Me})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${He})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ii(e){const t={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"},i={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},d={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},y={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},l={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[y,d]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,y,d]}]};d.contains.push(l);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},_={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(l,{className:"string"}),"self"]}]},u=ti,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},f=h;return f.variants[1].contains=[h],h.variants[1].contains=[f],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,i,r,o,_,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,o,_,l,e.C_NUMBER_MODE]},b]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,_]},l,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
4
4
  `},u]}}function ai(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t,i]},d={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},y={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},l={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,i,r,d,y,l]}}function ri(e){const t=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},d={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}]},y={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o=/[A-Za-z][A-Za-z0-9+.-]*/,_={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,o,/:\/\/.*?\)/),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}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(u,{contains:[]}),f=e.inherit(b,{contains:[]});u.contains.push(f),b.contains.push(h);let N=[i,_];return[u,b,h,f].forEach(v=>{v.contains=v.contains.concat(N)}),N=N.concat(u,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:N},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:N}]}]},i,y,r,u,b,{className:"quote",begin:"^>\\s+",contains:N,end:"$"},d,_,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function si(e){const t=e.regex,i=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,i),d=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,i),y=t.concat(/[A-Z]+/,i),l={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},_={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},u=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(_)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(_),"on:begin":(Y,V)=>{V.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,V)=>{V.data._beginMatch!==Y[1]&&V.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),N=`[