(function(){"use strict";try{if(typeof document!="undefined"){var o=document.createElement("style");o.appendChild(document.createTextNode(".code-diff-view[theme=light]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #1F2328;--color-diff-blob-addition-fg: #1F2328;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #abf2bc;--color-diff-blob-deletion-num-text: #1F2328;--color-diff-blob-deletion-fg: #1F2328;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #ffebe9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #656d76;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(31,35,40,.15);--color-diffstat-addition-border: rgba(31,35,40,.15);--color-diffstat-addition-bg: #1f883d;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #6639ba;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #1F2328;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #656d76;--color-codemirror-cursor: #1F2328;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #1F2328;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #1f883d;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(31,35,40,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #d4a72c;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-btn-bg: #1b1f23;--color-mktg-btn-shadow-outline: rgb(0 0 0 / 15%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(0 0 0 / 15%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 3px 2px rgba(0, 0, 0, .07), 0 7px 5px rgba(0, 0, 0, .04), 0 12px 10px rgba(0, 0, 0, .03), 0 22px 18px rgba(0, 0, 0, .03), 0 42px 33px rgba(0, 0, 0, .02), 0 100px 80px rgba(0, 0, 0, .02);--color-mktg-btn-shadow-hover-muted: rgb(0 0 0 / 70%) 0 0 0 2px inset;--color-control-border-color-emphasis: #858F99;--color-avatar-bg: #ffffff;--color-avatar-border: rgba(31,35,40,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: 0 0 0 2px rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(31,35,40,.12), 0 8px 24px rgba(66,74,83,.12);--color-overlay-backdrop: rgba(140,149,159,.2);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-divider: #57606a;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(31,35,40,.15);--color-btn-shadow: 0 1px 0 rgba(31,35,40,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(31,35,40,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(31,35,40,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-counter-bg: rgba(31,35,40,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #1f883d;--color-btn-primary-border: rgba(31,35,40,.15);--color-btn-primary-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #1a7f37;--color-btn-primary-hover-border: rgba(31,35,40,.15);--color-btn-primary-selected-bg: hsla(137,66%,28%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(31,35,40,.15);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(0,45,17,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(31,35,40,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(31,35,40,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-counter-bg: #0969da1a;--color-btn-outline-counter-fg: #0550ae;--color-btn-outline-hover-counter-fg: #ffffff;--color-btn-outline-disabled-counter-fg: rgba(9,105,218,.5);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(31,35,40,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(31,35,40,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-counter-fg: #a40e26;--color-btn-danger-hover-counter-fg: #ffffff;--color-btn-danger-disabled-counter-fg: rgba(207,34,46,.5);--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-action-list-item-inline-divider: rgba(208,215,222,.48);--color-action-list-item-default-hover-bg: rgba(208,215,222,.32);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(208,215,222,.48);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(208,215,222,.24);--color-action-list-item-danger-hover-bg: rgba(255,235,233,.64);--color-action-list-item-danger-active-bg: #ffebe9;--color-action-list-item-danger-hover-text: #d1242f;--color-switch-track-bg: #eaeef2;--color-switch-track-hover-bg: hsla(210,24%,90%,1);--color-switch-track-active-bg: hsla(210,24%,88%,1);--color-switch-track-disabled-bg: #8c959f;--color-switch-track-fg: #656d76;--color-switch-track-disabled-fg: #ffffff;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: #0969da;--color-switch-track-checked-hover-bg: #0860CA;--color-switch-track-checked-active-bg: #0757BA;--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #ffffff;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #ffffff;--color-switch-knob-disabled-bg: #f6f8fa;--color-switch-knob-border: #858F99;--color-switch-knob-checked-bg: #ffffff;--color-switch-knob-checked-disabled-bg: #f6f8fa;--color-switch-knob-checked-border: #0969da;--color-segmented-control-bg: #eaeef2;--color-segmented-control-button-bg: #ffffff;--color-segmented-control-button-hover-bg: rgba(175,184,193,.2);--color-segmented-control-button-active-bg: rgba(175,184,193,.4);--color-segmented-control-button-selected-border: #8c959f;--color-tree-view-item-chevron-hover-bg: rgba(208,215,222,.32);--color-tree-view-item-directory-fill: #54aeff;--color-fg-default: #1F2328;--color-fg-muted: #656d76;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(31,35,40,.15);--color-shadow-small: 0 1px 0 rgba(31,35,40,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #1f883d;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #9a6700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #d1242f;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #ffebe9;--color-open-fg: #1a7f37;--color-open-emphasis: #1f883d;--color-open-muted: rgba(74,194,107,.4);--color-open-subtle: #dafbe1;--color-closed-fg: #d1242f;--color-closed-emphasis: #cf222e;--color-closed-muted: rgba(255,129,130,.4);--color-closed-subtle: #ffebe9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-fg-disabled: #8c959f;--color-primer-canvas-backdrop: rgba(31,35,40,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #fd8c73;--color-primer-border-contrast: rgba(31,35,40,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-scale-black: #1F2328;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #ffebe9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #fff0eb;--color-scale-coral-1: #ffd6cc;--color-scale-coral-2: #ffb4a1;--color-scale-coral-3: #fd8c73;--color-scale-coral-4: #ec6547;--color-scale-coral-5: #c4432b;--color-scale-coral-6: #9e2f1c;--color-scale-coral-7: #801f0f;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901}.code-diff-view[theme=light] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=light] code.hljs{padding:3px 5px}.code-diff-view[theme=light] .hljs{color:#24292e;background:#ffffff}.code-diff-view[theme=light] .hljs-doctag,.code-diff-view[theme=light] .hljs-keyword,.code-diff-view[theme=light] .hljs-meta .hljs-keyword,.code-diff-view[theme=light] .hljs-template-tag,.code-diff-view[theme=light] .hljs-template-variable,.code-diff-view[theme=light] .hljs-type,.code-diff-view[theme=light] .hljs-variable.language_{color:#d73a49}.code-diff-view[theme=light] .hljs-title,.code-diff-view[theme=light] .hljs-title.class_,.code-diff-view[theme=light] .hljs-title.class_.inherited__,.code-diff-view[theme=light] .hljs-title.function_{color:#6f42c1}.code-diff-view[theme=light] .hljs-attr,.code-diff-view[theme=light] .hljs-attribute,.code-diff-view[theme=light] .hljs-literal,.code-diff-view[theme=light] .hljs-meta,.code-diff-view[theme=light] .hljs-number,.code-diff-view[theme=light] .hljs-operator,.code-diff-view[theme=light] .hljs-variable,.code-diff-view[theme=light] .hljs-selector-attr,.code-diff-view[theme=light] .hljs-selector-class,.code-diff-view[theme=light] .hljs-selector-id{color:#005cc5}.code-diff-view[theme=light] .hljs-regexp,.code-diff-view[theme=light] .hljs-string,.code-diff-view[theme=light] .hljs-meta .hljs-string{color:#032f62}.code-diff-view[theme=light] .hljs-built_in,.code-diff-view[theme=light] .hljs-symbol{color:#e36209}.code-diff-view[theme=light] .hljs-comment,.code-diff-view[theme=light] .hljs-code,.code-diff-view[theme=light] .hljs-formula{color:#6a737d}.code-diff-view[theme=light] .hljs-name,.code-diff-view[theme=light] .hljs-quote,.code-diff-view[theme=light] .hljs-selector-tag,.code-diff-view[theme=light] .hljs-selector-pseudo{color:#22863a}.code-diff-view[theme=light] .hljs-subst{color:#24292e}.code-diff-view[theme=light] .hljs-section{color:#005cc5;font-weight:700}.code-diff-view[theme=light] .hljs-bullet{color:#735c0f}.code-diff-view[theme=light] .hljs-emphasis{color:#24292e;font-style:italic}.code-diff-view[theme=light] .hljs-strong{color:#24292e;font-weight:700}.code-diff-view[theme=light] .hljs-addition{color:#22863a;background-color:#f0fff4}.code-diff-view[theme=light] .hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-diff-view[theme=dark]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #e6edf3;--color-diff-blob-addition-fg: #e6edf3;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #e6edf3;--color-diff-blob-deletion-fg: #e6edf3;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #7d8590;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #e6edf3;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #7d8590;--color-codemirror-cursor: #e6edf3;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #e6edf3;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #e6edf3;--color-checks-text-secondary: #7d8590;--color-checks-text-link: #2f81f7;--color-checks-btn-icon: #7d8590;--color-checks-btn-hover-icon: #e6edf3;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #7d8590;--color-checks-input-placeholder-text: #6e7681;--color-checks-input-focus-text: #e6edf3;--color-checks-input-bg: #161b22;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #e6edf3;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #e6edf3;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #e6edf3;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #7d8590;--color-checks-header-label-open-text: #e6edf3;--color-checks-header-border: #21262d;--color-checks-header-icon: #7d8590;--color-checks-line-text: #7d8590;--color-checks-line-num-text: #6e7681;--color-checks-line-timestamp-text: #6e7681;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.1);--color-checks-line-selected-num-text: #2f81f7;--color-checks-line-dt-fm-text: #ffffff;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #7d8590;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #7d8590;--color-checks-logline-num-text: #6e7681;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #7d8590;--color-checks-logline-error-num-text: #6e7681;--color-checks-logline-error-bg: rgba(248,81,73,.1);--color-checks-logline-warning-text: #7d8590;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #2f81f7;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-btn-bg: #f6f8fa;--color-mktg-btn-shadow-outline: rgb(255 255 255 / 25%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(255 255 255 / 25%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 4px 7px rgba(0, 0, 0, .15), 0 100px 80px rgba(255, 255, 255, .02), 0 42px 33px rgba(255, 255, 255, .024), 0 22px 18px rgba(255, 255, 255, .028), 0 12px 10px rgba(255, 255, 255, .034), 0 7px 5px rgba(255, 255, 255, .04), 0 3px 2px rgba(255, 255, 255, .07);--color-mktg-btn-shadow-hover-muted: rgb(255 255 255) 0 0 0 2px inset;--color-control-border-color-emphasis: #606771;--color-avatar-bg: rgba(255,255,255,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: 0 0 0 2px #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-overlay-backdrop: rgba(22,27,34,.4);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #161b22;--color-header-divider: #8b949e;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #ffffff;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(255,255,255,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-icon: #ffffff;--color-btn-primary-counter-bg: rgba(4,38,15,.2);--color-btn-outline-text: #388bfd;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(5,29,77,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-counter-bg: rgba(5,29,77,.2);--color-btn-outline-hover-counter-fg: #58a6ff;--color-btn-outline-disabled-counter-fg: rgba(47,129,247,.5);--color-btn-outline-counter-fg: #388bfd;--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-counter-bg: rgba(73,2,2,.2);--color-btn-danger-icon: #f85149;--color-btn-danger-counter-fg: #f85149;--color-btn-danger-disabled-counter-fg: rgba(248,81,73,.5);--color-btn-danger-hover-counter-fg: #ffffff;--color-underlinenav-icon: #6e7681;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-action-list-item-inline-divider: rgba(48,54,61,.48);--color-action-list-item-default-hover-bg: rgba(177,186,196,.12);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(177,186,196,.2);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(177,186,196,.08);--color-action-list-item-danger-hover-bg: rgba(248,81,73,.16);--color-action-list-item-danger-active-bg: rgba(248,81,73,.24);--color-action-list-item-danger-hover-text: #ff7b72;--color-switch-track-bg: rgba(110,118,129,.1);--color-switch-track-hover-bg: hsla(215,8%,72%,.1);--color-switch-track-active-bg: rgba(110,118,129,.4);--color-switch-track-disabled-bg: #21262d;--color-switch-track-fg: #7d8590;--color-switch-track-disabled-fg: #010409;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: rgba(31,111,235,.35);--color-switch-track-checked-hover-bg: rgba(31,111,235,.5);--color-switch-track-checked-active-bg: rgba(31,111,235,.65);--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #010409;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #0d1117;--color-switch-knob-border: #606771;--color-switch-knob-disabled-bg: #161b22;--color-switch-knob-checked-bg: #0d1117;--color-switch-knob-checked-disabled-bg: #161b22;--color-switch-knob-checked-border: rgba(31,111,235,.35);--color-segmented-control-bg: rgba(110,118,129,.1);--color-segmented-control-button-bg: #0d1117;--color-segmented-control-button-hover-bg: #30363d;--color-segmented-control-button-active-bg: #21262d;--color-segmented-control-button-selected-border: #6e7681;--color-tree-view-item-chevron-hover-bg: rgba(177,186,196,.12);--color-tree-view-item-directory-fill: #7d8590;--color-fg-default: #e6edf3;--color-fg-muted: #7d8590;--color-fg-subtle: #6e7681;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #2f81f7;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.1);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.1);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.1);--color-open-fg: #3fb950;--color-open-emphasis: #238636;--color-open-muted: rgba(46,160,67,.4);--color-open-subtle: rgba(46,160,67,.15);--color-closed-fg: #f85149;--color-closed-emphasis: #da3633;--color-closed-muted: rgba(248,81,73,.4);--color-closed-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.1);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.1);--color-primer-fg-disabled: #484f58;--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #f78166;--color-primer-border-contrast: rgba(255,255,255,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-scale-black: #010409;--color-scale-white: #ffffff;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #ffddd2;--color-scale-coral-1: #ffc2b2;--color-scale-coral-2: #ffa28b;--color-scale-coral-3: #f78166;--color-scale-coral-4: #ea6045;--color-scale-coral-5: #cf462d;--color-scale-coral-6: #ac3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640d04;--color-scale-coral-9: #460701}.code-diff-view[theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=dark] code.hljs{padding:3px 5px}.code-diff-view[theme=dark] .hljs{color:#c9d1d9;background:#0d1117}.code-diff-view[theme=dark] .hljs-doctag,.code-diff-view[theme=dark] .hljs-keyword,.code-diff-view[theme=dark] .hljs-meta .hljs-keyword,.code-diff-view[theme=dark] .hljs-template-tag,.code-diff-view[theme=dark] .hljs-template-variable,.code-diff-view[theme=dark] .hljs-type,.code-diff-view[theme=dark] .hljs-variable.language_{color:#ff7b72}.code-diff-view[theme=dark] .hljs-title,.code-diff-view[theme=dark] .hljs-title.class_,.code-diff-view[theme=dark] .hljs-title.class_.inherited__,.code-diff-view[theme=dark] .hljs-title.function_{color:#d2a8ff}.code-diff-view[theme=dark] .hljs-attr,.code-diff-view[theme=dark] .hljs-attribute,.code-diff-view[theme=dark] .hljs-literal,.code-diff-view[theme=dark] .hljs-meta,.code-diff-view[theme=dark] .hljs-number,.code-diff-view[theme=dark] .hljs-operator,.code-diff-view[theme=dark] .hljs-variable,.code-diff-view[theme=dark] .hljs-selector-attr,.code-diff-view[theme=dark] .hljs-selector-class,.code-diff-view[theme=dark] .hljs-selector-id{color:#79c0ff}.code-diff-view[theme=dark] .hljs-regexp,.code-diff-view[theme=dark] .hljs-string,.code-diff-view[theme=dark] .hljs-meta .hljs-string{color:#a5d6ff}.code-diff-view[theme=dark] .hljs-built_in,.code-diff-view[theme=dark] .hljs-symbol{color:#ffa657}.code-diff-view[theme=dark] .hljs-comment,.code-diff-view[theme=dark] .hljs-code,.code-diff-view[theme=dark] .hljs-formula{color:#8b949e}.code-diff-view[theme=dark] .hljs-name,.code-diff-view[theme=dark] .hljs-quote,.code-diff-view[theme=dark] .hljs-selector-tag,.code-diff-view[theme=dark] .hljs-selector-pseudo{color:#7ee787}.code-diff-view[theme=dark] .hljs-subst{color:#c9d1d9}.code-diff-view[theme=dark] .hljs-section{color:#1f6feb;font-weight:700}.code-diff-view[theme=dark] .hljs-bullet{color:#f2cc60}.code-diff-view[theme=dark] .hljs-emphasis{color:#c9d1d9;font-style:italic}.code-diff-view[theme=dark] .hljs-strong{color:#c9d1d9;font-weight:700}.code-diff-view[theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}.code-diff-view[theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}.code-diff-view{position:relative;margin-top:16px;margin-bottom:16px;border:1px solid var(--color-border-default, #ddd);border-radius:6px;overflow-y:auto}.code-diff-view *{position:static;box-sizing:border-box}.code-diff-view .file-header{position:sticky;top:0;z-index:1;background-color:var(--color-canvas-subtle);border-bottom:1px solid var(--color-border-default);padding:8px 16px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.code-diff-view .file-header .file-info{display:flex;justify-content:space-between;align-items:center;margin-left:8px;height:24px}.code-diff-view .file-header .file-info .info-left{color:var(--color-fg-default)}.code-diff-view .file-header .file-info .info-right{display:flex;justify-content:space-between;align-items:center;width:50%}.code-diff-view .file-header .file-info .diff-stat{display:inline-flex;align-items:center;gap:8px}.code-diff-view .file-header .file-info .diff-stat .diff-stat-added{color:var(--color-diffstat-addition-bg)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-deleted{color:var(--color-danger-emphasis)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-ignored{color:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar{margin-left:auto;margin-right:1rem}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button{background-color:transparent;color:var(--color-fg-subtle);border:none}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button svg{fill:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button:hover{background-color:var(--color-btn-outline-hover-border)}.code-diff-view table{border-spacing:0}.code-diff-view .diff-table{width:100%}.code-diff-view .diff-table .blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:20px;color:var(--color-fg-subtle);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.code-diff-view .diff-table .blob-num-deletion{color:var(--color-diff-blob-deletion-num-text);background-color:var(--color-diff-blob-deletion-num-bg);border-color:var(--color-danger-emphasis)}.code-diff-view .diff-table .blob-num-addition{color:var(--color-diff-blob-addition-num-text);background-color:var(--color-diff-blob-addition-num-bg);border-color:var(--color-success-emphasis)}.code-diff-view .diff-table .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.code-diff-view .diff-table .blob-code .blob-code-inner{display:table-cell;overflow:visible;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--color-fg-default);word-wrap:anywhere;white-space:pre-wrap}.code-diff-view .diff-table .blob-code-deletion{background-color:var(--color-diff-blob-deletion-line-bg);outline:1px dashed transparent}.code-diff-view .diff-table .blob-code-deletion .x{color:var(--color-diff-blob-deletion-fg);background-color:var(--color-diff-blob-deletion-word-bg)}.code-diff-view .diff-table .blob-code-addition{background-color:var(--color-diff-blob-addition-line-bg);outline:1px dotted transparent}.code-diff-view .diff-table .blob-code-addition .x{color:var(--color-diff-blob-addition-fg);background-color:var(--color-diff-blob-addition-word-bg)}.code-diff-view .diff-table .current-diff{border:1px solid var(--color-border-muted)}.code-diff-view .diff-table .blob-code-context,.code-diff-view .diff-table .blob-code-addition,.code-diff-view .diff-table .blob-code-deletion{padding-left:22px!important}.code-diff-view .diff-table .blob-code-marker:before{position:absolute;top:1px;left:8px;padding-right:8px;content:attr(data-code-marker)}.code-diff-view .diff-table .blob-num-hunk{background-color:var(--color-diff-blob-hunk-num-bg)}.code-diff-view .diff-table .blob-code-hunk{background-color:var(--color-accent-subtle)}.code-diff-view .file-diff-split{table-layout:fixed}.code-diff-view .file-diff-split .blob-code+.blob-num{border-left:1px solid var(--color-border-muted)}.code-diff-view .file-diff-split .no-select{user-select:none}.code-diff-view .empty-cell{cursor:default;background-color:var(--color-neutral-subtle);border-right-color:var(--color-border-muted)}")),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); import { defineComponent as Ae, openBlock as G, createElementBlock as W, createElementVNode as B, normalizeClass as me, unref as F, toDisplayString as ee, createCommentVNode as ve, Fragment as pe, renderList as Ke, createBlock as Ie, computed as Ee, ref as nn, watch as Wn, normalizeStyle as Qn, createVNode as De, renderSlot as tn } from "vue"; function ae() { } ae.prototype = { diff: function(r, l) { var f = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, g = f.callback; typeof f == "function" && (g = f, f = {}), this.options = f; var n = this; function t(p) { return g ? (setTimeout(function() { g(void 0, p); }, 0), !0) : p; } r = this.castInput(r), l = this.castInput(l), r = this.removeEmpty(this.tokenize(r)), l = this.removeEmpty(this.tokenize(l)); var i = l.length, s = r.length, a = 1, o = i + s; f.maxEditLength && (o = Math.min(o, f.maxEditLength)); var c = [{ newPos: -1, components: [] }], u = this.extractCommon(c[0], l, r, 0); if (c[0].newPos + 1 >= i && u + 1 >= s) return t([{ value: this.join(l), count: l.length }]); function d() { for (var p = -1 * a; p <= a; p += 2) { var _ = void 0, E = c[p - 1], m = c[p + 1], v = (m ? m.newPos : 0) - p; E && (c[p - 1] = void 0); var A = E && E.newPos + 1 < i, D = m && 0 <= v && v < s; if (!A && !D) { c[p] = void 0; continue; } if (!A || D && E.newPos < m.newPos ? (_ = Yn(m), n.pushComponent(_.components, void 0, !0)) : (_ = E, _.newPos++, n.pushComponent(_.components, !0, void 0)), v = n.extractCommon(_, l, r, p), _.newPos + 1 >= i && v + 1 >= s) return t(Zn(n, _.components, l, r, n.useLongestToken)); c[p] = _; } a++; } if (g) (function p() { setTimeout(function() { if (a > o) return g(); d() || p(); }, 0); })(); else for (; a <= o; ) { var h = d(); if (h) return h; } }, pushComponent: function(r, l, f) { var g = r[r.length - 1]; g && g.added === l && g.removed === f ? r[r.length - 1] = { count: g.count + 1, added: l, removed: f } : r.push({ count: 1, added: l, removed: f }); }, extractCommon: function(r, l, f, g) { for (var n = l.length, t = f.length, i = r.newPos, s = i - g, a = 0; i + 1 < n && s + 1 < t && this.equals(l[i + 1], f[s + 1]); ) i++, s++, a++; return a && r.components.push({ count: a }), r.newPos = i, s; }, equals: function(r, l) { return this.options.comparator ? this.options.comparator(r, l) : r === l || this.options.ignoreCase && r.toLowerCase() === l.toLowerCase(); }, removeEmpty: function(r) { for (var l = [], f = 0; f < r.length; f++) r[f] && l.push(r[f]); return l; }, castInput: function(r) { return r; }, tokenize: function(r) { return r.split(""); }, join: function(r) { return r.join(""); } }; function Zn(e, r, l, f, g) { for (var n = 0, t = r.length, i = 0, s = 0; n < t; n++) { var a = r[n]; if (a.removed) { if (a.value = e.join(f.slice(s, s + a.count)), s += a.count, n && r[n - 1].added) { var c = r[n - 1]; r[n - 1] = r[n], r[n] = c; } } else { if (!a.added && g) { var o = l.slice(i, i + a.count); o = o.map(function(d, h) { var p = f[s + h]; return p.length > d.length ? p : d; }), a.value = e.join(o); } else a.value = e.join(l.slice(i, i + a.count)); i += a.count, a.added || (s += a.count); } } var u = r[t - 1]; return t > 1 && typeof u.value == "string" && (u.added || u.removed) && e.equals("", u.value) && (r[t - 2].value += u.value, r.pop()), r; } function Yn(e) { return { newPos: e.newPos, components: e.components.slice(0) }; } var Xn = new ae(); function Vn(e, r, l) { return Xn.diff(e, r, l); } function jn(e, r) { if (typeof e == "function") r.callback = e; else if (e) for (var l in e) e.hasOwnProperty(l) && (r[l] = e[l]); return r; } var rn = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, sn = /\S/, We = new ae(); We.equals = function(e, r) { return this.options.ignoreCase && (e = e.toLowerCase(), r = r.toLowerCase()), e === r || this.options.ignoreWhitespace && !sn.test(e) && !sn.test(r); }; We.tokenize = function(e) { for (var r = e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/), l = 0; l < r.length - 1; l++) !r[l + 1] && r[l + 2] && rn.test(r[l]) && rn.test(r[l + 2]) && (r[l] += r[l + 2], r.splice(l + 1, 2), l--); return r; }; function qn(e, r, l) { return l = jn(l, { ignoreWhitespace: !0 }), We.diff(e, r, l); } var bn = new ae(); bn.tokenize = function(e) { var r = [], l = e.split(/(\n|\r\n)/); l[l.length - 1] || l.pop(); for (var f = 0; f < l.length; f++) { var g = l[f]; f % 2 && !this.options.newlineIsToken ? r[r.length - 1] += g : (this.options.ignoreWhitespace && (g = g.trim()), r.push(g)); } return r; }; var Jn = new ae(); Jn.tokenize = function(e) { return e.split(/(\S.+?[.!?])(?=\s+|$)/); }; var et = new ae(); et.tokenize = function(e) { return e.split(/([{}:;,]|\s+)/); }; function Ce(e) { "@babel/helpers - typeof"; return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Ce = function(r) { return typeof r; } : Ce = function(r) { return r && typeof Symbol == "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r; }, Ce(e); } var nt = Object.prototype.toString, we = new ae(); we.useLongestToken = !0; we.tokenize = bn.tokenize; we.castInput = function(e) { var r = this.options, l = r.undefinedReplacement, f = r.stringifyReplacer, g = f === void 0 ? function(n, t) { return typeof t == "undefined" ? l : t; } : f; return typeof e == "string" ? e : JSON.stringify(xe(e, null, null, g), g, " "); }; we.equals = function(e, r) { return ae.prototype.equals.call(we, e.replace(/,([\r\n])/g, "$1"), r.replace(/,([\r\n])/g, "$1")); }; function xe(e, r, l, f, g) { r = r || [], l = l || [], f && (e = f(g, e)); var n; for (n = 0; n < r.length; n += 1) if (r[n] === e) return l[n]; var t; if (nt.call(e) === "[object Array]") { for (r.push(e), t = new Array(e.length), l.push(t), n = 0; n < e.length; n += 1) t[n] = xe(e[n], r, l, f, g); return r.pop(), l.pop(), t; } if (e && e.toJSON && (e = e.toJSON()), Ce(e) === "object" && e !== null) { r.push(e), t = {}, l.push(t); var i = [], s; for (s in e) e.hasOwnProperty(s) && i.push(s); for (i.sort(), n = 0; n < i.length; n += 1) s = i[n], t[s] = xe(e[s], r, l, f, s); r.pop(), l.pop(); } else t = e; return t; } var Ge = new ae(); Ge.tokenize = function(e) { return e.slice(); }; Ge.join = Ge.removeEmpty = function(e) { return e; }; function tt(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } var En = { exports: {} }; (function(e) { var r = function() { this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32; }, l = -1, f = 1, g = 0; r.Diff = function(n, t) { return [n, t]; }, r.prototype.diff_main = function(n, t, i, s) { typeof s == "undefined" && (this.Diff_Timeout <= 0 ? s = Number.MAX_VALUE : s = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3); var a = s; if (n == null || t == null) throw new Error("Null input. (diff_main)"); if (n == t) return n ? [new r.Diff(g, n)] : []; typeof i == "undefined" && (i = !0); var o = i, c = this.diff_commonPrefix(n, t), u = n.substring(0, c); n = n.substring(c), t = t.substring(c), c = this.diff_commonSuffix(n, t); var d = n.substring(n.length - c); n = n.substring(0, n.length - c), t = t.substring(0, t.length - c); var h = this.diff_compute_(n, t, o, a); return u && h.unshift(new r.Diff(g, u)), d && h.push(new r.Diff(g, d)), this.diff_cleanupMerge(h), h; }, r.prototype.diff_compute_ = function(n, t, i, s) { var a; if (!n) return [new r.Diff(f, t)]; if (!t) return [new r.Diff(l, n)]; var o = n.length > t.length ? n : t, c = n.length > t.length ? t : n, u = o.indexOf(c); if (u != -1) return a = [ new r.Diff(f, o.substring(0, u)), new r.Diff(g, c), new r.Diff( f, o.substring(u + c.length) ) ], n.length > t.length && (a[0][0] = a[2][0] = l), a; if (c.length == 1) return [ new r.Diff(l, n), new r.Diff(f, t) ]; var d = this.diff_halfMatch_(n, t); if (d) { var h = d[0], p = d[1], _ = d[2], E = d[3], m = d[4], v = this.diff_main(h, _, i, s), A = this.diff_main(p, E, i, s); return v.concat( [new r.Diff(g, m)], A ); } return i && n.length > 100 && t.length > 100 ? this.diff_lineMode_(n, t, s) : this.diff_bisect_(n, t, s); }, r.prototype.diff_lineMode_ = function(n, t, i) { var s = this.diff_linesToChars_(n, t); n = s.chars1, t = s.chars2; var a = s.lineArray, o = this.diff_main(n, t, !1, i); this.diff_charsToLines_(o, a), this.diff_cleanupSemantic(o), o.push(new r.Diff(g, "")); for (var c = 0, u = 0, d = 0, h = "", p = ""; c < o.length; ) { switch (o[c][0]) { case f: d++, p += o[c][1]; break; case l: u++, h += o[c][1]; break; case g: if (u >= 1 && d >= 1) { o.splice( c - u - d, u + d ), c = c - u - d; for (var _ = this.diff_main(h, p, !1, i), E = _.length - 1; E >= 0; E--) o.splice(c, 0, _[E]); c = c + _.length; } d = 0, u = 0, h = "", p = ""; break; } c++; } return o.pop(), o; }, r.prototype.diff_bisect_ = function(n, t, i) { for (var s = n.length, a = t.length, o = Math.ceil((s + a) / 2), c = o, u = 2 * o, d = new Array(u), h = new Array(u), p = 0; p < u; p++) d[p] = -1, h[p] = -1; d[c + 1] = 0, h[c + 1] = 0; for (var _ = s - a, E = _ % 2 != 0, m = 0, v = 0, A = 0, D = 0, S = 0; S < o && !((/* @__PURE__ */ new Date()).getTime() > i); S++) { for (var M = -S + m; M <= S - v; M += 2) { var R = c + M, L; M == -S || M != S && d[R - 1] < d[R + 1] ? L = d[R + 1] : L = d[R - 1] + 1; for (var I = L - M; L < s && I < a && n.charAt(L) == t.charAt(I); ) L++, I++; if (d[R] = L, L > s) v += 2; else if (I > a) m += 2; else if (E) { var P = c + _ - M; if (P >= 0 && P < u && h[P] != -1) { var $ = s - h[P]; if (L >= $) return this.diff_bisectSplit_(n, t, L, I, i); } } } for (var K = -S + A; K <= S - D; K += 2) { var P = c + K, $; K == -S || K != S && h[P - 1] < h[P + 1] ? $ = h[P + 1] : $ = h[P - 1] + 1; for (var Y = $ - K; $ < s && Y < a && n.charAt(s - $ - 1) == t.charAt(a - Y - 1); ) $++, Y++; if (h[P] = $, $ > s) D += 2; else if (Y > a) A += 2; else if (!E) { var R = c + _ - K; if (R >= 0 && R < u && d[R] != -1) { var L = d[R], I = c + L - R; if ($ = s - $, L >= $) return this.diff_bisectSplit_(n, t, L, I, i); } } } } return [ new r.Diff(l, n), new r.Diff(f, t) ]; }, r.prototype.diff_bisectSplit_ = function(n, t, i, s, a) { var o = n.substring(0, i), c = t.substring(0, s), u = n.substring(i), d = t.substring(s), h = this.diff_main(o, c, !1, a), p = this.diff_main(u, d, !1, a); return h.concat(p); }, r.prototype.diff_linesToChars_ = function(n, t) { var i = [], s = {}; i[0] = ""; function a(d) { for (var h = "", p = 0, _ = -1, E = i.length; _ < d.length - 1; ) { _ = d.indexOf(` `, p), _ == -1 && (_ = d.length - 1); var m = d.substring(p, _ + 1); (s.hasOwnProperty ? s.hasOwnProperty(m) : s[m] !== void 0) ? h += String.fromCharCode(s[m]) : (E == o && (m = d.substring(p), _ = d.length), h += String.fromCharCode(E), s[m] = E, i[E++] = m), p = _ + 1; } return h; } var o = 4e4, c = a(n); o = 65535; var u = a(t); return { chars1: c, chars2: u, lineArray: i }; }, r.prototype.diff_charsToLines_ = function(n, t) { for (var i = 0; i < n.length; i++) { for (var s = n[i][1], a = [], o = 0; o < s.length; o++) a[o] = t[s.charCodeAt(o)]; n[i][1] = a.join(""); } }, r.prototype.diff_commonPrefix = function(n, t) { if (!n || !t || n.charAt(0) != t.charAt(0)) return 0; for (var i = 0, s = Math.min(n.length, t.length), a = s, o = 0; i < a; ) n.substring(o, a) == t.substring(o, a) ? (i = a, o = i) : s = a, a = Math.floor((s - i) / 2 + i); return a; }, r.prototype.diff_commonSuffix = function(n, t) { if (!n || !t || n.charAt(n.length - 1) != t.charAt(t.length - 1)) return 0; for (var i = 0, s = Math.min(n.length, t.length), a = s, o = 0; i < a; ) n.substring(n.length - a, n.length - o) == t.substring(t.length - a, t.length - o) ? (i = a, o = i) : s = a, a = Math.floor((s - i) / 2 + i); return a; }, r.prototype.diff_commonOverlap_ = function(n, t) { var i = n.length, s = t.length; if (i == 0 || s == 0) return 0; i > s ? n = n.substring(i - s) : i < s && (t = t.substring(0, i)); var a = Math.min(i, s); if (n == t) return a; for (var o = 0, c = 1; ; ) { var u = n.substring(a - c), d = t.indexOf(u); if (d == -1) return o; c += d, (d == 0 || n.substring(a - c) == t.substring(0, c)) && (o = c, c++); } }, r.prototype.diff_halfMatch_ = function(n, t) { if (this.Diff_Timeout <= 0) return null; var i = n.length > t.length ? n : t, s = n.length > t.length ? t : n; if (i.length < 4 || s.length * 2 < i.length) return null; var a = this; function o(v, A, D) { for (var S = v.substring(D, D + Math.floor(v.length / 4)), M = -1, R = "", L, I, P, $; (M = A.indexOf(S, M + 1)) != -1; ) { var K = a.diff_commonPrefix( v.substring(D), A.substring(M) ), Y = a.diff_commonSuffix( v.substring(0, D), A.substring(0, M) ); R.length < Y + K && (R = A.substring(M - Y, M) + A.substring(M, M + K), L = v.substring(0, D - Y), I = v.substring(D + K), P = A.substring(0, M - Y), $ = A.substring(M + K)); } return R.length * 2 >= v.length ? [ L, I, P, $, R ] : null; } var c = o( i, s, Math.ceil(i.length / 4) ), u = o( i, s, Math.ceil(i.length / 2) ), d; if (!c && !u) return null; u ? c ? d = c[4].length > u[4].length ? c : u : d = u : d = c; var h, p, _, E; n.length > t.length ? (h = d[0], p = d[1], _ = d[2], E = d[3]) : (_ = d[0], E = d[1], h = d[2], p = d[3]); var m = d[4]; return [h, p, _, E, m]; }, r.prototype.diff_cleanupSemantic = function(n) { for (var t = !1, i = [], s = 0, a = null, o = 0, c = 0, u = 0, d = 0, h = 0; o < n.length; ) n[o][0] == g ? (i[s++] = o, c = d, u = h, d = 0, h = 0, a = n[o][1]) : (n[o][0] == f ? d += n[o][1].length : h += n[o][1].length, a && a.length <= Math.max(c, u) && a.length <= Math.max( d, h ) && (n.splice( i[s - 1], 0, new r.Diff(l, a) ), n[i[s - 1] + 1][0] = f, s--, s--, o = s > 0 ? i[s - 1] : -1, c = 0, u = 0, d = 0, h = 0, a = null, t = !0)), o++; for (t && this.diff_cleanupMerge(n), this.diff_cleanupSemanticLossless(n), o = 1; o < n.length; ) { if (n[o - 1][0] == l && n[o][0] == f) { var p = n[o - 1][1], _ = n[o][1], E = this.diff_commonOverlap_(p, _), m = this.diff_commonOverlap_(_, p); E >= m ? (E >= p.length / 2 || E >= _.length / 2) && (n.splice(o, 0, new r.Diff( g, _.substring(0, E) )), n[o - 1][1] = p.substring(0, p.length - E), n[o + 1][1] = _.substring(E), o++) : (m >= p.length / 2 || m >= _.length / 2) && (n.splice(o, 0, new r.Diff( g, p.substring(0, m) )), n[o - 1][0] = f, n[o - 1][1] = _.substring(0, _.length - m), n[o + 1][0] = l, n[o + 1][1] = p.substring(m), o++), o++; } o++; } }, r.prototype.diff_cleanupSemanticLossless = function(n) { function t(m, v) { if (!m || !v) return 6; var A = m.charAt(m.length - 1), D = v.charAt(0), S = A.match(r.nonAlphaNumericRegex_), M = D.match(r.nonAlphaNumericRegex_), R = S && A.match(r.whitespaceRegex_), L = M && D.match(r.whitespaceRegex_), I = R && A.match(r.linebreakRegex_), P = L && D.match(r.linebreakRegex_), $ = I && m.match(r.blanklineEndRegex_), K = P && v.match(r.blanklineStartRegex_); return $ || K ? 5 : I || P ? 4 : S && !R && L ? 3 : R || L ? 2 : S || M ? 1 : 0; } for (var i = 1; i < n.length - 1; ) { if (n[i - 1][0] == g && n[i + 1][0] == g) { var s = n[i - 1][1], a = n[i][1], o = n[i + 1][1], c = this.diff_commonSuffix(s, a); if (c) { var u = a.substring(a.length - c); s = s.substring(0, s.length - c), a = u + a.substring(0, a.length - c), o = u + o; } for (var d = s, h = a, p = o, _ = t(s, a) + t(a, o); a.charAt(0) === o.charAt(0); ) { s += a.charAt(0), a = a.substring(1) + o.charAt(0), o = o.substring(1); var E = t(s, a) + t(a, o); E >= _ && (_ = E, d = s, h = a, p = o); } n[i - 1][1] != d && (d ? n[i - 1][1] = d : (n.splice(i - 1, 1), i--), n[i][1] = h, p ? n[i + 1][1] = p : (n.splice(i + 1, 1), i--)); } i++; } }, r.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/, r.whitespaceRegex_ = /\s/, r.linebreakRegex_ = /[\r\n]/, r.blanklineEndRegex_ = /\n\r?\n$/, r.blanklineStartRegex_ = /^\r?\n\r?\n/, r.prototype.diff_cleanupEfficiency = function(n) { for (var t = !1, i = [], s = 0, a = null, o = 0, c = !1, u = !1, d = !1, h = !1; o < n.length; ) n[o][0] == g ? (n[o][1].length < this.Diff_EditCost && (d || h) ? (i[s++] = o, c = d, u = h, a = n[o][1]) : (s = 0, a = null), d = h = !1) : (n[o][0] == l ? h = !0 : d = !0, a && (c && u && d && h || a.length < this.Diff_EditCost / 2 && c + u + d + h == 3) && (n.splice( i[s - 1], 0, new r.Diff(l, a) ), n[i[s - 1] + 1][0] = f, s--, a = null, c && u ? (d = h = !0, s = 0) : (s--, o = s > 0 ? i[s - 1] : -1, d = h = !1), t = !0)), o++; t && this.diff_cleanupMerge(n); }, r.prototype.diff_cleanupMerge = function(n) { n.push(new r.Diff(g, "")); for (var t = 0, i = 0, s = 0, a = "", o = "", c; t < n.length; ) switch (n[t][0]) { case f: s++, o += n[t][1], t++; break; case l: i++, a += n[t][1], t++; break; case g: i + s > 1 ? (i !== 0 && s !== 0 && (c = this.diff_commonPrefix(o, a), c !== 0 && (t - i - s > 0 && n[t - i - s - 1][0] == g ? n[t - i - s - 1][1] += o.substring(0, c) : (n.splice(0, 0, new r.Diff( g, o.substring(0, c) )), t++), o = o.substring(c), a = a.substring(c)), c = this.diff_commonSuffix(o, a), c !== 0 && (n[t][1] = o.substring(o.length - c) + n[t][1], o = o.substring(0, o.length - c), a = a.substring(0, a.length - c))), t -= i + s, n.splice(t, i + s), a.length && (n.splice( t, 0, new r.Diff(l, a) ), t++), o.length && (n.splice( t, 0, new r.Diff(f, o) ), t++), t++) : t !== 0 && n[t - 1][0] == g ? (n[t - 1][1] += n[t][1], n.splice(t, 1)) : t++, s = 0, i = 0, a = "", o = ""; break; } n[n.length - 1][1] === "" && n.pop(); var u = !1; for (t = 1; t < n.length - 1; ) n[t - 1][0] == g && n[t + 1][0] == g && (n[t][1].substring(n[t][1].length - n[t - 1][1].length) == n[t - 1][1] ? (n[t][1] = n[t - 1][1] + n[t][1].substring(0, n[t][1].length - n[t - 1][1].length), n[t + 1][1] = n[t - 1][1] + n[t + 1][1], n.splice(t - 1, 1), u = !0) : n[t][1].substring(0, n[t + 1][1].length) == n[t + 1][1] && (n[t - 1][1] += n[t + 1][1], n[t][1] = n[t][1].substring(n[t + 1][1].length) + n[t + 1][1], n.splice(t + 1, 1), u = !0)), t++; u && this.diff_cleanupMerge(n); }, r.prototype.diff_xIndex = function(n, t) { var i = 0, s = 0, a = 0, o = 0, c; for (c = 0; c < n.length && (n[c][0] !== f && (i += n[c][1].length), n[c][0] !== l && (s += n[c][1].length), !(i > t)); c++) a = i, o = s; return n.length != c && n[c][0] === l ? o : o + (t - a); }, r.prototype.diff_prettyHtml = function(n) { for (var t = [], i = /&/g, s = //g, o = /\n/g, c = 0; c < n.length; c++) { var u = n[c][0], d = n[c][1], h = d.replace(i, "&").replace(s, "<").replace(a, ">").replace(o, "¶
"); switch (u) { case f: t[c] = '' + h + ""; break; case l: t[c] = '' + h + ""; break; case g: t[c] = "" + h + ""; break; } } return t.join(""); }, r.prototype.diff_text1 = function(n) { for (var t = [], i = 0; i < n.length; i++) n[i][0] !== f && (t[i] = n[i][1]); return t.join(""); }, r.prototype.diff_text2 = function(n) { for (var t = [], i = 0; i < n.length; i++) n[i][0] !== l && (t[i] = n[i][1]); return t.join(""); }, r.prototype.diff_levenshtein = function(n) { for (var t = 0, i = 0, s = 0, a = 0; a < n.length; a++) { var o = n[a][0], c = n[a][1]; switch (o) { case f: i += c.length; break; case l: s += c.length; break; case g: t += Math.max(i, s), i = 0, s = 0; break; } } return t += Math.max(i, s), t; }, r.prototype.diff_toDelta = function(n) { for (var t = [], i = 0; i < n.length; i++) switch (n[i][0]) { case f: t[i] = "+" + encodeURI(n[i][1]); break; case l: t[i] = "-" + n[i][1].length; break; case g: t[i] = "=" + n[i][1].length; break; } return t.join(" ").replace(/%20/g, " "); }, r.prototype.diff_fromDelta = function(n, t) { for (var i = [], s = 0, a = 0, o = t.split(/\t/g), c = 0; c < o.length; c++) { var u = o[c].substring(1); switch (o[c].charAt(0)) { case "+": try { i[s++] = new r.Diff(f, decodeURI(u)); } catch (p) { throw new Error("Illegal escape in diff_fromDelta: " + u); } break; case "-": case "=": var d = parseInt(u, 10); if (isNaN(d) || d < 0) throw new Error("Invalid number in diff_fromDelta: " + u); var h = n.substring(a, a += d); o[c].charAt(0) == "=" ? i[s++] = new r.Diff(g, h) : i[s++] = new r.Diff(l, h); break; default: if (o[c]) throw new Error("Invalid diff operation in diff_fromDelta: " + o[c]); } } if (a != n.length) throw new Error("Delta length (" + a + ") does not equal source text length (" + n.length + ")."); return i; }, r.prototype.match_main = function(n, t, i) { if (n == null || t == null || i == null) throw new Error("Null input. (match_main)"); return i = Math.max(0, Math.min(i, n.length)), n == t ? 0 : n.length ? n.substring(i, i + t.length) == t ? i : this.match_bitap_(n, t, i) : -1; }, r.prototype.match_bitap_ = function(n, t, i) { if (t.length > this.Match_MaxBits) throw new Error("Pattern too long for this browser."); var s = this.match_alphabet_(t), a = this; function o(L, I) { var P = L / t.length, $ = Math.abs(i - I); return a.Match_Distance ? P + $ / a.Match_Distance : $ ? 1 : P; } var c = this.Match_Threshold, u = n.indexOf(t, i); u != -1 && (c = Math.min(o(0, u), c), u = n.lastIndexOf(t, i + t.length), u != -1 && (c = Math.min(o(0, u), c))); var d = 1 << t.length - 1; u = -1; for (var h, p, _ = t.length + n.length, E, m = 0; m < t.length; m++) { for (h = 0, p = _; h < p; ) o(m, i + p) <= c ? h = p : _ = p, p = Math.floor((_ - h) / 2 + h); _ = p; var v = Math.max(1, i - p + 1), A = Math.min(i + p, n.length) + t.length, D = Array(A + 2); D[A + 1] = (1 << m) - 1; for (var S = A; S >= v; S--) { var M = s[n.charAt(S - 1)]; if (m === 0 ? D[S] = (D[S + 1] << 1 | 1) & M : D[S] = (D[S + 1] << 1 | 1) & M | ((E[S + 1] | E[S]) << 1 | 1) | E[S + 1], D[S] & d) { var R = o(m, S - 1); if (R <= c) if (c = R, u = S - 1, u > i) v = Math.max(1, 2 * i - u); else break; } } if (o(m + 1, i) > c) break; E = D; } return u; }, r.prototype.match_alphabet_ = function(n) { for (var t = {}, i = 0; i < n.length; i++) t[n.charAt(i)] = 0; for (var i = 0; i < n.length; i++) t[n.charAt(i)] |= 1 << n.length - i - 1; return t; }, r.prototype.patch_addContext_ = function(n, t) { if (t.length != 0) { if (n.start2 === null) throw Error("patch not initialized"); for (var i = t.substring(n.start2, n.start2 + n.length1), s = 0; t.indexOf(i) != t.lastIndexOf(i) && i.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin; ) s += this.Patch_Margin, i = t.substring( n.start2 - s, n.start2 + n.length1 + s ); s += this.Patch_Margin; var a = t.substring(n.start2 - s, n.start2); a && n.diffs.unshift(new r.Diff(g, a)); var o = t.substring( n.start2 + n.length1, n.start2 + n.length1 + s ); o && n.diffs.push(new r.Diff(g, o)), n.start1 -= a.length, n.start2 -= a.length, n.length1 += a.length + o.length, n.length2 += a.length + o.length; } }, r.prototype.patch_make = function(n, t, i) { var s, a; if (typeof n == "string" && typeof t == "string" && typeof i == "undefined") s = /** @type {string} */ n, a = this.diff_main( s, /** @type {string} */ t, !0 ), a.length > 2 && (this.diff_cleanupSemantic(a), this.diff_cleanupEfficiency(a)); else if (n && typeof n == "object" && typeof t == "undefined" && typeof i == "undefined") a = /** @type {!Array.} */ n, s = this.diff_text1(a); else if (typeof n == "string" && t && typeof t == "object" && typeof i == "undefined") s = /** @type {string} */ n, a = /** @type {!Array.} */ t; else if (typeof n == "string" && typeof t == "string" && i && typeof i == "object") s = /** @type {string} */ n, a = /** @type {!Array.} */ i; else throw new Error("Unknown call format to patch_make."); if (a.length === 0) return []; for (var o = [], c = new r.patch_obj(), u = 0, d = 0, h = 0, p = s, _ = s, E = 0; E < a.length; E++) { var m = a[E][0], v = a[E][1]; switch (!u && m !== g && (c.start1 = d, c.start2 = h), m) { case f: c.diffs[u++] = a[E], c.length2 += v.length, _ = _.substring(0, h) + v + _.substring(h); break; case l: c.length1 += v.length, c.diffs[u++] = a[E], _ = _.substring(0, h) + _.substring(h + v.length); break; case g: v.length <= 2 * this.Patch_Margin && u && a.length != E + 1 ? (c.diffs[u++] = a[E], c.length1 += v.length, c.length2 += v.length) : v.length >= 2 * this.Patch_Margin && u && (this.patch_addContext_(c, p), o.push(c), c = new r.patch_obj(), u = 0, p = _, d = h); break; } m !== f && (d += v.length), m !== l && (h += v.length); } return u && (this.patch_addContext_(c, p), o.push(c)), o; }, r.prototype.patch_deepCopy = function(n) { for (var t = [], i = 0; i < n.length; i++) { var s = n[i], a = new r.patch_obj(); a.diffs = []; for (var o = 0; o < s.diffs.length; o++) a.diffs[o] = new r.Diff(s.diffs[o][0], s.diffs[o][1]); a.start1 = s.start1, a.start2 = s.start2, a.length1 = s.length1, a.length2 = s.length2, t[i] = a; } return t; }, r.prototype.patch_apply = function(n, t) { if (n.length == 0) return [t, []]; n = this.patch_deepCopy(n); var i = this.patch_addPadding(n); t = i + t + i, this.patch_splitMax(n); for (var s = 0, a = [], o = 0; o < n.length; o++) { var c = n[o].start2 + s, u = this.diff_text1(n[o].diffs), d, h = -1; if (u.length > this.Match_MaxBits ? (d = this.match_main( t, u.substring(0, this.Match_MaxBits), c ), d != -1 && (h = this.match_main( t, u.substring(u.length - this.Match_MaxBits), c + u.length - this.Match_MaxBits ), (h == -1 || d >= h) && (d = -1))) : d = this.match_main(t, u, c), d == -1) a[o] = !1, s -= n[o].length2 - n[o].length1; else { a[o] = !0, s = d - c; var p; if (h == -1 ? p = t.substring(d, d + u.length) : p = t.substring(d, h + this.Match_MaxBits), u == p) t = t.substring(0, d) + this.diff_text2(n[o].diffs) + t.substring(d + u.length); else { var _ = this.diff_main(u, p, !1); if (u.length > this.Match_MaxBits && this.diff_levenshtein(_) / u.length > this.Patch_DeleteThreshold) a[o] = !1; else { this.diff_cleanupSemanticLossless(_); for (var E = 0, m, v = 0; v < n[o].diffs.length; v++) { var A = n[o].diffs[v]; A[0] !== g && (m = this.diff_xIndex(_, E)), A[0] === f ? t = t.substring(0, d + m) + A[1] + t.substring(d + m) : A[0] === l && (t = t.substring(0, d + m) + t.substring(d + this.diff_xIndex( _, E + A[1].length ))), A[0] !== l && (E += A[1].length); } } } } } return t = t.substring(i.length, t.length - i.length), [t, a]; }, r.prototype.patch_addPadding = function(n) { for (var t = this.Patch_Margin, i = "", s = 1; s <= t; s++) i += String.fromCharCode(s); for (var s = 0; s < n.length; s++) n[s].start1 += t, n[s].start2 += t; var a = n[0], o = a.diffs; if (o.length == 0 || o[0][0] != g) o.unshift(new r.Diff(g, i)), a.start1 -= t, a.start2 -= t, a.length1 += t, a.length2 += t; else if (t > o[0][1].length) { var c = t - o[0][1].length; o[0][1] = i.substring(o[0][1].length) + o[0][1], a.start1 -= c, a.start2 -= c, a.length1 += c, a.length2 += c; } if (a = n[n.length - 1], o = a.diffs, o.length == 0 || o[o.length - 1][0] != g) o.push(new r.Diff(g, i)), a.length1 += t, a.length2 += t; else if (t > o[o.length - 1][1].length) { var c = t - o[o.length - 1][1].length; o[o.length - 1][1] += i.substring(0, c), a.length1 += c, a.length2 += c; } return i; }, r.prototype.patch_splitMax = function(n) { for (var t = this.Match_MaxBits, i = 0; i < n.length; i++) if (!(n[i].length1 <= t)) { var s = n[i]; n.splice(i--, 1); for (var a = s.start1, o = s.start2, c = ""; s.diffs.length !== 0; ) { var u = new r.patch_obj(), d = !0; for (u.start1 = a - c.length, u.start2 = o - c.length, c !== "" && (u.length1 = u.length2 = c.length, u.diffs.push(new r.Diff(g, c))); s.diffs.length !== 0 && u.length1 < t - this.Patch_Margin; ) { var h = s.diffs[0][0], p = s.diffs[0][1]; h === f ? (u.length2 += p.length, o += p.length, u.diffs.push(s.diffs.shift()), d = !1) : h === l && u.diffs.length == 1 && u.diffs[0][0] == g && p.length > 2 * t ? (u.length1 += p.length, a += p.length, d = !1, u.diffs.push(new r.Diff(h, p)), s.diffs.shift()) : (p = p.substring( 0, t - u.length1 - this.Patch_Margin ), u.length1 += p.length, a += p.length, h === g ? (u.length2 += p.length, o += p.length) : d = !1, u.diffs.push(new r.Diff(h, p)), p == s.diffs[0][1] ? s.diffs.shift() : s.diffs[0][1] = s.diffs[0][1].substring(p.length)); } c = this.diff_text2(u.diffs), c = c.substring(c.length - this.Patch_Margin); var _ = this.diff_text1(s.diffs).substring(0, this.Patch_Margin); _ !== "" && (u.length1 += _.length, u.length2 += _.length, u.diffs.length !== 0 && u.diffs[u.diffs.length - 1][0] === g ? u.diffs[u.diffs.length - 1][1] += _ : u.diffs.push(new r.Diff(g, _))), d || n.splice(++i, 0, u); } } }, r.prototype.patch_toText = function(n) { for (var t = [], i = 0; i < n.length; i++) t[i] = n[i]; return t.join(""); }, r.prototype.patch_fromText = function(n) { var t = []; if (!n) return t; for (var i = n.split(` `), s = 0, a = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; s < i.length; ) { var o = i[s].match(a); if (!o) throw new Error("Invalid patch string: " + i[s]); var c = new r.patch_obj(); for (t.push(c), c.start1 = parseInt(o[1], 10), o[2] === "" ? (c.start1--, c.length1 = 1) : o[2] == "0" ? c.length1 = 0 : (c.start1--, c.length1 = parseInt(o[2], 10)), c.start2 = parseInt(o[3], 10), o[4] === "" ? (c.start2--, c.length2 = 1) : o[4] == "0" ? c.length2 = 0 : (c.start2--, c.length2 = parseInt(o[4], 10)), s++; s < i.length; ) { var u = i[s].charAt(0); try { var d = decodeURI(i[s].substring(1)); } catch (h) { throw new Error("Illegal escape in patch_fromText: " + d); } if (u == "-") c.diffs.push(new r.Diff(l, d)); else if (u == "+") c.diffs.push(new r.Diff(f, d)); else if (u == " ") c.diffs.push(new r.Diff(g, d)); else { if (u == "@") break; if (u !== "") throw new Error('Invalid patch mode "' + u + '" in: ' + d); } s++; } } return t; }, r.patch_obj = function() { this.diffs = [], this.start1 = null, this.start2 = null, this.length1 = 0, this.length2 = 0; }, r.patch_obj.prototype.toString = function() { var n, t; this.length1 === 0 ? n = this.start1 + ",0" : this.length1 == 1 ? n = this.start1 + 1 : n = this.start1 + 1 + "," + this.length1, this.length2 === 0 ? t = this.start2 + ",0" : this.length2 == 1 ? t = this.start2 + 1 : t = this.start2 + 1 + "," + this.length2; for (var i = ["@@ -" + n + " +" + t + ` @@ `], s, a = 0; a < this.diffs.length; a++) { switch (this.diffs[a][0]) { case f: s = "+"; break; case l: s = "-"; break; case g: s = " "; break; } i[a + 1] = s + encodeURI(this.diffs[a][1]) + ` `; } return i.join("").replace(/%20/g, " "); }, e.exports = r, e.exports.diff_match_patch = r, e.exports.DIFF_DELETE = l, e.exports.DIFF_INSERT = f, e.exports.DIFF_EQUAL = g; })(En); var Fe = En.exports; function mn(e) { return e instanceof Map ? e.clear = e.delete = e.set = function() { throw new Error("map is read-only"); } : e instanceof Set && (e.add = e.clear = e.delete = function() { throw new Error("set is read-only"); }), Object.freeze(e), Object.getOwnPropertyNames(e).forEach((r) => { const l = e[r], f = typeof l; (f === "object" || f === "function") && !Object.isFrozen(l) && mn(l); }), e; } class an { /** * @param {CompiledMode} mode */ constructor(r) { r.data === void 0 && (r.data = {}), this.data = r.data, this.isMatchIgnored = !1; } ignoreMatch() { this.isMatchIgnored = !0; } } function vn(e) { return e.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } function le(e, ...r) { const l = /* @__PURE__ */ Object.create(null); for (const f in e) l[f] = e[f]; return r.forEach(function(f) { for (const g in f) l[g] = f[g]; }), /** @type {T} */ l; } const rt = "", on = (e) => !!e.scope, it = (e, { prefix: r }) => { if (e.startsWith("language:")) return e.replace("language:", "language-"); if (e.includes(".")) { const l = e.split("."); return [ `${r}${l.shift()}`, ...l.map((f, g) => `${f}${"_".repeat(g + 1)}`) ].join(" "); } return `${r}${e}`; }; class st { /** * Creates a new HTMLRenderer * * @param {Tree} parseTree - the parse tree (must support `walk` API) * @param {{classPrefix: string}} options */ constructor(r, l) { this.buffer = "", this.classPrefix = l.classPrefix, r.walk(this); } /** * Adds texts to the output stream * * @param {string} text */ addText(r) { this.buffer += vn(r); } /** * Adds a node open to the output stream (if needed) * * @param {Node} node */ openNode(r) { if (!on(r)) return; const l = it( r.scope, { prefix: this.classPrefix } ); this.span(l); } /** * Adds a node close to the output stream (if needed) * * @param {Node} node */ closeNode(r) { on(r) && (this.buffer += rt); } /** * returns the accumulated buffer */ value() { return this.buffer; } // helpers /** * Builds a span element * * @param {string} className */ span(r) { this.buffer += ``; } } const ln = (e = {}) => { const r = { children: [] }; return Object.assign(r, e), r; }; class Qe { constructor() { this.rootNode = ln(), this.stack = [this.rootNode]; } get top() { return this.stack[this.stack.length - 1]; } get root() { return this.rootNode; } /** @param {Node} node */ add(r) { this.top.children.push(r); } /** @param {string} scope */ openNode(r) { const l = ln({ scope: r }); this.add(l), this.stack.push(l); } closeNode() { if (this.stack.length > 1) return this.stack.pop(); } closeAllNodes() { for (; this.closeNode(); ) ; } toJSON() { return JSON.stringify(this.rootNode, null, 4); } /** * @typedef { import("./html_renderer").Renderer } Renderer * @param {Renderer} builder */ walk(r) { return this.constructor._walk(r, this.rootNode); } /** * @param {Renderer} builder * @param {Node} node */ static _walk(r, l) { return typeof l == "string" ? r.addText(l) : l.children && (r.openNode(l), l.children.forEach((f) => this._walk(r, f)), r.closeNode(l)), r; } /** * @param {Node} node */ static _collapse(r) { typeof r != "string" && r.children && (r.children.every((l) => typeof l == "string") ? r.children = [r.children.join("")] : r.children.forEach((l) => { Qe._collapse(l); })); } } class at extends Qe { /** * @param {*} options */ constructor(r) { super(), this.options = r; } /** * @param {string} text */ addText(r) { r !== "" && this.add(r); } /** @param {string} scope */ startScope(r) { this.openNode(r); } endScope() { this.closeNode(); } /** * @param {Emitter & {root: DataNode}} emitter * @param {string} name */ __addSublanguage(r, l) { const f = r.root; l && (f.scope = `language:${l}`), this.add(f); } toHTML() { return new st(this, this.options).value(); } finalize() { return this.closeAllNodes(), !0; } } function ye(e) { return e ? typeof e == "string" ? e : e.source : null; } function wn(e) { return fe("(?=", e, ")"); } function ot(e) { return fe("(?:", e, ")*"); } function lt(e) { return fe("(?:", e, ")?"); } function fe(...e) { return e.map((l) => ye(l)).join(""); } function ct(e) { const r = e[e.length - 1]; return typeof r == "object" && r.constructor === Object ? (e.splice(e.length - 1, 1), r) : {}; } function Ze(...e) { return "(" + (ct(e).capture ? "" : "?:") + e.map((f) => ye(f)).join("|") + ")"; } function yn(e) { return new RegExp(e.toString() + "|").exec("").length - 1; } function ut(e, r) { const l = e && e.exec(r); return l && l.index === 0; } const ft = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; function Ye(e, { joinWith: r }) { let l = 0; return e.map((f) => { l += 1; const g = l; let n = ye(f), t = ""; for (; n.length > 0; ) { const i = ft.exec(n); if (!i) { t += n; break; } t += n.substring(0, i.index), n = n.substring(i.index + i[0].length), i[0][0] === "\\" && i[1] ? t += "\\" + String(Number(i[1]) + g) : (t += i[0], i[0] === "(" && l++); } return t; }).map((f) => `(${f})`).join(r); } const gt = /\b\B/, Nn = "[a-zA-Z]\\w*", Xe = "[a-zA-Z_]\\w*", An = "\\b\\d+(\\.\\d+)?", Mn = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", Tn = "\\b(0b[01]+)", ht = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", dt = (e = {}) => { const r = /^#![ ]*\//; return e.binary && (e.begin = fe( r, /.*\b/, e.binary, /\b.*/ )), le({ scope: "meta", begin: r, end: /$/, relevance: 0, /** @type {ModeCallback} */ "on:begin": (l, f) => { l.index !== 0 && f.ignoreMatch(); } }, e); }, Ne = { begin: "\\\\[\\s\\S]", relevance: 0 }, pt = { scope: "string", begin: "'", end: "'", illegal: "\\n", contains: [Ne] }, _t = { scope: "string", begin: '"', end: '"', illegal: "\\n", contains: [Ne] }, bt = { 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/ }, $e = function(e, r, l = {}) { const f = le( { scope: "comment", begin: e, end: r, contains: [] }, l ); f.contains.push({ scope: "doctag", // hack to avoid the space from being included. the space is necessary to // match here to prevent the plain text rule below from gobbling up doctags begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, excludeBegin: !0, relevance: 0 }); const g = Ze( // list of common 1 and 2 letter words in English "I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", // note: this is not an exhaustive list of contractions, just popular ones /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc /[A-Za-z]+[-][a-z]+/, // `no-way`, etc. /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences ); return f.contains.push( { // TODO: how to include ", (, ) without breaking grammars that use these for // comment delimiters? // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ // --- // this tries to find sequences of 3 english words in a row (without any // "programming" type syntax) this gives us a strong signal that we've // TRULY found a comment - vs perhaps scanning with the wrong language. // It's possible to find something that LOOKS like the start of the // comment - but then if there is no readable text - good chance it is a // false match and not a comment. // // for a visual example please see: // https://github.com/highlightjs/highlight.js/issues/2827 begin: fe( /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ "(", g, /[.]?[:]?([.][ ]|[ ])/, "){3}" ) // look for 3 words in a row } ), f; }, Et = $e("//", "$"), mt = $e("/\\*", "\\*/"), vt = $e("#", "$"), wt = { scope: "number", begin: An, relevance: 0 }, yt = { scope: "number", begin: Mn, relevance: 0 }, Nt = { scope: "number", begin: Tn, relevance: 0 }, At = { scope: "regexp", begin: /\/(?=[^/\n]*\/)/, end: /\/[gimuy]*/, contains: [ Ne, { begin: /\[/, end: /\]/, relevance: 0, contains: [Ne] } ] }, Mt = { scope: "title", begin: Nn, relevance: 0 }, Tt = { scope: "title", begin: Xe, relevance: 0 }, St = { // excludes method names from keyword processing begin: "\\.\\s*" + Xe, relevance: 0 }, Dt = function(e) { return Object.assign( e, { /** @type {ModeCallback} */ "on:begin": (r, l) => { l.data._beginMatch = r[1]; }, /** @type {ModeCallback} */ "on:end": (r, l) => { l.data._beginMatch !== r[1] && l.ignoreMatch(); } } ); }; var Le = /* @__PURE__ */ Object.freeze({ __proto__: null, APOS_STRING_MODE: pt, BACKSLASH_ESCAPE: Ne, BINARY_NUMBER_MODE: Nt, BINARY_NUMBER_RE: Tn, COMMENT: $e, C_BLOCK_COMMENT_MODE: mt, C_LINE_COMMENT_MODE: Et, C_NUMBER_MODE: yt, C_NUMBER_RE: Mn, END_SAME_AS_BEGIN: Dt, HASH_COMMENT_MODE: vt, IDENT_RE: Nn, MATCH_NOTHING_RE: gt, METHOD_GUARD: St, NUMBER_MODE: wt, NUMBER_RE: An, PHRASAL_WORDS_MODE: bt, QUOTE_STRING_MODE: _t, REGEXP_MODE: At, RE_STARTERS_RE: ht, SHEBANG: dt, TITLE_MODE: Mt, UNDERSCORE_IDENT_RE: Xe, UNDERSCORE_TITLE_MODE: Tt }); function Lt(e, r) { e.input[e.index - 1] === "." && r.ignoreMatch(); } function Rt(e, r) { e.className !== void 0 && (e.scope = e.className, delete e.className); } function Ot(e, r) { r && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", e.__beforeBegin = Lt, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords, e.relevance === void 0 && (e.relevance = 0)); } function Ct(e, r) { Array.isArray(e.illegal) && (e.illegal = Ze(...e.illegal)); } function It(e, r) { if (e.match) { if (e.begin || e.end) throw new Error("begin & end are not supported with match"); e.begin = e.match, delete e.match; } } function kt(e, r) { e.relevance === void 0 && (e.relevance = 1); } const Bt = (e, r) => { if (!e.beforeMatch) return; if (e.starts) throw new Error("beforeMatch cannot be used with starts"); const l = Object.assign({}, e); Object.keys(e).forEach((f) => { delete e[f]; }), e.keywords = l.keywords, e.begin = fe(l.beforeMatch, wn(l.begin)), e.starts = { relevance: 0, contains: [ Object.assign(l, { endsParent: !0 }) ] }, e.relevance = 0, delete l.beforeMatch; }, $t = [ "of", "and", "for", "in", "not", "or", "if", "then", "parent", // common variable name "list", // common variable name "value" // common variable name ], Pt = "keyword"; function Sn(e, r, l = Pt) { const f = /* @__PURE__ */ Object.create(null); return typeof e == "string" ? g(l, e.split(" ")) : Array.isArray(e) ? g(l, e) : Object.keys(e).forEach(function(n) { Object.assign( f, Sn(e[n], r, n) ); }), f; function g(n, t) { r && (t = t.map((i) => i.toLowerCase())), t.forEach(function(i) { const s = i.split("|"); f[s[0]] = [n, Ut(s[0], s[1])]; }); } } function Ut(e, r) { return r ? Number(r) : Ht(e) ? 0 : 1; } function Ht(e) { return $t.includes(e.toLowerCase()); } const cn = {}, ue = (e) => { console.error(e); }, un = (e, ...r) => { console.log(`WARN: ${e}`, ...r); }, he = (e, r) => { cn[`${e}/${r}`] || (console.log(`Deprecated as of ${e}. ${r}`), cn[`${e}/${r}`] = !0); }, ke = new Error(); function Dn(e, r, { key: l }) { let f = 0; const g = e[l], n = {}, t = {}; for (let i = 1; i <= r.length; i++) t[i + f] = g[i], n[i + f] = !0, f += yn(r[i - 1]); e[l] = t, e[l]._emit = n, e[l]._multi = !0; } function Ft(e) { if (Array.isArray(e.begin)) { if (e.skip || e.excludeBegin || e.returnBegin) throw ue("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), ke; if (typeof e.beginScope != "object" || e.beginScope === null) throw ue("beginScope must be object"), ke; Dn(e, e.begin, { key: "beginScope" }), e.begin = Ye(e.begin, { joinWith: "" }); } } function zt(e) { if (Array.isArray(e.end)) { if (e.skip || e.excludeEnd || e.returnEnd) throw ue("skip, excludeEnd, returnEnd not compatible with endScope: {}"), ke; if (typeof e.endScope != "object" || e.endScope === null) throw ue("endScope must be object"), ke; Dn(e, e.end, { key: "endScope" }), e.end = Ye(e.end, { joinWith: "" }); } } function xt(e) { e.scope && typeof e.scope == "object" && e.scope !== null && (e.beginScope = e.scope, delete e.scope); } function Gt(e) { xt(e), typeof e.beginScope == "string" && (e.beginScope = { _wrap: e.beginScope }), typeof e.endScope == "string" && (e.endScope = { _wrap: e.endScope }), Ft(e), zt(e); } function Kt(e) { function r(t, i) { return new RegExp( ye(t), "m" + (e.case_insensitive ? "i" : "") + (e.unicodeRegex ? "u" : "") + (i ? "g" : "") ); } class l { constructor() { this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0; } // @ts-ignore addRule(i, s) { s.position = this.position++, this.matchIndexes[this.matchAt] = s, this.regexes.push([s, i]), this.matchAt += yn(i) + 1; } compile() { this.regexes.length === 0 && (this.exec = () => null); const i = this.regexes.map((s) => s[1]); this.matcherRe = r(Ye(i, { joinWith: "|" }), !0), this.lastIndex = 0; } /** @param {string} s */ exec(i) { this.matcherRe.lastIndex = this.lastIndex; const s = this.matcherRe.exec(i); if (!s) return null; const a = s.findIndex((c, u) => u > 0 && c !== void 0), o = this.matchIndexes[a]; return s.splice(0, a), Object.assign(s, o); } } class f { constructor() { this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0; } // @ts-ignore getMatcher(i) { if (this.multiRegexes[i]) return this.multiRegexes[i]; const s = new l(); return this.rules.slice(i).forEach(([a, o]) => s.addRule(a, o)), s.compile(), this.multiRegexes[i] = s, s; } resumingScanAtSamePosition() { return this.regexIndex !== 0; } considerAll() { this.regexIndex = 0; } // @ts-ignore addRule(i, s) { this.rules.push([i, s]), s.type === "begin" && this.count++; } /** @param {string} s */ exec(i) { const s = this.getMatcher(this.regexIndex); s.lastIndex = this.lastIndex; let a = s.exec(i); if (this.resumingScanAtSamePosition() && !(a && a.index === this.lastIndex)) { const o = this.getMatcher(0); o.lastIndex = this.lastIndex + 1, a = o.exec(i); } return a && (this.regexIndex += a.position + 1, this.regexIndex === this.count && this.considerAll()), a; } } function g(t) { const i = new f(); return t.contains.forEach((s) => i.addRule(s.begin, { rule: s, type: "begin" })), t.terminatorEnd && i.addRule(t.terminatorEnd, { type: "end" }), t.illegal && i.addRule(t.illegal, { type: "illegal" }), i; } function n(t, i) { const s = ( /** @type CompiledMode */ t ); if (t.isCompiled) return s; [ Rt, // do this early so compiler extensions generally don't have to worry about // the distinction between match/begin It, Gt, Bt ].forEach((o) => o(t, i)), e.compilerExtensions.forEach((o) => o(t, i)), t.__beforeBegin = null, [ Ot, // do this later so compiler extensions that come earlier have access to the // raw array if they wanted to perhaps manipulate it, etc. Ct, // default to 1 relevance if not specified kt ].forEach((o) => o(t, i)), t.isCompiled = !0; let a = null; return typeof t.keywords == "object" && t.keywords.$pattern && (t.keywords = Object.assign({}, t.keywords), a = t.keywords.$pattern, delete t.keywords.$pattern), a = a || /\w+/, t.keywords && (t.keywords = Sn(t.keywords, e.case_insensitive)), s.keywordPatternRe = r(a, !0), i && (t.begin || (t.begin = /\B|\b/), s.beginRe = r(s.begin), !t.end && !t.endsWithParent && (t.end = /\B|\b/), t.end && (s.endRe = r(s.end)), s.terminatorEnd = ye(s.end) || "", t.endsWithParent && i.terminatorEnd && (s.terminatorEnd += (t.end ? "|" : "") + i.terminatorEnd)), t.illegal && (s.illegalRe = r( /** @type {RegExp | string} */ t.illegal )), t.contains || (t.contains = []), t.contains = [].concat(...t.contains.map(function(o) { return Wt(o === "self" ? t : o); })), t.contains.forEach(function(o) { n( /** @type Mode */ o, s ); }), t.starts && n(t.starts, i), s.matcher = g(s), s; } if (e.compilerExtensions || (e.compilerExtensions = []), e.contains && e.contains.includes("self")) throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); return e.classNameAliases = le(e.classNameAliases || {}), n( /** @type Mode */ e ); } function Ln(e) { return e ? e.endsWithParent || Ln(e.starts) : !1; } function Wt(e) { return e.variants && !e.cachedVariants && (e.cachedVariants = e.variants.map(function(r) { return le(e, { variants: null }, r); })), e.cachedVariants ? e.cachedVariants : Ln(e) ? le(e, { starts: e.starts ? le(e.starts) : null }) : Object.isFrozen(e) ? le(e) : e; } var Qt = "11.9.0"; class Zt extends Error { constructor(r, l) { super(r), this.name = "HTMLInjectionError", this.html = l; } } const ze = vn, fn = le, gn = Symbol("nomatch"), Yt = 7, Rn = function(e) { const r = /* @__PURE__ */ Object.create(null), l = /* @__PURE__ */ Object.create(null), f = []; let g = !0; const n = "Could not find the language '{}', did you forget to load/include a language module?", t = { disableAutodetect: !0, name: "Plain text", contains: [] }; let i = { ignoreUnescapedHTML: !1, throwUnescapedHTML: !1, noHighlightRe: /^(no-?highlight)$/i, languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, classPrefix: "hljs-", cssSelector: "pre code", languages: null, // beta configuration options, subject to change, welcome to discuss // https://github.com/highlightjs/highlight.js/issues/1086 __emitter: at }; function s(b) { return i.noHighlightRe.test(b); } function a(b) { let N = b.className + " "; N += b.parentNode ? b.parentNode.className : ""; const O = i.languageDetectRe.exec(N); if (O) { const U = L(O[1]); return U || (un(n.replace("{}", O[1])), un("Falling back to no-highlight mode for this block.", b)), U ? O[1] : "no-highlight"; } return N.split(/\s+/).find((U) => s(U) || L(U)); } function o(b, N, O) { let U = "", x = ""; typeof N == "object" ? (U = b, O = N.ignoreIllegals, x = N.language) : (he("10.7.0", "highlight(lang, code, ...args) has been deprecated."), he("10.7.0", `Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`), x = b, U = N), O === void 0 && (O = !0); const X = { code: U, language: x }; oe("before:highlight", X); const J = X.result ? X.result : c(X.language, X.code, O); return J.code = X.code, oe("after:highlight", J), J; } function c(b, N, O, U) { const x = /* @__PURE__ */ Object.create(null); function X(w, T) { return w.keywords[T]; } function J() { if (!C.keywords) { Q.addText(z); return; } let w = 0; C.keywordPatternRe.lastIndex = 0; let T = C.keywordPatternRe.exec(z), k = ""; for (; T; ) { k += z.substring(w, T.index); const H = te.case_insensitive ? T[0].toLowerCase() : T[0], Z = X(C, H); if (Z) { const [re, Gn] = Z; if (Q.addText(k), k = "", x[H] = (x[H] || 0) + 1, x[H] <= Yt && (Se += Gn), re.startsWith("_")) k += T[0]; else { const Kn = te.classNameAliases[re] || re; ne(T[0], Kn); } } else k += T[0]; w = C.keywordPatternRe.lastIndex, T = C.keywordPatternRe.exec(z); } k += z.substring(w), Q.addText(k); } function Me() { if (z === "") return; let w = null; if (typeof C.subLanguage == "string") { if (!r[C.subLanguage]) { Q.addText(z); return; } w = c(C.subLanguage, z, !0, en[C.subLanguage]), en[C.subLanguage] = /** @type {CompiledMode} */ w._top; } else w = d(z, C.subLanguage.length ? C.subLanguage : null); C.relevance > 0 && (Se += w.relevance), Q.__addSublanguage(w._emitter, w.language); } function V() { C.subLanguage != null ? Me() : J(), z = ""; } function ne(w, T) { w !== "" && (Q.startScope(T), Q.addText(w), Q.endScope()); } function Ve(w, T) { let k = 1; const H = T.length - 1; for (; k <= H; ) { if (!w._emit[k]) { k++; continue; } const Z = te.classNameAliases[w[k]] || w[k], re = T[k]; Z ? ne(re, Z) : (z = re, J(), z = ""), k++; } } function je(w, T) { return w.scope && typeof w.scope == "string" && Q.openNode(te.classNameAliases[w.scope] || w.scope), w.beginScope && (w.beginScope._wrap ? (ne(z, te.classNameAliases[w.beginScope._wrap] || w.beginScope._wrap), z = "") : w.beginScope._multi && (Ve(w.beginScope, T), z = "")), C = Object.create(w, { parent: { value: C } }), C; } function qe(w, T, k) { let H = ut(w.endRe, k); if (H) { if (w["on:end"]) { const Z = new an(w); w["on:end"](T, Z), Z.isMatchIgnored && (H = !1); } if (H) { for (; w.endsParent && w.parent; ) w = w.parent; return w; } } if (w.endsWithParent) return qe(w.parent, T, k); } function Un(w) { return C.matcher.regexIndex === 0 ? (z += w[0], 1) : (He = !0, 0); } function Hn(w) { const T = w[0], k = w.rule, H = new an(k), Z = [k.__beforeBegin, k["on:begin"]]; for (const re of Z) if (re && (re(w, H), H.isMatchIgnored)) return Un(T); return k.skip ? z += T : (k.excludeBegin && (z += T), V(), !k.returnBegin && !k.excludeBegin && (z = T)), je(k, w), k.returnBegin ? 0 : T.length; } function Fn(w) { const T = w[0], k = N.substring(w.index), H = qe(C, w, k); if (!H) return gn; const Z = C; C.endScope && C.endScope._wrap ? (V(), ne(T, C.endScope._wrap)) : C.endScope && C.endScope._multi ? (V(), Ve(C.endScope, w)) : Z.skip ? z += T : (Z.returnEnd || Z.excludeEnd || (z += T), V(), Z.excludeEnd && (z = T)); do C.scope && Q.closeNode(), !C.skip && !C.subLanguage && (Se += C.relevance), C = C.parent; while (C !== H.parent); return H.starts && je(H.starts, w), Z.returnEnd ? 0 : T.length; } function zn() { const w = []; for (let T = C; T !== te; T = T.parent) T.scope && w.unshift(T.scope); w.forEach((T) => Q.openNode(T)); } let Te = {}; function Je(w, T) { const k = T && T[0]; if (z += w, k == null) return V(), 0; if (Te.type === "begin" && T.type === "end" && Te.index === T.index && k === "") { if (z += N.slice(T.index, T.index + 1), !g) { const H = new Error(`0 width match regex (${b})`); throw H.languageName = b, H.badRule = Te.rule, H; } return 1; } if (Te = T, T.type === "begin") return Hn(T); if (T.type === "illegal" && !O) { const H = new Error('Illegal lexeme "' + k + '" for mode "' + (C.scope || "") + '"'); throw H.mode = C, H; } else if (T.type === "end") { const H = Fn(T); if (H !== gn) return H; } if (T.type === "illegal" && k === "") return 1; if (Ue > 1e5 && Ue > T.index * 3) throw new Error("potential infinite loop, way more iterations than matches"); return z += k, k.length; } const te = L(b); if (!te) throw ue(n.replace("{}", b)), new Error('Unknown language: "' + b + '"'); const xn = Kt(te); let Pe = "", C = U || xn; const en = {}, Q = new i.__emitter(i); zn(); let z = "", Se = 0, ce = 0, Ue = 0, He = !1; try { if (te.__emitTokens) te.__emitTokens(N, Q); else { for (C.matcher.considerAll(); ; ) { Ue++, He ? He = !1 : C.matcher.considerAll(), C.matcher.lastIndex = ce; const w = C.matcher.exec(N); if (!w) break; const T = N.substring(ce, w.index), k = Je(T, w); ce = w.index + k; } Je(N.substring(ce)); } return Q.finalize(), Pe = Q.toHTML(), { language: b, value: Pe, relevance: Se, illegal: !1, _emitter: Q, _top: C }; } catch (w) { if (w.message && w.message.includes("Illegal")) return { language: b, value: ze(N), illegal: !0, relevance: 0, _illegalBy: { message: w.message, index: ce, context: N.slice(ce - 100, ce + 100), mode: w.mode, resultSoFar: Pe }, _emitter: Q }; if (g) return { language: b, value: ze(N), illegal: !1, relevance: 0, errorRaised: w, _emitter: Q, _top: C }; throw w; } } function u(b) { const N = { value: ze(b), illegal: !1, relevance: 0, _top: t, _emitter: new i.__emitter(i) }; return N._emitter.addText(b), N; } function d(b, N) { N = N || i.languages || Object.keys(r); const O = u(b), U = N.filter(L).filter(P).map( (V) => c(V, b, !1) ); U.unshift(O); const x = U.sort((V, ne) => { if (V.relevance !== ne.relevance) return ne.relevance - V.relevance; if (V.language && ne.language) { if (L(V.language).supersetOf === ne.language) return 1; if (L(ne.language).supersetOf === V.language) return -1; } return 0; }), [X, J] = x, Me = X; return Me.secondBest = J, Me; } function h(b, N, O) { const U = N && l[N] || O; b.classList.add("hljs"), b.classList.add(`language-${U}`); } function p(b) { let N = null; const O = a(b); if (s(O)) return; if (oe( "before:highlightElement", { el: b, language: O } ), b.dataset.highlighted) { console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", b); return; } if (b.children.length > 0 && (i.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(b)), i.throwUnescapedHTML)) throw new Zt( "One of your code blocks includes unescaped HTML.", b.innerHTML ); N = b; const U = N.textContent, x = O ? o(U, { language: O, ignoreIllegals: !0 }) : d(U); b.innerHTML = x.value, b.dataset.highlighted = "yes", h(b, O, x.language), b.result = { language: x.language, // TODO: remove with version 11.0 re: x.relevance, relevance: x.relevance }, x.secondBest && (b.secondBest = { language: x.secondBest.language, relevance: x.secondBest.relevance }), oe("after:highlightElement", { el: b, result: x, text: U }); } function _(b) { i = fn(i, b); } const E = () => { A(), he("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); }; function m() { A(), he("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); } let v = !1; function A() { if (document.readyState === "loading") { v = !0; return; } document.querySelectorAll(i.cssSelector).forEach(p); } function D() { v && A(); } typeof window != "undefined" && window.addEventListener && window.addEventListener("DOMContentLoaded", D, !1); function S(b, N) { let O = null; try { O = N(e); } catch (U) { if (ue("Language definition for '{}' could not be registered.".replace("{}", b)), g) ue(U); else throw U; O = t; } O.name || (O.name = b), r[b] = O, O.rawDefinition = N.bind(null, e), O.aliases && I(O.aliases, { languageName: b }); } function M(b) { delete r[b]; for (const N of Object.keys(l)) l[N] === b && delete l[N]; } function R() { return Object.keys(r); } function L(b) { return b = (b || "").toLowerCase(), r[b] || r[l[b]]; } function I(b, { languageName: N }) { typeof b == "string" && (b = [b]), b.forEach((O) => { l[O.toLowerCase()] = N; }); } function P(b) { const N = L(b); return N && !N.disableAutodetect; } function $(b) { b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (N) => { b["before:highlightBlock"]( Object.assign({ block: N.el }, N) ); }), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (N) => { b["after:highlightBlock"]( Object.assign({ block: N.el }, N) ); }); } function K(b) { $(b), f.push(b); } function Y(b) { const N = f.indexOf(b); N !== -1 && f.splice(N, 1); } function oe(b, N) { const O = b; f.forEach(function(U) { U[O] && U[O](N); }); } function ge(b) { return he("10.7.0", "highlightBlock will be removed entirely in v12.0"), he("10.7.0", "Please use highlightElement now."), p(b); } Object.assign(e, { highlight: o, highlightAuto: d, highlightAll: A, highlightElement: p, // TODO: Remove with v12 API highlightBlock: ge, configure: _, initHighlighting: E, initHighlightingOnLoad: m, registerLanguage: S, unregisterLanguage: M, listLanguages: R, getLanguage: L, registerAliases: I, autoDetection: P, inherit: fn, addPlugin: K, removePlugin: Y }), e.debugMode = function() { g = !1; }, e.safeMode = function() { g = !0; }, e.versionString = Qt, e.regex = { concat: fe, lookahead: wn, either: Ze, optional: lt, anyNumberOfTimes: ot }; for (const b in Le) typeof Le[b] == "object" && mn(Le[b]); return Object.assign(e, Le), e; }, _e = Rn({}); _e.newInstance = () => Rn({}); var Xt = _e; _e.HighlightJS = _e; _e.default = _e; const q = /* @__PURE__ */ tt(Xt); function Vt(e) { const r = e.regex, l = r.concat(/[\p{L}_]/u, r.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), f = /[\p{L}0-9._:-]+/u, g = { className: "symbol", begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/ }, n = { begin: /\s/, contains: [ { className: "keyword", begin: /#?[a-z_][a-z1-9_-]+/, illegal: /\n/ } ] }, t = e.inherit(n, { begin: /\(/, end: /\)/ }), i = e.inherit(e.APOS_STRING_MODE, { className: "string" }), s = e.inherit(e.QUOTE_STRING_MODE, { className: "string" }), a = { endsWithParent: !0, illegal: /`]+/ } ] } ] } ] }; return { name: "HTML, XML", aliases: [ "html", "xhtml", "rss", "atom", "xjb", "xsd", "xsl", "plist", "wsf", "svg" ], case_insensitive: !0, unicodeRegex: !0, contains: [ { className: "meta", begin: //, relevance: 10, contains: [ n, s, i, t, { begin: /\[/, end: /\]/, contains: [ { className: "meta", begin: //, contains: [ n, t, s, i ] } ] } ] }, e.COMMENT( //, { relevance: 10 } ), { begin: //, relevance: 10 }, g, // xml processing instructions { className: "meta", end: /\?>/, variants: [ { begin: /<\?xml/, relevance: 10, contains: [ s ] }, { begin: /<\?[a-z][a-z0-9]+/ } ] }, { className: "tag", /* The lookahead pattern (?=...) ensures that 'begin' only matches ')/, end: />/, keywords: { name: "style" }, contains: [a], starts: { end: /<\/style>/, returnEnd: !0, subLanguage: [ "css", "xml" ] } }, { className: "tag", // See the comment in the