@kingsimba/nc-ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.js","sources":["../node_modules/react-simple-code-editor/lib/index.js","../node_modules/prism-react-renderer/dist/index.mjs","../node_modules/js-yaml/dist/js-yaml.mjs","../src/components/YamlTextArea.tsx"],"sourcesContent":["\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText = /* CSS */ \"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /**\\n * IE doesn't support '-webkit-text-fill-color'\\n * So we use 'color: transparent' to make the text transparent on IE\\n * Unlike other browsers, it doesn't affect caret color in IE\\n */\\n .\").concat(className, \" {\\n color: transparent !important;\\n }\\n\\n .\").concat(className, \"::selection {\\n background-color: #accef7 !important;\\n color: transparent !important;\\n }\\n}\\n\");\nvar Editor = React.forwardRef(function Editor(props, ref) {\n var autoFocus = props.autoFocus, disabled = props.disabled, form = props.form, highlight = props.highlight, _a = props.ignoreTabKey, ignoreTabKey = _a === void 0 ? false : _a, _b = props.insertSpaces, insertSpaces = _b === void 0 ? true : _b, maxLength = props.maxLength, minLength = props.minLength, name = props.name, onBlur = props.onBlur, onClick = props.onClick, onFocus = props.onFocus, onKeyDown = props.onKeyDown, onKeyUp = props.onKeyUp, onValueChange = props.onValueChange, _c = props.padding, padding = _c === void 0 ? 0 : _c, placeholder = props.placeholder, preClassName = props.preClassName, readOnly = props.readOnly, required = props.required, style = props.style, _d = props.tabSize, tabSize = _d === void 0 ? 2 : _d, textareaClassName = props.textareaClassName, textareaId = props.textareaId, value = props.value, rest = __rest(props, [\"autoFocus\", \"disabled\", \"form\", \"highlight\", \"ignoreTabKey\", \"insertSpaces\", \"maxLength\", \"minLength\", \"name\", \"onBlur\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"onValueChange\", \"padding\", \"placeholder\", \"preClassName\", \"readOnly\", \"required\", \"style\", \"tabSize\", \"textareaClassName\", \"textareaId\", \"value\"]);\n var historyRef = React.useRef({\n stack: [],\n offset: -1,\n });\n var inputRef = React.useRef(null);\n var _e = React.useState(true), capture = _e[0], setCapture = _e[1];\n var contentStyle = {\n paddingTop: typeof padding === 'object' ? padding.top : padding,\n paddingRight: typeof padding === 'object' ? padding.right : padding,\n paddingBottom: typeof padding === 'object' ? padding.bottom : padding,\n paddingLeft: typeof padding === 'object' ? padding.left : padding,\n };\n var highlighted = highlight(value);\n var getLines = function (text, position) {\n return text.substring(0, position).split('\\n');\n };\n var recordChange = React.useCallback(function (record, overwrite) {\n var _a, _b, _c;\n if (overwrite === void 0) { overwrite = false; }\n var _d = historyRef.current, stack = _d.stack, offset = _d.offset;\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n historyRef.current.stack = stack.slice(0, offset + 1);\n // Limit the number of operations to 100\n var count = historyRef.current.stack.length;\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n historyRef.current.stack = stack.slice(extras, count);\n historyRef.current.offset = Math.max(historyRef.current.offset - extras, 0);\n }\n }\n var timestamp = Date.now();\n if (overwrite) {\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i;\n // Get the previous line\n var previous = (_a = getLines(last.value, last.selectionStart)\n .pop()) === null || _a === void 0 ? void 0 : _a.match(re);\n // Get the current line\n var current = (_b = getLines(record.value, record.selectionStart)\n .pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, record), { timestamp: timestamp });\n return;\n }\n }\n }\n // Add the new operation to the stack\n historyRef.current.stack.push(__assign(__assign({}, record), { timestamp: timestamp }));\n historyRef.current.offset++;\n }, []);\n var recordCurrentState = React.useCallback(function () {\n var input = inputRef.current;\n if (!input)\n return;\n // Save current state of the input\n var value = input.value, selectionStart = input.selectionStart, selectionEnd = input.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n });\n }, [recordChange]);\n var updateInput = function (record) {\n var input = inputRef.current;\n if (!input)\n return;\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(record.value);\n };\n var applyEdits = function (record) {\n // Save last selection state\n var input = inputRef.current;\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && input) {\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, last), { selectionStart: input.selectionStart, selectionEnd: input.selectionEnd });\n }\n // Save the changes\n recordChange(record);\n updateInput(record);\n };\n var undoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the previous edit\n var record = stack[offset - 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.max(offset - 1, 0);\n }\n };\n var redoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the next edit\n var record = stack[offset + 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.min(offset + 1, stack.length - 1);\n }\n };\n var handleKeyDown = function (e) {\n if (onKeyDown) {\n onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n if (e.key === 'Escape') {\n e.currentTarget.blur();\n }\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n if (e.key === 'Tab' && !ignoreTabKey && capture) {\n // Prevent focus change\n e.preventDefault();\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_1 = linesBeforeCaret.length - 1;\n var endLine_1 = getLines(value, selectionEnd).length - 1;\n var nextValue = value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_1 &&\n i <= endLine_1 &&\n line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n return line;\n })\n .join('\\n');\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine_1];\n applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter))\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n }\n else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_2 = linesBeforeCaret.length - 1;\n var endLine_2 = getLines(value, selectionEnd).length - 1;\n var startLineText = linesBeforeCaret[startLine_2];\n applyEdits({\n value: value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_2 && i <= endLine_2) {\n return tabCharacter + line;\n }\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: startLineText && /\\S/.test(startLineText)\n ? selectionStart + tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1),\n });\n }\n else {\n var updatedSelection = selectionStart + tabCharacter.length;\n applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) +\n tabCharacter +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Backspace') {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n var updatedSelection = selectionStart - tabCharacter.length;\n applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Enter') {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = getLines(value, selectionStart).pop();\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n e.preventDefault();\n // Preserve indentation on inserting a new line\n var indent = '\\n' + matches[0];\n var updatedSelection = selectionStart + indent.length;\n applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) +\n indent +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n }\n else if (e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars = void 0;\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n }\n else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n }\n else {\n chars = ['[', ']'];\n }\n }\n else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n }\n else {\n chars = [\"'\", \"'\"];\n }\n }\n else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n applyEdits({\n value: value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n }\n else if ((isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey) {\n e.preventDefault();\n undoEdit();\n }\n else if ((isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey) {\n e.preventDefault();\n redoEdit();\n }\n else if (e.keyCode === KEYCODE_M &&\n e.ctrlKey &&\n (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n // Toggle capturing tab key so users can focus away\n setCapture(function (prev) { return !prev; });\n }\n };\n var handleChange = function (e) {\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n }, true);\n onValueChange(value);\n };\n React.useEffect(function () {\n recordCurrentState();\n }, [recordCurrentState]);\n React.useImperativeHandle(ref, function () {\n return {\n get session() {\n return {\n history: historyRef.current,\n };\n },\n set session(session) {\n historyRef.current = session.history;\n },\n };\n }, []);\n return (React.createElement(\"div\", __assign({}, rest, { style: __assign(__assign({}, styles.container), style) }),\n React.createElement(\"pre\", __assign({ className: preClassName, \"aria-hidden\": \"true\", style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle) }, (typeof highlighted === 'string'\n ? { dangerouslySetInnerHTML: { __html: highlighted + '<br />' } }\n : { children: highlighted }))),\n React.createElement(\"textarea\", { ref: function (c) { return (inputRef.current = c); }, style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle), className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''), id: textareaId, value: value, onChange: handleChange, onKeyDown: handleKeyDown, onClick: onClick, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, disabled: disabled, form: form, maxLength: maxLength, minLength: minLength, name: name, placeholder: placeholder, readOnly: readOnly, required: required, autoFocus: autoFocus, autoCapitalize: \"off\", autoComplete: \"off\", autoCorrect: \"off\", spellCheck: false, \"data-gramm\": false }),\n React.createElement(\"style\", { dangerouslySetInnerHTML: { __html: cssText } })));\n});\nvar styles = {\n container: {\n position: 'relative',\n textAlign: 'left',\n boxSizing: 'border-box',\n padding: 0,\n overflow: 'hidden',\n },\n textarea: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n resize: 'none',\n color: 'inherit',\n overflow: 'hidden',\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n WebkitTextFillColor: 'transparent',\n },\n highlight: {\n position: 'relative',\n pointerEvents: 'none',\n },\n editor: {\n margin: 0,\n border: 0,\n background: 'none',\n boxSizing: 'inherit',\n display: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontVariantLigatures: 'inherit',\n fontWeight: 'inherit',\n letterSpacing: 'inherit',\n lineHeight: 'inherit',\n tabSize: 'inherit',\n textIndent: 'inherit',\n textRendering: 'inherit',\n textTransform: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'keep-all',\n overflowWrap: 'break-word',\n },\n};\nexports.default = Editor;\n//# sourceMappingURL=index.js.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\nvar require_prism = __commonJS({\n \"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\"(exports, module) {\n var Prism2 = function() {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/\\u00a0/g, \" \");\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function(obj) {\n if (!obj[\"__id\"]) {\n Object.defineProperty(obj, \"__id\", { value: ++uniqueId });\n }\n return obj[\"__id\"];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case \"Object\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (\n /** @type {any} */\n clone\n );\n case \"Array\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n /** @type {any} */\n o.forEach(function(v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function(element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return \"none\";\n },\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function(element, language) {\n element.className = element.className.replace(RegExp(lang, \"gi\"), \"\");\n element.classList.add(\"language-\" + language);\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function(element, className, defaultActivation) {\n var no = \"no-\" + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function(id, redef) {\n var lang2 = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang2[key] = redef[key];\n }\n return lang2;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function(inside, before, insert, root) {\n root = root || /** @type {any} */\n _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function(key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === \"Object\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === \"Array\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function(text, grammar, language) {\n var env = {\n code: text,\n grammar,\n language\n };\n _.hooks.run(\"before-tokenize\", env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run(\"after-tokenize\", env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function(name, callback) {\n var hooks2 = _.hooks.all;\n hooks2[name] = hooks2[name] || [];\n hooks2[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++]; ) {\n callback(env);\n }\n }\n },\n Token\n };\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || \"\").length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == \"string\") {\n return o;\n }\n if (Array.isArray(o)) {\n var s = \"\";\n o.forEach(function(e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: \"span\",\n classes: [\"token\", o.type],\n attributes: {},\n language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run(\"wrap\", env);\n var attributes = \"\";\n for (var name in env.attributes) {\n attributes += \" \" + name + '=\"' + (env.attributes[name] || \"\").replace(/\"/g, \"&quot;\") + '\"';\n }\n return \"<\" + env.tag + ' class=\"' + env.classes.join(\" \") + '\"' + attributes + \">\" + env.content + \"</\" + env.tag + \">\";\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + \",\" + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + \"g\");\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === \"string\"); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + \",\" + j,\n reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = { value: null, prev: null, next: null };\n var tail = { value: null, prev: head, next: null };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = { value, prev: node, next };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n return _;\n }();\n module.exports = Prism2;\n Prism2.default = Prism2;\n }\n});\n\n// src/prism-langs.ts\nvar Prism = __toESM(require_prism());\nPrism.languages.markup = { comment: { pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/, greedy: true }, prolog: { pattern: /<\\?[\\s\\S]+?\\?>/, greedy: true }, doctype: { pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i, greedy: true, inside: { \"internal-subset\": { pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/, lookbehind: true, greedy: true, inside: null }, string: { pattern: /\"[^\"]*\"|'[^']*'/, greedy: true }, punctuation: /^<!|>$|[[\\]]/, \"doctype-tag\": /^DOCTYPE/i, name: /[^\\s<>'\"]+/ } }, cdata: { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, greedy: true }, tag: { pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/, greedy: true, inside: { tag: { pattern: /^<\\/?[^\\s>\\/]+/, inside: { punctuation: /^<\\/?/, namespace: /^[^\\s>\\/:]+:/ } }, \"special-attr\": [], \"attr-value\": { pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, { pattern: /^(\\s*)[\"']|[\"']$/, lookbehind: true }] } }, punctuation: /\\/?>/, \"attr-name\": { pattern: /[^\\s>\\/]+/, inside: { namespace: /^[^\\s>\\/:]+:/ } } } }, entity: [{ pattern: /&[\\da-z]{1,8};/i, alias: \"named-entity\" }, /&#x?[\\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside[\"internal-subset\"].inside = Prism.languages.markup, Prism.hooks.add(\"wrap\", function(e) {\n \"entity\" === e.type && (e.attributes.title = e.content.replace(/&amp;/, \"&\"));\n}), Object.defineProperty(Prism.languages.markup.tag, \"addInlined\", { value: function(e, n) {\n var t = {}, t = (t[\"language-\" + n] = { pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i, lookbehind: true, inside: Prism.languages[n] }, t.cdata = /^<!\\[CDATA\\[|\\]\\]>$/i, { \"included-cdata\": { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, inside: t } }), n = (t[\"language-\" + n] = { pattern: /[\\s\\S]+/, inside: Prism.languages[n] }, {});\n n[e] = { pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function() {\n return e;\n }), \"i\"), lookbehind: true, greedy: true, inside: t }, Prism.languages.insertBefore(\"markup\", \"cdata\", n);\n} }), Object.defineProperty(Prism.languages.markup.tag, \"addAttribute\", { value: function(e, n) {\n Prism.languages.markup.tag.inside[\"special-attr\"].push({ pattern: RegExp(/(^|[\"'\\s])/.source + \"(?:\" + e + \")\" + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, \"i\"), lookbehind: true, inside: { \"attr-name\": /^[^\\s=]+/, \"attr-value\": { pattern: /=[\\s\\S]+/, inside: { value: { pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/, lookbehind: true, alias: [n, \"language-\" + n], inside: Prism.languages[n] }, punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, /\"|'/] } } } });\n} }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend(\"markup\", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function(e) {\n var n = { pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/, alias: \"escape\" }, t = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/, a = \"(?:[^\\\\\\\\-]|\" + t.source + \")\", a = RegExp(a + \"-\" + a), r = { pattern: /(<|')[^<>']+(?=[>']$)/, lookbehind: true, alias: \"variable\" };\n e.languages.regex = { \"char-class\": { pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/, lookbehind: true, inside: { \"char-class-negation\": { pattern: /(^\\[)\\^/, lookbehind: true, alias: \"operator\" }, \"char-class-punctuation\": { pattern: /^\\[|\\]$/, alias: \"punctuation\" }, range: { pattern: a, inside: { escape: t, \"range-punctuation\": { pattern: /-/, alias: \"operator\" } } }, \"special-escape\": n, \"char-set\": { pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, escape: t } }, \"special-escape\": n, \"char-set\": { pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, backreference: [{ pattern: /\\\\(?![123][0-7]{2})[1-9]/, alias: \"keyword\" }, { pattern: /\\\\k<[^<>']+>/, alias: \"keyword\", inside: { \"group-name\": r } }], anchor: { pattern: /[$^]|\\\\[ABbGZz]/, alias: \"function\" }, escape: t, group: [{ pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/, alias: \"punctuation\", inside: { \"group-name\": r } }, { pattern: /\\)/, alias: \"punctuation\" }], quantifier: { pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/, alias: \"number\" }, alternation: { pattern: /\\|/, alias: \"keyword\" } };\n}(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, greedy: true }, \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i, lookbehind: true, inside: { punctuation: /[.\\\\]/ } }, keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/, boolean: /\\b(?:false|true)\\b/, function: /\\b\\w+(?=\\()/, number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend(\"clike\", { \"class-name\": [Prism.languages.clike[\"class-name\"], { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/, lookbehind: true }], keyword: [{ pattern: /((?:^|\\})\\s*)catch\\b/, lookbehind: true }, { pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/, lookbehind: true }], function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/, number: { pattern: RegExp(/(^|[^\\w$])/.source + \"(?:\" + /NaN|Infinity/.source + \"|\" + /0[bB][01]+(?:_[01]+)*n?/.source + \"|\" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + \"|\" + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + \"|\" + /\\d+(?:_\\d+)*n/.source + \"|\" + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source + \")\" + /(?![\\w$])/.source), lookbehind: true }, operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/ }), Prism.languages.javascript[\"class-name\"][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/, Prism.languages.insertBefore(\"javascript\", \"keyword\", { regex: { pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + \"(?:\" + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + \"|\" + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + \")\" + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source), lookbehind: true, greedy: true, inside: { \"regex-source\": { pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/, lookbehind: true, alias: \"language-regex\", inside: Prism.languages.regex }, \"regex-delimiter\": /^\\/|\\/$/, \"regex-flags\": /^[a-z]+$/ } }, \"function-variable\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/, alias: \"function\" }, parameter: [{ pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/, lookbehind: true, inside: Prism.languages.javascript }], constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/ }), Prism.languages.insertBefore(\"javascript\", \"string\", { hashbang: { pattern: /^#!.*/, greedy: true, alias: \"comment\" }, \"template-string\": { pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/, lookbehind: true, inside: { \"interpolation-punctuation\": { pattern: /^\\$\\{|\\}$/, alias: \"punctuation\" }, rest: Prism.languages.javascript } }, string: /[\\s\\S]+/ } }, \"string-property\": { pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m, lookbehind: true, greedy: true, alias: \"property\" } }), Prism.languages.insertBefore(\"javascript\", \"operator\", { \"literal-property\": { pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m, lookbehind: true, alias: \"property\" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined(\"script\", \"javascript\"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, \"javascript\")), Prism.languages.js = Prism.languages.javascript, Prism.languages.actionscript = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/, operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/ }), Prism.languages.actionscript[\"class-name\"].alias = \"function\", delete Prism.languages.actionscript.parameter, delete Prism.languages.actionscript[\"literal-property\"], Prism.languages.markup && Prism.languages.insertBefore(\"actionscript\", \"string\", { xml: { pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/, lookbehind: true, inside: Prism.languages.markup } }), function(e) {\n var n = /#(?!\\{).+/, t = { pattern: /#\\{[^}]+\\}/, alias: \"variable\" };\n e.languages.coffeescript = e.languages.extend(\"javascript\", { comment: n, string: [{ pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/, greedy: true }, { pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/, greedy: true, inside: { interpolation: t } }], keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/, \"class-member\": { pattern: /@(?!\\d)\\w+/, alias: \"variable\" } }), e.languages.insertBefore(\"coffeescript\", \"comment\", { \"multiline-comment\": { pattern: /###[\\s\\S]+?###/, alias: \"comment\" }, \"block-regex\": { pattern: /\\/{3}[\\s\\S]*?\\/{3}/, alias: \"regex\", inside: { comment: n, interpolation: t } } }), e.languages.insertBefore(\"coffeescript\", \"string\", { \"inline-javascript\": { pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/, inside: { delimiter: { pattern: /^`|`$/, alias: \"punctuation\" }, script: { pattern: /[\\s\\S]+/, alias: \"language-javascript\", inside: e.languages.javascript } } }, \"multiline-string\": [{ pattern: /'''[\\s\\S]*?'''/, greedy: true, alias: \"string\" }, { pattern: /\"\"\"[\\s\\S]*?\"\"\"/, greedy: true, alias: \"string\", inside: { interpolation: t } }] }), e.languages.insertBefore(\"coffeescript\", \"keyword\", { property: /(?!\\d)\\w+(?=\\s*:(?!:))/ }), delete e.languages.coffeescript[\"template-string\"], e.languages.coffee = e.languages.coffeescript;\n}(Prism), function(l) {\n var e = l.languages.javadoclike = { parameter: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m, lookbehind: true }, keyword: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m, lookbehind: true }, punctuation: /[{}]/ };\n Object.defineProperty(e, \"addSupport\", { value: function(e2, o) {\n (e2 = \"string\" == typeof e2 ? [e2] : e2).forEach(function(e3) {\n var n = function(e4) {\n e4.inside || (e4.inside = {}), e4.inside.rest = o;\n }, t = \"doc-comment\";\n if (a = l.languages[e3]) {\n var a, r = a[t];\n if ((r = r ? r : (a = l.languages.insertBefore(e3, \"comment\", { \"doc-comment\": { pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, alias: \"comment\" } }))[t]) instanceof RegExp && (r = a[t] = { pattern: r }), Array.isArray(r))\n for (var s = 0, i = r.length; s < i; s++)\n r[s] instanceof RegExp && (r[s] = { pattern: r[s] }), n(r[s]);\n else\n n(r);\n }\n });\n } }), e.addSupport([\"java\", \"javascript\", \"php\"], e);\n}(Prism), function(e) {\n var n = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/, n = (e.languages.css = { comment: /\\/\\*[\\s\\S]*?\\*\\//, atrule: { pattern: RegExp(\"@[\\\\w-](?:\" + /[^;{\\s\"']|\\s+(?!\\s)/.source + \"|\" + n.source + \")*?\" + /(?:;|(?=\\s*\\{))/.source), inside: { rule: /^@[\\w-]+/, \"selector-function-argument\": { pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/, lookbehind: true, alias: \"selector\" }, keyword: { pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/, lookbehind: true } } }, url: { pattern: RegExp(\"\\\\burl\\\\((?:\" + n.source + \"|\" + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + \")\\\\)\", \"i\"), greedy: true, inside: { function: /^url/i, punctuation: /^\\(|\\)$/, string: { pattern: RegExp(\"^\" + n.source + \"$\"), alias: \"url\" } } }, selector: { pattern: RegExp(`(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"'\\\\s]|\\\\s+(?![\\\\s{])|` + n.source + \")*(?=\\\\s*\\\\{)\"), lookbehind: true }, string: { pattern: n, greedy: true }, property: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i, lookbehind: true }, important: /!important\\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i, lookbehind: true }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup);\n n && (n.tag.addInlined(\"style\", \"css\"), n.tag.addAttribute(\"style\", \"css\"));\n}(Prism), function(e) {\n var n = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, n = (e.languages.css.selector = { pattern: e.languages.css.selector.pattern, lookbehind: true, inside: n = { \"pseudo-element\": /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/, \"pseudo-class\": /:[-\\w]+/, class: /\\.[-\\w]+/, id: /#[-\\w]+/, attribute: { pattern: RegExp(`\\\\[(?:[^[\\\\]\"']|` + n.source + \")*\\\\]\"), greedy: true, inside: { punctuation: /^\\[|\\]$/, \"case-sensitivity\": { pattern: /(\\s)[si]$/i, lookbehind: true, alias: \"keyword\" }, namespace: { pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/, lookbehind: true, inside: { punctuation: /\\|$/ } }, \"attr-name\": { pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/, lookbehind: true }, \"attr-value\": [n, { pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/, lookbehind: true }], operator: /[|~*^$]?=/ } }, \"n-th\": [{ pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/, lookbehind: true, inside: { number: /[\\dn]+/, operator: /[+-]/ } }, { pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i, lookbehind: true }], combinator: />|\\+|~|\\|\\|/, punctuation: /[(),]/ } }, e.languages.css.atrule.inside[\"selector-function-argument\"].inside = n, e.languages.insertBefore(\"css\", \"property\", { variable: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i, lookbehind: true } }), { pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/, lookbehind: true }), t = { pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/, lookbehind: true };\n e.languages.insertBefore(\"css\", \"function\", { operator: { pattern: /(\\s)[+\\-*\\/](?=\\s)/, lookbehind: true }, hexcode: { pattern: /\\B#[\\da-f]{3,8}\\b/i, alias: \"color\" }, color: [{ pattern: /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i, lookbehind: true }, { pattern: /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i, inside: { unit: n, number: t, function: /[\\w-]+(?=\\()/, punctuation: /[(),]/ } }], entity: /\\\\[\\da-f]{1,8}/i, unit: n, number: t });\n}(Prism), function(e) {\n var n = /[*&][^\\s[\\]{},]+/, t = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/, a = \"(?:\" + t.source + \"(?:[ \t]+\" + n.source + \")?|\" + n.source + \"(?:[ \t]+\" + t.source + \")?)\", r = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function() {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n }), s = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n function i(e2, n2) {\n n2 = (n2 || \"\").replace(/m/g, \"\") + \"m\";\n var t2 = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<value>>/g, function() {\n return e2;\n });\n return RegExp(t2, n2);\n }\n e.languages.yaml = { scalar: { pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function() {\n return a;\n })), lookbehind: true, alias: \"string\" }, comment: /#.*/, key: { pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<key>>/g, function() {\n return \"(?:\" + r + \"|\" + s + \")\";\n })), lookbehind: true, greedy: true, alias: \"atrule\" }, directive: { pattern: /(^[ \\t]*)%.+/m, lookbehind: true, alias: \"important\" }, datetime: { pattern: i(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source), lookbehind: true, alias: \"number\" }, boolean: { pattern: i(/false|true/.source, \"i\"), lookbehind: true, alias: \"important\" }, null: { pattern: i(/null|~/.source, \"i\"), lookbehind: true, alias: \"important\" }, string: { pattern: i(s), lookbehind: true, greedy: true }, number: { pattern: i(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, \"i\"), lookbehind: true }, tag: t, important: n, punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./ }, e.languages.yml = e.languages.yaml;\n}(Prism), function(o) {\n var n = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n function e(e2) {\n return e2 = e2.replace(/<inner>/g, function() {\n return n;\n }), RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + \"(?:\" + e2 + \")\");\n }\n var t = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source, a = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function() {\n return t;\n }), r = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source, l = (o.languages.markdown = o.languages.extend(\"markup\", {}), o.languages.insertBefore(\"markdown\", \"prolog\", { \"front-matter-block\": { pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/, lookbehind: true, greedy: true, inside: { punctuation: /^---|---$/, \"front-matter\": { pattern: /\\S+(?:\\s+\\S+)*/, alias: [\"yaml\", \"language-yaml\"], inside: o.languages.yaml } } }, blockquote: { pattern: /^>(?:[\\t ]*>)*/m, alias: \"punctuation\" }, table: { pattern: RegExp(\"^\" + a + r + \"(?:\" + a + \")*\", \"m\"), inside: { \"table-data-rows\": { pattern: RegExp(\"^(\" + a + r + \")(?:\" + a + \")*$\"), lookbehind: true, inside: { \"table-data\": { pattern: RegExp(t), inside: o.languages.markdown }, punctuation: /\\|/ } }, \"table-line\": { pattern: RegExp(\"^(\" + a + \")\" + r + \"$\"), lookbehind: true, inside: { punctuation: /\\||:?-{3,}:?/ } }, \"table-header-row\": { pattern: RegExp(\"^\" + a + \"$\"), inside: { \"table-header\": { pattern: RegExp(t), alias: \"important\", inside: o.languages.markdown }, punctuation: /\\|/ } } } }, code: [{ pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/, lookbehind: true, alias: \"keyword\" }, { pattern: /^```[\\s\\S]*?^```$/m, greedy: true, inside: { \"code-block\": { pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m, lookbehind: true }, \"code-language\": { pattern: /^(```).+/, lookbehind: true }, punctuation: /```/ } }], title: [{ pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m, alias: \"important\", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\\s*)#.+/m, lookbehind: true, alias: \"important\", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m, lookbehind: true, alias: \"punctuation\" }, list: { pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m, lookbehind: true, alias: \"punctuation\" }, \"url-reference\": { pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/, inside: { variable: { pattern: /^(!?\\[)[^\\]]+/, lookbehind: true }, string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/, punctuation: /^[\\[\\]!:]|[<>]/ }, alias: \"url\" }, bold: { pattern: e(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^..)[\\s\\S]+(?=..$)/, lookbehind: true, inside: {} }, punctuation: /\\*\\*|__/ } }, italic: { pattern: e(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^.)[\\s\\S]+(?=.$)/, lookbehind: true, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e(/(~~?)(?:(?!~)<inner>)+\\2/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^~~?)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: {} }, punctuation: /~~?/ } }, \"code-snippet\": { pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/, lookbehind: true, greedy: true, alias: [\"code\", \"keyword\"] }, url: { pattern: e(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source), lookbehind: true, greedy: true, inside: { operator: /^!/, content: { pattern: /(^\\[)[^\\]]+(?=\\])/, lookbehind: true, inside: {} }, variable: { pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/, lookbehind: true }, url: { pattern: /(^\\]\\()[^\\s)]+/, lookbehind: true }, string: { pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/, lookbehind: true } } } }), [\"url\", \"bold\", \"italic\", \"strike\"].forEach(function(n2) {\n [\"url\", \"bold\", \"italic\", \"strike\", \"code-snippet\"].forEach(function(e2) {\n n2 !== e2 && (o.languages.markdown[n2].inside.content.inside[e2] = o.languages.markdown[e2]);\n });\n }), o.hooks.add(\"after-tokenize\", function(e2) {\n \"markdown\" !== e2.language && \"md\" !== e2.language || !function e3(n2) {\n if (n2 && \"string\" != typeof n2)\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r2, s = n2[t2];\n \"code\" !== s.type ? e3(s.content) : (r2 = s.content[1], s = s.content[3], r2 && s && \"code-language\" === r2.type && \"code-block\" === s.type && \"string\" == typeof r2.content && (r2 = r2.content.replace(/\\b#/g, \"sharp\").replace(/\\b\\+\\+/g, \"pp\"), r2 = \"language-\" + (r2 = (/[a-z][\\w-]*/i.exec(r2) || [\"\"])[0].toLowerCase()), s.alias ? \"string\" == typeof s.alias ? s.alias = [s.alias, r2] : s.alias.push(r2) : s.alias = [r2]));\n }\n }(e2.tokens);\n }), o.hooks.add(\"wrap\", function(e2) {\n if (\"code-block\" === e2.type) {\n for (var n2 = \"\", t2 = 0, a2 = e2.classes.length; t2 < a2; t2++) {\n var r2 = e2.classes[t2], r2 = /language-(.+)/.exec(r2);\n if (r2) {\n n2 = r2[1];\n break;\n }\n }\n var s, i = o.languages[n2];\n i ? e2.content = o.highlight(function(e3) {\n e3 = e3.replace(l, \"\");\n return e3 = e3.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function(e4, n3) {\n var t3;\n return \"#\" === (n3 = n3.toLowerCase())[0] ? (t3 = \"x\" === n3[1] ? parseInt(n3.slice(2), 16) : Number(n3.slice(1)), c(t3)) : u[n3] || e4;\n });\n }(e2.content), i, n2) : n2 && \"none\" !== n2 && o.plugins.autoloader && (s = \"md-\" + (/* @__PURE__ */ new Date()).valueOf() + \"-\" + Math.floor(1e16 * Math.random()), e2.attributes.id = s, o.plugins.autoloader.loadLanguages(n2, function() {\n var e3 = document.getElementById(s);\n e3 && (e3.innerHTML = o.highlight(e3.textContent, o.languages[n2], n2));\n }));\n }\n }), RegExp(o.languages.markup.tag.pattern.source, \"gi\")), u = { amp: \"&\", lt: \"<\", gt: \">\", quot: '\"' }, c = String.fromCodePoint || String.fromCharCode;\n o.languages.md = o.languages.markdown;\n}(Prism), Prism.languages.graphql = { comment: /#.*/, description: { pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i, greedy: true, alias: \"string\", inside: { \"language-markdown\": { pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, string: { pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/, greedy: true }, number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, boolean: /\\b(?:false|true)\\b/, variable: /\\$[a-z_]\\w*/i, directive: { pattern: /@[a-z_]\\w*/i, alias: \"function\" }, \"attr-name\": { pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i, greedy: true }, \"atom-input\": { pattern: /\\b[A-Z]\\w*Input\\b/, alias: \"class-name\" }, scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/, constant: /\\b[A-Z][A-Z_\\d]*\\b/, \"class-name\": { pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/, lookbehind: true }, fragment: { pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-mutation\": { pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-query\": { pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/, operator: /[!=|&]|\\.{3}/, \"property-query\": /\\w+(?=\\s*\\()/, object: /\\w+(?=\\s*\\{)/, punctuation: /[!(){}\\[\\]:=,]/, property: /\\w+/ }, Prism.hooks.add(\"after-tokenize\", function(e) {\n if (\"graphql\" === e.language)\n for (var i = e.tokens.filter(function(e2) {\n return \"string\" != typeof e2 && \"comment\" !== e2.type && \"scalar\" !== e2.type;\n }), o = 0; o < i.length; ) {\n var n = i[o++];\n if (\"keyword\" === n.type && \"mutation\" === n.content) {\n var t = [];\n if (p([\"definition-mutation\", \"punctuation\"]) && \"(\" === c(1).content) {\n o += 2;\n var a = d(/^\\($/, /^\\)$/);\n if (-1 === a)\n continue;\n for (; o < a; o++) {\n var r = c(0);\n \"variable\" === r.type && (g(r, \"variable-input\"), t.push(r.content));\n }\n o = a + 1;\n }\n if (p([\"punctuation\", \"property-query\"]) && \"{\" === c(0).content && (o++, g(c(0), \"property-mutation\"), 0 < t.length)) {\n var s = d(/^\\{$/, /^\\}$/);\n if (-1 !== s)\n for (var l = o; l < s; l++) {\n var u = i[l];\n \"variable\" === u.type && 0 <= t.indexOf(u.content) && g(u, \"variable-input\");\n }\n }\n }\n }\n function c(e2) {\n return i[o + e2];\n }\n function p(e2, n2) {\n n2 = n2 || 0;\n for (var t2 = 0; t2 < e2.length; t2++) {\n var a2 = c(t2 + n2);\n if (!a2 || a2.type !== e2[t2])\n return;\n }\n return 1;\n }\n function d(e2, n2) {\n for (var t2 = 1, a2 = o; a2 < i.length; a2++) {\n var r2 = i[a2], s2 = r2.content;\n if (\"punctuation\" === r2.type && \"string\" == typeof s2) {\n if (e2.test(s2))\n t2++;\n else if (n2.test(s2) && 0 === --t2)\n return a2;\n }\n }\n return -1;\n }\n function g(e2, n2) {\n var t2 = e2.alias;\n t2 ? Array.isArray(t2) || (e2.alias = t2 = [t2]) : e2.alias = t2 = [], t2.push(n2);\n }\n}), Prism.languages.sql = { comment: { pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/, lookbehind: true }, variable: [{ pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/, greedy: true }, /@[\\w.$]+/], string: { pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/, greedy: true, lookbehind: true }, identifier: { pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/, greedy: true, lookbehind: true, inside: { punctuation: /^`|`$/ } }, function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i, boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i, number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i, operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i, punctuation: /[;[\\]()`,.]/ }, function(b) {\n var e = b.languages.javascript[\"template-string\"], t = e.pattern.source, m = e.inside.interpolation, f = m.inside[\"interpolation-punctuation\"], s = m.pattern.source;\n function n(e2, n2) {\n if (b.languages[e2])\n return { pattern: RegExp(\"((?:\" + n2 + \")\\\\s*)\" + t), lookbehind: true, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, \"embedded-code\": { pattern: /[\\s\\S]+/, alias: e2 } } };\n }\n function h(e2, n2, t2) {\n e2 = { code: e2, grammar: n2, language: t2 };\n return b.hooks.run(\"before-tokenize\", e2), e2.tokens = b.tokenize(e2.code, e2.grammar), b.hooks.run(\"after-tokenize\", e2), e2.tokens;\n }\n function l(a2, e2, r) {\n var n2 = b.tokenize(a2, { interpolation: { pattern: RegExp(s), lookbehind: true } }), p = 0, d = {}, n2 = h(n2.map(function(e3) {\n if (\"string\" == typeof e3)\n return e3;\n for (var n3, t2, e3 = e3.content; -1 !== a2.indexOf((t2 = p++, n3 = \"___\" + r.toUpperCase() + \"_\" + t2 + \"___\")); )\n ;\n return d[n3] = e3, n3;\n }).join(\"\"), e2, r), g = Object.keys(d);\n return p = 0, function e3(n3) {\n for (var t2 = 0; t2 < n3.length; t2++) {\n if (p >= g.length)\n return;\n var a3, r2, s2, i, o, l2, u2, c = n3[t2];\n \"string\" == typeof c || \"string\" == typeof c.content ? (a3 = g[p], -1 !== (u2 = (l2 = \"string\" == typeof c ? c : c.content).indexOf(a3)) && (++p, r2 = l2.substring(0, u2), o = d[a3], s2 = void 0, (i = {})[\"interpolation-punctuation\"] = f, 3 === (i = b.tokenize(o, i)).length && ((s2 = [1, 1]).push.apply(s2, h(i[1], b.languages.javascript, \"javascript\")), i.splice.apply(i, s2)), s2 = new b.Token(\"interpolation\", i, m.alias, o), i = l2.substring(u2 + a3.length), o = [], r2 && o.push(r2), o.push(s2), i && (e3(l2 = [i]), o.push.apply(o, l2)), \"string\" == typeof c ? (n3.splice.apply(n3, [t2, 1].concat(o)), t2 += o.length - 1) : c.content = o)) : (u2 = c.content, Array.isArray(u2) ? e3(u2) : e3([u2]));\n }\n }(n2), new b.Token(r, n2, \"language-\" + r, a2);\n }\n b.languages.javascript[\"template-string\"] = [n(\"css\", /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), n(\"html\", /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), n(\"svg\", /\\bsvg/.source), n(\"markdown\", /\\b(?:markdown|md)/.source), n(\"graphql\", /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source), n(\"sql\", /\\bsql/.source), e].filter(Boolean);\n var a = { javascript: true, js: true, typescript: true, ts: true, jsx: true, tsx: true };\n function u(e2) {\n return \"string\" == typeof e2 ? e2 : Array.isArray(e2) ? e2.map(u).join(\"\") : u(e2.content);\n }\n b.hooks.add(\"after-tokenize\", function(e2) {\n e2.language in a && !function e3(n2) {\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r, s2, i, o = n2[t2];\n \"string\" != typeof o && (r = o.content, Array.isArray(r) ? \"template-string\" === o.type ? (o = r[1], 3 === r.length && \"string\" != typeof o && \"embedded-code\" === o.type && (s2 = u(o), o = o.alias, o = Array.isArray(o) ? o[0] : o, i = b.languages[o]) && (r[1] = l(s2, i, o))) : e3(r) : \"string\" != typeof r && e3([r]));\n }\n }(e2.tokens);\n });\n}(Prism), function(e) {\n e.languages.typescript = e.languages.extend(\"javascript\", { \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: true, greedy: true, inside: null }, builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/ }), e.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, /\\btype\\b(?=\\s*(?:[\\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript[\"literal-property\"];\n var n = e.languages.extend(\"typescript\", {});\n delete n[\"class-name\"], e.languages.typescript[\"class-name\"].inside = n, e.languages.insertBefore(\"typescript\", \"function\", { decorator: { pattern: /@[$\\w\\xA0-\\uFFFF]+/, inside: { at: { pattern: /^@/, alias: \"operator\" }, function: /^[\\s\\S]+/ } }, \"generic-function\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/, greedy: true, inside: { function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: n } } } }), e.languages.ts = e.languages.typescript;\n}(Prism), function(e) {\n var n = e.languages.javascript, t = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source, a = \"(@(?:arg|argument|param|property)\\\\s+(?:\" + t + \"\\\\s+)?)\";\n e.languages.jsdoc = e.languages.extend(\"javadoclike\", { parameter: { pattern: RegExp(a + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source), lookbehind: true, inside: { punctuation: /\\./ } } }), e.languages.insertBefore(\"jsdoc\", \"keyword\", { \"optional-parameter\": { pattern: RegExp(a + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source), lookbehind: true, inside: { parameter: { pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/, lookbehind: true, inside: { punctuation: /\\./ } }, code: { pattern: /(=)[\\s\\S]*(?=\\]$)/, lookbehind: true, inside: n, alias: \"language-javascript\" }, punctuation: /[=[\\]]/ } }, \"class-name\": [{ pattern: RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(/<TYPE>/g, function() {\n return t;\n })), lookbehind: true, inside: { punctuation: /\\./ } }, { pattern: RegExp(\"(@[a-z]+\\\\s+)\" + t), lookbehind: true, inside: { string: n.string, number: n.number, boolean: n.boolean, keyword: e.languages.typescript.keyword, operator: /=>|\\.\\.\\.|[&|?:*]/, punctuation: /[.,;=<>{}()[\\]]/ } }], example: { pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/, lookbehind: true, inside: { code: { pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m, lookbehind: true, inside: n, alias: \"language-javascript\" } } } }), e.languages.javadoclike.addSupport(\"javascript\", e.languages.jsdoc);\n}(Prism), function(e) {\n e.languages.flow = e.languages.extend(\"javascript\", {}), e.languages.insertBefore(\"flow\", \"keyword\", { type: [{ pattern: /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/, alias: \"class-name\" }] }), e.languages.flow[\"function-variable\"].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i, delete e.languages.flow.parameter, e.languages.insertBefore(\"flow\", \"operator\", { \"flow-punctuation\": { pattern: /\\{\\||\\|\\}/, alias: \"punctuation\" } }), Array.isArray(e.languages.flow.keyword) || (e.languages.flow.keyword = [e.languages.flow.keyword]), e.languages.flow.keyword.unshift({ pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/, lookbehind: true }, { pattern: /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/, lookbehind: true });\n}(Prism), Prism.languages.n4js = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/ }), Prism.languages.insertBefore(\"n4js\", \"constant\", { annotation: { pattern: /@+\\w+/, alias: \"operator\" } }), Prism.languages.n4jsd = Prism.languages.n4js, function(e) {\n function n(e2, n2) {\n return RegExp(e2.replace(/<ID>/g, function() {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), n2);\n }\n e.languages.insertBefore(\"javascript\", \"function-variable\", { \"method-variable\": { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript[\"function-variable\"].pattern.source), lookbehind: true, alias: [\"function-variable\", \"method\", \"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"function\", { method: { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript.function.source), lookbehind: true, alias: [\"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"constant\", { \"known-class-name\": [{ pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/, alias: \"class-name\" }, { pattern: /\\b(?:[A-Z]\\w*)Error\\b/, alias: \"class-name\" }] }), e.languages.insertBefore(\"javascript\", \"keyword\", { imports: { pattern: n(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source), lookbehind: true, inside: e.languages.javascript }, exports: { pattern: n(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source), lookbehind: true, inside: e.languages.javascript } }), e.languages.javascript.keyword.unshift({ pattern: /\\b(?:as|default|export|from|import)\\b/, alias: \"module\" }, { pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/, alias: \"control-flow\" }, { pattern: /\\bnull\\b/, alias: [\"null\", \"nil\"] }, { pattern: /\\bundefined\\b/, alias: \"nil\" }), e.languages.insertBefore(\"javascript\", \"operator\", { spread: { pattern: /\\.{3}/, alias: \"operator\" }, arrow: { pattern: /=>/, alias: \"operator\" } }), e.languages.insertBefore(\"javascript\", \"punctuation\", { \"property-access\": { pattern: n(/(\\.\\s*)#?<ID>/.source), lookbehind: true }, \"maybe-class-name\": { pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/, lookbehind: true }, dom: { pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/, alias: \"variable\" }, console: { pattern: /\\bconsole(?=\\s*\\.)/, alias: \"class-name\" } });\n for (var t = [\"function\", \"function-variable\", \"method\", \"method-variable\", \"property-access\"], a = 0; a < t.length; a++) {\n var r = t[a], s = e.languages.javascript[r], r = (s = \"RegExp\" === e.util.type(s) ? e.languages.javascript[r] = { pattern: s } : s).inside || {};\n (s.inside = r)[\"maybe-class-name\"] = /^[A-Z][\\s\\S]*/;\n }\n}(Prism), function(s) {\n var e = s.util.clone(s.languages.javascript), t = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source, a = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source, r = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n function n(e2, n2) {\n return e2 = e2.replace(/<S>/g, function() {\n return t;\n }).replace(/<BRACES>/g, function() {\n return a;\n }).replace(/<SPREAD>/g, function() {\n return r;\n }), RegExp(e2, n2);\n }\n r = n(r).source, s.languages.jsx = s.languages.extend(\"markup\", e), s.languages.jsx.tag.pattern = n(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source), s.languages.jsx.tag.inside.tag.pattern = /^<\\/?[^\\s>\\/]*/, s.languages.jsx.tag.inside[\"attr-value\"].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/, s.languages.jsx.tag.inside.tag.inside[\"class-name\"] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/, s.languages.jsx.tag.inside.comment = e.comment, s.languages.insertBefore(\"inside\", \"attr-name\", { spread: { pattern: n(/<SPREAD>/.source), inside: s.languages.jsx } }, s.languages.jsx.tag), s.languages.insertBefore(\"inside\", \"special-attr\", { script: { pattern: n(/=<BRACES>/.source), alias: \"language-javascript\", inside: { \"script-punctuation\": { pattern: /^=(?=\\{)/, alias: \"punctuation\" }, rest: s.languages.jsx } } }, s.languages.jsx.tag);\n function i(e2) {\n for (var n2 = [], t2 = 0; t2 < e2.length; t2++) {\n var a2 = e2[t2], r2 = false;\n \"string\" != typeof a2 && (\"tag\" === a2.type && a2.content[0] && \"tag\" === a2.content[0].type ? \"</\" === a2.content[0].content[0].content ? 0 < n2.length && n2[n2.length - 1].tagName === o(a2.content[0].content[1]) && n2.pop() : \"/>\" !== a2.content[a2.content.length - 1].content && n2.push({ tagName: o(a2.content[0].content[1]), openedBraces: 0 }) : 0 < n2.length && \"punctuation\" === a2.type && \"{\" === a2.content ? n2[n2.length - 1].openedBraces++ : 0 < n2.length && 0 < n2[n2.length - 1].openedBraces && \"punctuation\" === a2.type && \"}\" === a2.content ? n2[n2.length - 1].openedBraces-- : r2 = true), (r2 || \"string\" == typeof a2) && 0 < n2.length && 0 === n2[n2.length - 1].openedBraces && (r2 = o(a2), t2 < e2.length - 1 && (\"string\" == typeof e2[t2 + 1] || \"plain-text\" === e2[t2 + 1].type) && (r2 += o(e2[t2 + 1]), e2.splice(t2 + 1, 1)), 0 < t2 && (\"string\" == typeof e2[t2 - 1] || \"plain-text\" === e2[t2 - 1].type) && (r2 = o(e2[t2 - 1]) + r2, e2.splice(t2 - 1, 1), t2--), e2[t2] = new s.Token(\"plain-text\", r2, null, r2)), a2.content && \"string\" != typeof a2.content && i(a2.content);\n }\n }\n var o = function(e2) {\n return e2 ? \"string\" == typeof e2 ? e2 : \"string\" == typeof e2.content ? e2.content : e2.content.map(o).join(\"\") : \"\";\n };\n s.hooks.add(\"after-tokenize\", function(e2) {\n \"jsx\" !== e2.language && \"tsx\" !== e2.language || i(e2.tokens);\n });\n}(Prism), function(e) {\n var n = e.util.clone(e.languages.typescript), n = (e.languages.tsx = e.languages.extend(\"jsx\", n), delete e.languages.tsx.parameter, delete e.languages.tsx[\"literal-property\"], e.languages.tsx.tag);\n n.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + \"(?:\" + n.pattern.source + \")\", n.pattern.flags), n.lookbehind = true;\n}(Prism), Prism.languages.swift = { comment: { pattern: /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/, lookbehind: true, greedy: true }, \"string-literal\": [{ pattern: RegExp(/(^|[^\"#])/.source + \"(?:\" + /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/.source + \"|\" + /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/.source + \")\" + /(?![\"#])/.source), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\\\($/, alias: \"punctuation\" }, punctuation: /\\\\(?=[\\r\\n])/, string: /[\\s\\S]+/ } }, { pattern: RegExp(/(^|[^\"#])(#+)/.source + \"(?:\" + /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/.source + \"|\" + /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source + \")\\\\2\"), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\#+\\($/, alias: \"punctuation\" }, string: /[\\s\\S]+/ } }], directive: { pattern: RegExp(/#/.source + \"(?:\" + /(?:elseif|if)\\b/.source + \"(?:[ \t]*\" + /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/.source + \")+|\" + /(?:else|endif)\\b/.source + \")\"), alias: \"property\", inside: { \"directive-name\": /^#\\w+/, boolean: /\\b(?:false|true)\\b/, number: /\\b\\d+(?:\\.\\d+)*\\b/, operator: /!|&&|\\|\\||[<>]=?/, punctuation: /[(),]/ } }, literal: { pattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/, alias: \"constant\" }, \"other-directive\": { pattern: /#\\w+\\b/, alias: \"property\" }, attribute: { pattern: /@\\w+/, alias: \"atrule\" }, \"function-definition\": { pattern: /(\\bfunc\\s+)\\w+/, lookbehind: true, alias: \"function\" }, label: { pattern: /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/, lookbehind: true, alias: \"important\" }, keyword: /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/, boolean: /\\b(?:false|true)\\b/, nil: { pattern: /\\bnil\\b/, alias: \"constant\" }, \"short-argument\": /\\$\\d+\\b/, omit: { pattern: /\\b_\\b/, alias: \"keyword\" }, number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i, \"class-name\": /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/, operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/, punctuation: /[{}[\\]();,.:\\\\]/ }, Prism.languages.swift[\"string-literal\"].forEach(function(e) {\n e.inside.interpolation.inside = Prism.languages.swift;\n}), function(e) {\n e.languages.kotlin = e.languages.extend(\"clike\", { keyword: { pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/, lookbehind: true }, function: [{ pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/, greedy: true }, { pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/, lookbehind: true, greedy: true }], number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/, operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/ }), delete e.languages.kotlin[\"class-name\"];\n var n = { \"interpolation-punctuation\": { pattern: /^\\$\\{?|\\}$/, alias: \"punctuation\" }, expression: { pattern: /[\\s\\S]+/, inside: e.languages.kotlin } };\n e.languages.insertBefore(\"kotlin\", \"string\", { \"string-literal\": [{ pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/, alias: \"multiline\", inside: { interpolation: { pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, inside: n }, string: /[\\s\\S]+/ } }, { pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/, alias: \"singleline\", inside: { interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, lookbehind: true, inside: n }, string: /[\\s\\S]+/ } }], char: { pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: true } }), delete e.languages.kotlin.string, e.languages.insertBefore(\"kotlin\", \"keyword\", { annotation: { pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/, alias: \"builtin\" } }), e.languages.insertBefore(\"kotlin\", \"function\", { label: { pattern: /\\b\\w+@|@\\w+\\b/, alias: \"symbol\" } }), e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin;\n}(Prism), Prism.languages.c = Prism.languages.extend(\"clike\", { comment: { pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, \"class-name\": { pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/, lookbehind: true }, keyword: /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i, operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/ }), Prism.languages.insertBefore(\"c\", \"string\", { char: { pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/, greedy: true } }), Prism.languages.insertBefore(\"c\", \"string\", { macro: { pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im, lookbehind: true, greedy: true, alias: \"property\", inside: { string: [{ pattern: /^(#\\s*include\\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c.string], char: Prism.languages.c.char, comment: Prism.languages.c.comment, \"macro-name\": [{ pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i, lookbehind: true }, { pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i, lookbehind: true, alias: \"function\" }], directive: { pattern: /^(#\\s*)[a-z]+/, lookbehind: true, alias: \"keyword\" }, \"directive-hash\": /^#/, punctuation: /##|\\\\(?=[\\r\\n])/, expression: { pattern: /\\S[\\s\\S]*/, inside: Prism.languages.c } } } }), Prism.languages.insertBefore(\"c\", \"function\", { constant: /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ }), delete Prism.languages.c.boolean, Prism.languages.objectivec = Prism.languages.extend(\"c\", { string: { pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, keyword: /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/, operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/ }), delete Prism.languages.objectivec[\"class-name\"], Prism.languages.objc = Prism.languages.objectivec, Prism.languages.reason = Prism.languages.extend(\"clike\", { string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/, greedy: true }, \"class-name\": /\\b[A-Z]\\w*/, keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/, operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/ }), Prism.languages.insertBefore(\"reason\", \"class-name\", { char: { pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/, greedy: true }, constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/, label: { pattern: /\\b[a-z]\\w*(?=::)/, alias: \"symbol\" } }), delete Prism.languages.reason.function, function(e) {\n for (var n = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source, t = 0; t < 2; t++)\n n = n.replace(/<self>/g, function() {\n return n;\n });\n n = n.replace(/<self>/g, function() {\n return /[^\\s\\S]/.source;\n }), e.languages.rust = { comment: [{ pattern: RegExp(/(^|[^\\\\])/.source + n), lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/, greedy: true }, char: { pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/, greedy: true }, attribute: { pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/, greedy: true, alias: \"attr-name\", inside: { string: null } }, \"closure-params\": { pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/, lookbehind: true, greedy: true, inside: { \"closure-punctuation\": { pattern: /^\\||\\|$/, alias: \"punctuation\" }, rest: null } }, \"lifetime-annotation\": { pattern: /'\\w+/, alias: \"symbol\" }, \"fragment-specifier\": { pattern: /(\\$\\w+:)[a-z]+/, lookbehind: true, alias: \"punctuation\" }, variable: /\\$\\w+/, \"function-definition\": { pattern: /(\\bfn\\s+)\\w+/, lookbehind: true, alias: \"function\" }, \"type-definition\": { pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/, lookbehind: true, alias: \"class-name\" }, \"module-declaration\": [{ pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/, lookbehind: true, alias: \"namespace\" }, { pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/, lookbehind: true, alias: \"namespace\", inside: { punctuation: /::/ } }], keyword: [/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/], function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/, macro: { pattern: /\\b\\w+!/, alias: \"property\" }, constant: /\\b[A-Z_][A-Z_\\d]+\\b/, \"class-name\": /\\b[A-Z]\\w*\\b/, namespace: { pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/, inside: { punctuation: /::/ } }, number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/, boolean: /\\b(?:false|true)\\b/, punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/, operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/ }, e.languages.rust[\"closure-params\"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string;\n}(Prism), Prism.languages.go = Prism.languages.extend(\"clike\", { string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/, lookbehind: true, greedy: true }, keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/, boolean: /\\b(?:_|false|iota|nil|true)\\b/, number: [/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i], operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./, builtin: /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/ }), Prism.languages.insertBefore(\"go\", \"string\", { char: { pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/, greedy: true } }), delete Prism.languages.go[\"class-name\"], function(e) {\n var n = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/, t = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function() {\n return n.source;\n });\n e.languages.cpp = e.languages.extend(\"c\", { \"class-name\": [{ pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function() {\n return n.source;\n })), lookbehind: true }, /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/], keyword: n, number: { pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i, greedy: true }, operator: />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/, boolean: /\\b(?:false|true)\\b/ }), e.languages.insertBefore(\"cpp\", \"string\", { module: { pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + \"(?:\" + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + \"|\" + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function() {\n return t;\n }) + \")\"), lookbehind: true, greedy: true, inside: { string: /^[<\"][\\s\\S]+/, operator: /:/, punctuation: /\\./ } }, \"raw-string\": { pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/, alias: \"string\", greedy: true } }), e.languages.insertBefore(\"cpp\", \"keyword\", { \"generic-function\": { pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i, inside: { function: /^\\w+/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: e.languages.cpp } } } }), e.languages.insertBefore(\"cpp\", \"operator\", { \"double-colon\": { pattern: /::/, alias: \"punctuation\" } }), e.languages.insertBefore(\"cpp\", \"class-name\", { \"base-clause\": { pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/, lookbehind: true, greedy: true, inside: e.languages.extend(\"cpp\", {}) } }), e.languages.insertBefore(\"inside\", \"double-colon\", { \"class-name\": /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, e.languages.cpp[\"base-clause\"]);\n}(Prism), Prism.languages.python = { comment: { pattern: /(^|[^\\\\])#.*/, lookbehind: true, greedy: true }, \"string-interpolation\": { pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i, greedy: true, inside: { interpolation: { pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/, lookbehind: true, inside: { \"format-spec\": { pattern: /(:)[^:(){}]+(?=\\}$)/, lookbehind: true }, \"conversion-option\": { pattern: /![sra](?=[:}]$)/, alias: \"punctuation\" }, rest: null } }, string: /[\\s\\S]+/ } }, \"triple-quoted-string\": { pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i, greedy: true, alias: \"string\" }, string: { pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i, greedy: true }, function: { pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g, lookbehind: true }, \"class-name\": { pattern: /(\\bclass\\s+)\\w+/i, lookbehind: true }, decorator: { pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m, lookbehind: true, alias: [\"annotation\", \"punctuation\"], inside: { punctuation: /\\./ } }, keyword: /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/, builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/, boolean: /\\b(?:False|None|True)\\b/, number: /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i, operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python, Prism.languages.json = { property: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/, lookbehind: true, greedy: true }, string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/, lookbehind: true, greedy: true }, comment: { pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, punctuation: /[{}[\\],]/, operator: /:/, boolean: /\\b(?:false|true)\\b/, null: { pattern: /\\bnull\\b/, alias: \"keyword\" } }, Prism.languages.webmanifest = Prism.languages.json;\n\n// src/themes/index.ts\nvar themes_exports = {};\n__export(themes_exports, {\n dracula: () => dracula_default,\n duotoneDark: () => duotoneDark_default,\n duotoneLight: () => duotoneLight_default,\n github: () => github_default,\n gruvboxMaterialDark: () => gruvboxMaterialDark_default,\n gruvboxMaterialLight: () => gruvboxMaterialLight_default,\n jettwaveDark: () => jettwaveDark_default,\n jettwaveLight: () => jettwaveLight_default,\n nightOwl: () => nightOwl_default,\n nightOwlLight: () => nightOwlLight_default,\n oceanicNext: () => oceanicNext_default,\n okaidia: () => okaidia_default,\n oneDark: () => oneDark_default,\n oneLight: () => oneLight_default,\n palenight: () => palenight_default,\n shadesOfPurple: () => shadesOfPurple_default,\n synthwave84: () => synthwave84_default,\n ultramin: () => ultramin_default,\n vsDark: () => vsDark_default,\n vsLight: () => vsLight_default\n});\n\n// src/themes/dracula.ts\nvar theme = {\n plain: {\n color: \"#F8F8F2\",\n backgroundColor: \"#282A36\"\n },\n styles: [\n {\n types: [\"prolog\", \"constant\", \"builtin\"],\n style: {\n color: \"rgb(189, 147, 249)\"\n }\n },\n {\n types: [\"inserted\", \"function\"],\n style: {\n color: \"rgb(80, 250, 123)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgb(255, 85, 85)\"\n }\n },\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 184, 108)\"\n }\n },\n {\n types: [\"punctuation\", \"symbol\"],\n style: {\n color: \"rgb(248, 248, 242)\"\n }\n },\n {\n types: [\"string\", \"char\", \"tag\", \"selector\"],\n style: {\n color: \"rgb(255, 121, 198)\"\n }\n },\n {\n types: [\"keyword\", \"variable\"],\n style: {\n color: \"rgb(189, 147, 249)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(98, 114, 164)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(241, 250, 140)\"\n }\n }\n ]\n};\nvar dracula_default = theme;\n\n// src/themes/duotoneDark.ts\nvar theme2 = {\n plain: {\n backgroundColor: \"#2a2734\",\n color: \"#9a86fd\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#6c6783\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#e09142\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#9a86fd\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#eeebff\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#c4b9fe\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\",\n \"placeholder\",\n \"variable\"\n ],\n style: {\n color: \"#ffcc99\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#c4b9fe\"\n }\n }\n ]\n};\nvar duotoneDark_default = theme2;\n\n// src/themes/duotoneLight.ts\nvar theme3 = {\n plain: {\n backgroundColor: \"#faf8f5\",\n color: \"#728fcb\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#b6ad9a\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#063289\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#b29762\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#2d2006\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#896724\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\"\n ],\n style: {\n color: \"#728fcb\"\n }\n },\n {\n types: [\"placeholder\", \"variable\"],\n style: {\n color: \"#93abdc\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#896724\"\n }\n }\n ]\n};\nvar duotoneLight_default = theme3;\n\n// src/themes/github.ts\nvar theme4 = {\n plain: {\n color: \"#393A34\",\n backgroundColor: \"#f6f8fa\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#999988\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#e3116c\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#393A34\"\n }\n },\n {\n types: [\n \"entity\",\n \"url\",\n \"symbol\",\n \"number\",\n \"boolean\",\n \"variable\",\n \"constant\",\n \"property\",\n \"regex\",\n \"inserted\"\n ],\n style: {\n color: \"#36acaa\"\n }\n },\n {\n types: [\"atrule\", \"keyword\", \"attr-name\", \"selector\"],\n style: {\n color: \"#00a4db\"\n }\n },\n {\n types: [\"function\", \"deleted\", \"tag\"],\n style: {\n color: \"#d73a49\"\n }\n },\n {\n types: [\"function-variable\"],\n style: {\n color: \"#6f42c1\"\n }\n },\n {\n types: [\"tag\", \"selector\", \"keyword\"],\n style: {\n color: \"#00009f\"\n }\n }\n ]\n};\nvar github_default = theme4;\n\n// src/themes/nightOwl.ts\nvar theme5 = {\n plain: {\n color: \"#d6deeb\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(99, 119, 119)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(214, 222, 235)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(255, 203, 139)\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"rgb(127, 219, 202)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"property\"],\n style: {\n color: \"rgb(128, 203, 196)\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n }\n ]\n};\nvar nightOwl_default = theme5;\n\n// src/themes/nightOwlLight.ts\nvar theme6 = {\n plain: {\n color: \"#403f53\",\n backgroundColor: \"#FBFBFB\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(72, 118, 214)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(152, 159, 177)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"builtin\", \"char\", \"constant\", \"url\"],\n style: {\n color: \"rgb(72, 118, 214)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(201, 103, 101)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(170, 9, 130)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"function\", \"selector\", \"doctype\"],\n style: {\n color: \"rgb(153, 76, 195)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(17, 17, 17)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"operator\", \"property\", \"keyword\", \"namespace\"],\n style: {\n color: \"rgb(12, 150, 155)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(188, 84, 84)\"\n }\n }\n ]\n};\nvar nightOwlLight_default = theme6;\n\n// src/themes/oceanicNext.ts\nvar colors = {\n char: \"#D8DEE9\",\n comment: \"#999999\",\n keyword: \"#c5a5c5\",\n primitive: \"#5a9bcf\",\n string: \"#8dc891\",\n variable: \"#d7deea\",\n boolean: \"#ff8b50\",\n punctuation: \"#5FB3B3\",\n tag: \"#fc929e\",\n function: \"#79b6f2\",\n className: \"#FAC863\",\n method: \"#6699CC\",\n operator: \"#fc929e\"\n};\nvar theme7 = {\n plain: {\n backgroundColor: \"#282c34\",\n color: \"#ffffff\"\n },\n styles: [\n {\n types: [\"attr-name\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"attr-value\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\n \"comment\",\n \"block-comment\",\n \"prolog\",\n \"doctype\",\n \"cdata\",\n \"shebang\"\n ],\n style: {\n color: colors.comment\n }\n },\n {\n types: [\n \"property\",\n \"number\",\n \"function-name\",\n \"constant\",\n \"symbol\",\n \"deleted\"\n ],\n style: {\n color: colors.primitive\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: colors.boolean\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: colors.tag\n }\n },\n {\n types: [\"string\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"selector\", \"char\", \"builtin\", \"inserted\"],\n style: {\n color: colors.char\n }\n },\n {\n types: [\"function\"],\n style: {\n color: colors.function\n }\n },\n {\n types: [\"operator\", \"entity\", \"url\", \"variable\"],\n style: {\n color: colors.variable\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"atrule\", \"class-name\"],\n style: {\n color: colors.className\n }\n },\n {\n types: [\"important\"],\n style: {\n fontWeight: \"400\"\n }\n },\n {\n types: [\"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n }\n ]\n};\nvar oceanicNext_default = theme7;\n\n// src/themes/okaidia.ts\nvar theme8 = {\n plain: {\n color: \"#f8f8f2\",\n backgroundColor: \"#272822\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"#f92672\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#8292a2\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"#a6e22e\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"#e6db74\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"#a6e22e\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"#66d9ef\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\",\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"property\"],\n style: {\n color: \"#f92672\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#a6e22e !important\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"#8292a2\"\n }\n },\n {\n types: [\"rule\"],\n style: {\n color: \"#e6db74\"\n }\n }\n ]\n};\nvar okaidia_default = theme8;\n\n// src/themes/palenight.ts\nvar theme9 = {\n plain: {\n color: \"#bfc7d5\",\n backgroundColor: \"#292d3e\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(105, 112, 152)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"inserted\"],\n style: {\n color: \"rgb(195, 232, 141)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n types: [\"punctuation\", \"selector\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(191, 199, 213)\"\n }\n },\n {\n types: [\"class-name\", \"attr-name\"],\n style: {\n color: \"rgb(255, 203, 107)\"\n }\n },\n {\n types: [\"tag\", \"deleted\"],\n style: {\n color: \"rgb(255, 85, 114)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(137, 221, 255)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"rgb(221, 221, 221)\"\n }\n }\n ]\n};\nvar palenight_default = theme9;\n\n// src/themes/shadesOfPurple.ts\nvar theme10 = {\n plain: {\n color: \"#9EFEFF\",\n backgroundColor: \"#2D2A55\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(179, 98, 255)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"rgb(255, 255, 255)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(165, 255, 144)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"number\", \"boolean\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 180, 84)\"\n }\n },\n {\n types: [\n \"keyword\",\n \"operator\",\n \"property\",\n \"namespace\",\n \"tag\",\n \"selector\",\n \"doctype\"\n ],\n style: {\n color: \"rgb(255, 157, 0)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"rgb(250, 208, 0)\"\n }\n }\n ]\n};\nvar shadesOfPurple_default = theme10;\n\n// src/themes/synthwave84.ts\nvar theme11 = {\n plain: {\n backgroundColor: \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n backgroundImage: \"#34294f\",\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n },\n styles: [\n {\n types: [\"comment\", \"block-comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#495495\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#ccc\"\n }\n },\n {\n types: [\n \"tag\",\n \"attr-name\",\n \"namespace\",\n \"number\",\n \"unit\",\n \"hexcode\",\n \"deleted\"\n ],\n style: {\n color: \"#e2777a\"\n }\n },\n {\n types: [\"property\", \"selector\"],\n style: {\n color: \"#72f1b8\",\n textShadow: \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n }\n },\n {\n types: [\"function-name\"],\n style: {\n color: \"#6196cc\"\n }\n },\n {\n types: [\"boolean\", \"selector-id\", \"function\"],\n style: {\n color: \"#fdfdfd\",\n textShadow: \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n }\n },\n {\n types: [\"class-name\", \"maybe-class-name\", \"builtin\"],\n style: {\n color: \"#fff5f6\",\n textShadow: \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n }\n },\n {\n types: [\"constant\", \"symbol\"],\n style: {\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n }\n },\n {\n types: [\"important\", \"atrule\", \"keyword\", \"selector-class\"],\n style: {\n color: \"#f4eee4\",\n textShadow: \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n }\n },\n {\n types: [\"string\", \"char\", \"attr-value\", \"regex\", \"variable\"],\n style: {\n color: \"#f87c32\"\n }\n },\n {\n types: [\"parameter\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\", \"url\"],\n style: {\n color: \"#67cdcc\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"ffffffee\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\"],\n style: {\n cursor: \"help\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"green\"\n }\n }\n ]\n};\nvar synthwave84_default = theme11;\n\n// src/themes/ultramin.ts\nvar theme12 = {\n plain: {\n color: \"#282a2e\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(197, 200, 198)\"\n }\n },\n {\n types: [\"string\", \"number\", \"builtin\", \"variable\"],\n style: {\n color: \"rgb(150, 152, 150)\"\n }\n },\n {\n types: [\"class-name\", \"function\", \"tag\", \"attr-name\"],\n style: {\n color: \"rgb(40, 42, 46)\"\n }\n }\n ]\n};\nvar ultramin_default = theme12;\n\n// src/themes/vsDark.ts\nvar theme13 = {\n plain: {\n color: \"#9CDCFE\",\n backgroundColor: \"#1E1E1E\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"rgb(0, 0, 128)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(106, 153, 85)\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"rgb(181, 206, 168)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(100, 102, 149)\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"rgb(156, 220, 254)\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"rgb(206, 145, 120)\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"rgb(215, 186, 125)\"\n }\n },\n {\n // Fix tag color\n types: [\"tag\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n // Fix tag color for HTML\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"rgb(212, 212, 212)\"\n }\n },\n {\n // Fix punctuation color for HTML\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"rgb(220, 220, 170)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"rgb(209, 105, 105)\"\n }\n }\n ]\n};\nvar vsDark_default = theme13;\n\n// src/themes/vsLight.ts\nvar theme14 = {\n plain: {\n color: \"#000000\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(0, 128, 0)\"\n }\n },\n {\n types: [\"builtin\"],\n style: {\n color: \"rgb(0, 112, 193)\"\n }\n },\n {\n types: [\"number\", \"variable\", \"inserted\"],\n style: {\n color: \"rgb(9, 134, 88)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(0, 0, 0)\"\n }\n },\n {\n types: [\"constant\", \"char\"],\n style: {\n color: \"rgb(129, 31, 63)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(128, 0, 0)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 0, 0)\"\n }\n },\n {\n types: [\"deleted\", \"string\"],\n style: {\n color: \"rgb(163, 21, 21)\"\n }\n },\n {\n types: [\"changed\", \"punctuation\"],\n style: {\n color: \"rgb(4, 81, 165)\"\n }\n },\n {\n types: [\"function\", \"keyword\"],\n style: {\n color: \"rgb(0, 0, 255)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(38, 127, 153)\"\n }\n }\n ]\n};\nvar vsLight_default = theme14;\n\n// src/themes/jettwaveDark.ts\nvar theme15 = {\n plain: {\n color: \"#f8fafc\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#569CD6\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#f8fafc\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#9CDCFE\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#cbd5e1\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#D4D4D4\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#7dd3fc\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveDark_default = theme15;\n\n// src/themes/jettwaveLight.ts\nvar theme16 = {\n plain: {\n color: \"#0f172a\",\n backgroundColor: \"#f1f5f9\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#0f172a\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#64748b\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#475569\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#0e7490\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveLight_default = theme16;\n\n// src/themes/oneDark.ts\nvar theme17 = {\n plain: {\n backgroundColor: \"hsl(220, 13%, 18%)\",\n color: \"hsl(220, 14%, 71%)\",\n textShadow: \"0 1px rgba(0, 0, 0, 0.3)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(220, 10%, 40%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"maybe-class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: { color: \"hsl(29, 54%, 61%)\" }\n },\n {\n types: [\"keyword\"],\n style: { color: \"hsl(286, 60%, 67%)\" }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(355, 65%, 65%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\"\n ],\n style: {\n color: \"hsl(95, 38%, 62%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(207, 82%, 66%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(187, 47%, 55%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n }\n ]\n};\nvar oneDark_default = theme17;\n\n// src/themes/oneLight.ts\nvar theme18 = {\n plain: {\n backgroundColor: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(230, 4%, 64%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: {\n color: \"hsl(35, 99%, 36%)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: \"hsl(301, 63%, 40%)\"\n }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(5, 74%, 59%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\",\n \"punctuation\"\n ],\n style: {\n color: \"hsl(119, 34%, 47%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(221, 87%, 60%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(198, 99%, 37%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n }\n ]\n};\nvar oneLight_default = theme18;\n\n// src/themes/gruvboxMaterialDark.ts\nvar theme19 = {\n plain: {\n color: \"#ebdbb2\",\n backgroundColor: \"#292828\"\n },\n styles: [\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\",\n \"function\"\n ],\n style: {\n color: \"#d8a657\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#7daea3\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#e78a4e\"\n }\n },\n {\n types: [\"attr-name\", \"char\", \"url\", \"regex\"],\n style: {\n color: \"#a9b665\"\n }\n },\n {\n types: [\"attr-value\", \"string\"],\n style: {\n color: \"#89b482\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#ea6962\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#d3869b\"\n }\n }\n ]\n};\nvar gruvboxMaterialDark_default = theme19;\n\n// src/themes/gruvboxMaterialLight.ts\nvar theme20 = {\n plain: {\n color: \"#654735\",\n backgroundColor: \"#f9f5d7\"\n },\n styles: [\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#af2528\"\n }\n },\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\"\n ],\n style: {\n color: \"#b4730e\"\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#477a5b\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#266b79\"\n }\n },\n {\n types: [\"function\", \"attr-name\", \"char\", \"url\"],\n style: {\n color: \"#72761e\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#b94c07\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#924f79\"\n }\n }\n ]\n};\nvar gruvboxMaterialLight_default = theme20;\n\n// src/index.ts\nimport { createElement } from \"react\";\n\n// src/components/useGetLineProps.ts\nimport { useCallback } from \"react\";\nimport clsx from \"clsx\";\nvar useGetLineProps = (themeDictionary) => useCallback(\n (_a) => {\n var _b = _a, { className, style, line } = _b, rest = __objRest(_b, [\"className\", \"style\", \"line\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx(\"token-line\", className)\n });\n if (typeof themeDictionary === \"object\" && \"plain\" in themeDictionary)\n output.style = themeDictionary.plain;\n if (typeof style === \"object\")\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n return output;\n },\n [themeDictionary]\n);\n\n// src/components/useGetTokenProps.ts\nimport { useCallback as useCallback2 } from \"react\";\nimport clsx2 from \"clsx\";\nvar useGetTokenProps = (themeDictionary) => {\n const styleForToken = useCallback2(\n ({ types, empty }) => {\n if (themeDictionary == null)\n return void 0;\n else if (types.length === 1 && types[0] === \"plain\") {\n return empty != null ? { display: \"inline-block\" } : void 0;\n } else if (types.length === 1 && empty != null) {\n return themeDictionary[types[0]];\n }\n return Object.assign(\n empty != null ? { display: \"inline-block\" } : {},\n ...types.map((type) => themeDictionary[type])\n );\n },\n [themeDictionary]\n );\n return useCallback2(\n (_a) => {\n var _b = _a, { token, className, style } = _b, rest = __objRest(_b, [\"token\", \"className\", \"style\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx2(\"token\", ...token.types, className),\n children: token.content,\n style: styleForToken(token)\n });\n if (style != null) {\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n }\n return output;\n },\n [styleForToken]\n );\n};\n\n// src/utils/normalizeTokens.ts\nvar newlineRe = /\\r\\n|\\r|\\n/;\nvar normalizeEmptyLines = (line) => {\n if (line.length === 0) {\n line.push({\n types: [\"plain\"],\n content: \"\\n\",\n empty: true\n });\n } else if (line.length === 1 && line[0].content === \"\") {\n line[0].content = \"\\n\";\n line[0].empty = true;\n }\n};\nvar appendTypes = (types, add) => {\n const typesSize = types.length;\n if (typesSize > 0 && types[typesSize - 1] === add) {\n return types;\n }\n return types.concat(add);\n};\nvar normalizeTokens = (tokens) => {\n const typeArrStack = [[]];\n const tokenArrStack = [tokens];\n const tokenArrIndexStack = [0];\n const tokenArrSizeStack = [tokens.length];\n let i = 0;\n let stackIndex = 0;\n let currentLine = [];\n const acc = [currentLine];\n while (stackIndex > -1) {\n while ((i = tokenArrIndexStack[stackIndex]++) < tokenArrSizeStack[stackIndex]) {\n let content;\n let types = typeArrStack[stackIndex];\n const tokenArr = tokenArrStack[stackIndex];\n const token = tokenArr[i];\n if (typeof token === \"string\") {\n types = stackIndex > 0 ? types : [\"plain\"];\n content = token;\n } else {\n types = appendTypes(types, token.type);\n if (token.alias) {\n types = appendTypes(types, token.alias);\n }\n content = token.content;\n }\n if (typeof content !== \"string\") {\n stackIndex++;\n typeArrStack.push(types);\n tokenArrStack.push(content);\n tokenArrIndexStack.push(0);\n tokenArrSizeStack.push(content.length);\n continue;\n }\n const splitByNewlines = content.split(newlineRe);\n const newlineCount = splitByNewlines.length;\n currentLine.push({\n types,\n content: splitByNewlines[0]\n });\n for (let i2 = 1; i2 < newlineCount; i2++) {\n normalizeEmptyLines(currentLine);\n acc.push(currentLine = []);\n currentLine.push({\n types,\n content: splitByNewlines[i2]\n });\n }\n }\n stackIndex--;\n typeArrStack.pop();\n tokenArrStack.pop();\n tokenArrIndexStack.pop();\n tokenArrSizeStack.pop();\n }\n normalizeEmptyLines(currentLine);\n return acc;\n};\nvar normalizeTokens_default = normalizeTokens;\n\n// src/components/useTokenize.ts\nimport { useMemo } from \"react\";\nvar useTokenize = ({ prism, code, grammar, language }) => {\n return useMemo(() => {\n if (grammar == null)\n return normalizeTokens_default([code]);\n const prismConfig = {\n code,\n grammar,\n language,\n tokens: []\n };\n prism.hooks.run(\"before-tokenize\", prismConfig);\n prismConfig.tokens = prism.tokenize(code, grammar);\n prism.hooks.run(\"after-tokenize\", prismConfig);\n return normalizeTokens_default(prismConfig.tokens);\n }, [\n code,\n grammar,\n language,\n // prism is a stable import\n prism\n ]);\n};\n\n// src/utils/themeToDict.ts\nvar themeToDict = (theme21, language) => {\n const { plain } = theme21;\n const themeDict = theme21.styles.reduce((acc, themeEntry) => {\n const { languages: languages2, style } = themeEntry;\n if (languages2 && !languages2.includes(language)) {\n return acc;\n }\n themeEntry.types.forEach((type) => {\n const accStyle = __spreadValues(__spreadValues({}, acc[type]), style);\n acc[type] = accStyle;\n });\n return acc;\n }, {});\n themeDict.root = plain;\n themeDict.plain = __spreadProps(__spreadValues({}, plain), { backgroundColor: void 0 });\n return themeDict;\n};\nvar themeToDict_default = themeToDict;\n\n// src/components/highlight.ts\nvar Highlight = ({\n children,\n language: _language,\n code,\n theme: theme21,\n prism\n}) => {\n const language = _language.toLowerCase();\n const themeDictionary = themeToDict_default(theme21, language);\n const getLineProps = useGetLineProps(themeDictionary);\n const getTokenProps = useGetTokenProps(themeDictionary);\n const grammar = prism.languages[language];\n const tokens = useTokenize({ prism, language, code, grammar });\n return children({\n tokens,\n className: `prism-code language-${language}`,\n style: themeDictionary != null ? themeDictionary.root : {},\n getLineProps,\n getTokenProps\n });\n};\n\n// src/index.ts\nvar Highlight2 = (props) => createElement(Highlight, __spreadProps(__spreadValues({}, props), {\n prism: props.prism || Prism,\n theme: props.theme || vsDark_default,\n code: props.code,\n language: props.language\n}));\nexport {\n Highlight2 as Highlight,\n Prism,\n normalizeTokens_default as normalizeTokens,\n themes_exports as themes,\n useTokenize\n};\n/*! Bundled license information:\n\nprismjs/prism.js:\n (**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n *)\n*/\n//# sourceMappingURL=index.mjs.map","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import React, { useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport Editor from 'react-simple-code-editor';\nimport { Highlight, themes, Prism } from 'prism-react-renderer';\nimport yaml from 'js-yaml';\n\n// Add YAML language support to Prism\n// Define YAML grammar directly to avoid global Prism dependency issues\nif (!Prism.languages.yaml) {\n Prism.languages.yaml = {\n scalar: {\n pattern:\n /([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/,\n lookbehind: true,\n alias: 'string',\n },\n comment: /#.*/,\n key: {\n pattern:\n /(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,\n lookbehind: true,\n alias: 'atrule',\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'tag',\n },\n datetime: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|\\]|\\}))/m,\n lookbehind: true,\n alias: 'number',\n },\n boolean: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:false|true)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'boolean',\n },\n null: {\n pattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'constant',\n },\n string: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/m,\n lookbehind: true,\n greedy: true,\n },\n number: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n },\n tag: /![^\\s]+/,\n anchor: /[&*][\\w]+/,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./,\n };\n}\n\ninterface YamlTextAreaProps {\n value: string;\n onChange: (value: string) => void;\n onValidationChange?: (isValid: boolean, error?: string) => void;\n readOnly?: boolean;\n minHeight?: number;\n maxHeight?: number;\n debounceMs?: number;\n style?: React.CSSProperties;\n}\n\ninterface YamlError {\n line: number;\n message: string;\n}\n\nexport function YamlTextArea({\n value,\n onChange,\n onValidationChange,\n readOnly = false,\n minHeight = 100,\n maxHeight,\n debounceMs = 500,\n style = {},\n}: YamlTextAreaProps) {\n const [error, setError] = useState<YamlError | null>(null);\n const validationTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const onValidationChangeRef = useRef(onValidationChange);\n const isUserInputRef = useRef(false);\n\n // Keep callback ref up to date\n onValidationChangeRef.current = onValidationChange;\n\n // Validate YAML and extract error line\n const validateYaml = useCallback((yamlString: string): YamlError | null => {\n if (!yamlString.trim()) return null;\n try {\n yaml.load(yamlString);\n return null;\n } catch (e: any) {\n const mark = e.mark;\n return {\n line: mark?.line !== undefined ? mark.line + 1 : 1,\n message: e.message || 'Invalid YAML',\n };\n }\n }, []);\n\n // Set error state and notify parent\n const setValidationState = useCallback((err: YamlError | null) => {\n setError(err);\n onValidationChangeRef.current?.(!err, err?.message);\n }, []);\n\n // Handle input change\n const handleChange = useCallback(\n (newValue: string) => {\n if (readOnly) return;\n\n isUserInputRef.current = true;\n\n // Clear existing timeout and start new debounced validation\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n validationTimeoutRef.current = setTimeout(() => {\n setValidationState(validateYaml(newValue));\n validationTimeoutRef.current = null;\n }, debounceMs);\n\n onChange(newValue);\n },\n [onChange, validateYaml, setValidationState, debounceMs, readOnly]\n );\n\n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n };\n }, []);\n\n // Re-validate when value prop changes from parent (not user input)\n useEffect(() => {\n if (isUserInputRef.current) {\n isUserInputRef.current = false;\n return;\n }\n\n // Prop changed from parent - validate immediately\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n validationTimeoutRef.current = null;\n }\n setValidationState(validateYaml(value));\n }, [value, validateYaml, setValidationState]);\n\n // Count lines for line numbers\n const lineCount = useMemo(() => {\n return value.split('\\n').length;\n }, [value]);\n\n // Generate line numbers\n const lineNumbers = useMemo(() => {\n return Array.from({ length: lineCount }, (_, i) => i + 1).join('\\n');\n }, [lineCount]);\n\n // Determine if we're in dark mode by checking CSS variable\n const [isDark, setIsDark] = useState(false);\n useEffect(() => {\n const checkDark = () => {\n const bg = getComputedStyle(document.documentElement).getPropertyValue('--bg').trim();\n // Simple heuristic: if background is dark, we're in dark mode\n setIsDark(bg.startsWith('#0') || bg.startsWith('#1') || bg.startsWith('#2') || bg.startsWith('#3'));\n };\n checkDark();\n // Listen for theme changes\n const observer = new MutationObserver(checkDark);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme'] });\n return () => observer.disconnect();\n }, []);\n\n const theme = isDark ? themes.vsDark : themes.vsLight;\n\n // Re-create highlight function when theme changes\n const highlightWithTheme = useCallback(\n (code: string) => (\n <Highlight theme={theme} code={code} language=\"yaml\">\n {({ tokens, getLineProps, getTokenProps }) => (\n <>\n {tokens.map((line, i) => {\n const lineNumber = i + 1;\n const isErrorLine = error?.line === lineNumber;\n return (\n <div\n key={i}\n {...getLineProps({ line })}\n style={{\n background: isErrorLine ? 'var(--danger-bg, rgba(220, 53, 69, 0.15))' : undefined,\n textDecoration: isErrorLine ? 'underline wavy var(--danger)' : undefined,\n }}\n >\n {line.map((token, key) => {\n const props = getTokenProps({ token });\n // Add CSS class based on token type for theme-aware coloring\n const tokenClass = token.types.map(t => `nc-token-${t}`).join(' ');\n return (\n <span\n key={key}\n {...props}\n className={tokenClass}\n />\n );\n })}\n </div>\n );\n })}\n </>\n )}\n </Highlight>\n ),\n [error, theme]\n );\n\n const editorContainerRef = useRef<HTMLDivElement>(null);\n const lineNumbersRef = useRef<HTMLDivElement>(null);\n\n const handleEditorScroll = () => {\n if (editorContainerRef.current && lineNumbersRef.current) {\n lineNumbersRef.current.scrollTop = editorContainerRef.current.scrollTop;\n }\n };\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 4, ...style }}>\n {/* CSS to prevent wrapping in editor */}\n <style>{`\n .yaml-editor-container,\n .yaml-editor-container * {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n }\n .yaml-editor-container textarea,\n .yaml-editor-container pre {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n overflow-x: visible !important;\n }\n `}</style>\n <div\n style={{\n display: 'flex',\n border: `1px solid ${error ? 'var(--nc-danger)' : 'var(--nc-border)'}`,\n borderRadius: 4,\n overflow: 'hidden',\n background: 'var(--nc-bg-secondary)',\n minHeight,\n maxHeight,\n }}\n >\n {/* Line numbers gutter */}\n <div\n ref={lineNumbersRef}\n style={{\n padding: '10px 8px',\n paddingRight: 12,\n background: 'var(--nc-bg-tertiary)',\n borderRight: '1px solid var(--nc-border)',\n color: 'var(--nc-text-weak)',\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n textAlign: 'right',\n userSelect: 'none',\n whiteSpace: 'pre',\n minWidth: 40,\n overflow: 'hidden',\n }}\n >\n {lineNumbers}\n </div>\n\n {/* Editor */}\n <div ref={editorContainerRef} className=\"yaml-editor-container\" style={{ flex: 1, overflowX: 'auto', overflowY: 'auto' }} onScroll={handleEditorScroll}>\n <Editor\n value={value}\n onValueChange={handleChange}\n highlight={highlightWithTheme}\n padding={10}\n readOnly={readOnly}\n style={{\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n minHeight: minHeight - 2,\n background: 'transparent',\n whiteSpace: 'pre',\n minWidth: 'max-content',\n }}\n textareaClassName=\"yaml-editor-textarea\"\n />\n </div>\n </div>\n\n {/* Error message */}\n {error && (\n <div\n style={{\n color: 'var(--danger)',\n fontSize: 12,\n padding: '4px 8px',\n background: 'var(--danger-bg, rgba(220, 53, 69, 0.1))',\n borderRadius: 4,\n }}\n >\n Line {error.line}: {error.message}\n </div>\n )}\n </div>\n );\n}\n\n// Default export for lazy loading\nexport default YamlTextArea;\n"],"names":["__assign","this","t","s","i","n","p","__createBinding","o","m","k","k2","desc","__setModuleDefault","v","__importStar","mod","result","__rest","e","lib","React","require$$0","KEYCODE_Y","KEYCODE_Z","KEYCODE_M","KEYCODE_PARENS","KEYCODE_BRACKETS","KEYCODE_QUOTE","KEYCODE_BACK_QUOTE","HISTORY_LIMIT","HISTORY_TIME_GAP","isWindows","isMacLike","className","cssText","Editor","props","ref","autoFocus","disabled","form","highlight","_a","ignoreTabKey","_b","insertSpaces","maxLength","minLength","name","onBlur","onClick","onFocus","onKeyDown","onKeyUp","onValueChange","_c","padding","placeholder","preClassName","readOnly","required","style","_d","tabSize","textareaClassName","textareaId","value","rest","historyRef","inputRef","_e","capture","setCapture","contentStyle","highlighted","getLines","text","position","recordChange","record","overwrite","stack","offset","count","extras","timestamp","last","re","previous","current","recordCurrentState","input","selectionStart","selectionEnd","updateInput","applyEdits","undoEdit","redoEdit","handleKeyDown","tabCharacter","linesBeforeCaret","startLine_1","endLine_1","nextValue","line","startLineText","startLine_2","endLine_2","updatedSelection","hasSelection","textBeforeCaret","matches","indent","chars","prev","handleChange","session","styles","c","_default","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","a","b","prop","__spreadProps","__objRest","source","exclude","target","__commonJS","cb","__export","all","__copyProps","to","from","except","__toESM","isNodeMode","require_prism","exports","module","Prism2","lang","uniqueId","plainTextGrammar","_","encode","tokens","Token","deepClone","visited","clone","id","element","language","defaultActivation","no","classList","redef","lang2","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","type","objId","property","propertyType","env","tokenList","LinkedList","addAfter","matchGrammar","toArray","hooks2","callbacks","content","alias","matchedStr","stringify","aliases","attributes","matchPattern","pattern","pos","lookbehind","match","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","str","removeCount","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","node","next","newNode","array","Prism","l","e2","e3","e4","r","n2","t2","a2","r2","n3","t3","u","d","g","s2","f","h","a3","l2","u2","themes_exports","dracula_default","duotoneDark_default","duotoneLight_default","github_default","gruvboxMaterialDark_default","gruvboxMaterialLight_default","jettwaveDark_default","jettwaveLight_default","nightOwl_default","nightOwlLight_default","oceanicNext_default","okaidia_default","oneDark_default","oneLight_default","palenight_default","shadesOfPurple_default","synthwave84_default","ultramin_default","vsDark_default","vsLight_default","theme","theme2","theme3","theme4","theme5","theme6","colors","theme7","theme8","theme9","theme10","theme11","theme12","theme13","theme14","theme15","theme16","theme17","theme18","theme19","theme20","useGetLineProps","themeDictionary","useCallback","output","clsx","useGetTokenProps","styleForToken","useCallback2","types","empty","clsx2","newlineRe","normalizeEmptyLines","appendTypes","add","typesSize","normalizeTokens","typeArrStack","tokenArrStack","tokenArrIndexStack","tokenArrSizeStack","stackIndex","currentLine","acc","splitByNewlines","newlineCount","i2","normalizeTokens_default","useTokenize","prism","code","useMemo","prismConfig","themeToDict","theme21","plain","themeDict","themeEntry","languages2","accStyle","themeToDict_default","Highlight","children","_language","getLineProps","getTokenProps","Highlight2","createElement","isNothing","subject","isObject","sequence","extend","index","length","sourceKeys","repeat","string","cycle","isNegativeZero","number","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception","compact","where","message","YAMLException$1","reason","mark","getLine","buffer","lineStart","lineEnd","maxLineLength","maxHalfLength","padStart","max","makeSnippet","options","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map","Type$1","tag","data","compileList","schema","currentType","newIndex","previousType","previousIndex","compileMap","collectType","Schema$1","definition","implicit","explicit","type$1","seq","failsafe","resolveYamlNull","constructYamlNull","isNull","object","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","ch","constructYamlInteger","sign","isInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","res","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","representYamlTimestamp","resolveYamlMerge","merge","BASE64_MAP","resolveYamlBinary","idx","bitlen","constructYamlBinary","tailbits","bits","representYamlBinary","isBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pair","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","keys","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","set","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","setProperty","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","state","throwError","throwWarning","directiveHandlers","args","major","minor","handle","prefix","captureSegment","start","end","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","readNext","_pos","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","tagName","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator","documents","load$1","loadAll_1","load_1","loader","_toString","_hasOwnProperty","CHAR_BOM","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_EQUALS","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","QUOTING_TYPE_SINGLE","QUOTING_TYPE_DOUBLE","State","indentString","spaces","ind","generateNextLine","level","testImplicitResolving","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","first","needIndentIndicator","leadingSpaceRe","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","writeScalar","iskey","testAmbiguity","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","keep","chomp","width","lineRe","nextLF","foldLine","prevMoreIndented","moreIndented","breakRe","curr","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKeyList","objectKey","objectValue","pairBuffer","writeBlockMapping","explicitPair","detectType","block","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","dump$1","dump_1","dumper","renamed","Type","Schema","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SCHEMA","load","loadAll","dump","YAMLException","safeLoad","safeLoadAll","safeDump","jsYaml","YamlTextArea","onChange","onValidationChange","minHeight","maxHeight","debounceMs","error","setError","useState","validationTimeoutRef","useRef","onValidationChangeRef","isUserInputRef","validateYaml","yamlString","yaml","setValidationState","err","newValue","useEffect","lineCount","lineNumbers","isDark","setIsDark","checkDark","bg","observer","themes","highlightWithTheme","jsx","Fragment","lineNumber","isErrorLine","tokenClass","editorContainerRef","lineNumbersRef","handleEditorScroll","jsxs"],"mappings":"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","x_google_ignoreList":[0,1,2]}