From 612a7e1662008c994e8a9ae8eda33e3e11ce7df8 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Tue, 14 May 2024 12:49:14 -0700 Subject: [PATCH 01/55] [FEAT] Website depth scraping data connector (#1191) * WIP website depth scraping, (sort of works) * website depth data connector stable + add maxLinks option * linting + loading small ui tweak * refactor website depth data connector for stability, speed, & readability * patch: remove console log Guard clause on URL validitiy check reasonable overrides --------- Co-authored-by: Timothy Carambat --- collector/extensions/index.js | 20 +++ .../utils/extensions/WebsiteDepth/index.js | 153 ++++++++++++++++++ .../DataConnectorOption/media/index.js | 2 + .../DataConnectorOption/media/link.svg | 1 + .../Connectors/WebsiteDepth/index.jsx | 134 +++++++++++++++ .../MangeWorkspace/DataConnectors/index.jsx | 7 + frontend/src/models/dataConnector.js | 18 +++ server/endpoints/extensions/index.js | 21 +++ 8 files changed, 356 insertions(+) create mode 100644 collector/utils/extensions/WebsiteDepth/index.js create mode 100644 frontend/src/components/DataConnectorOption/media/link.svg create mode 100644 frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx diff --git a/collector/extensions/index.js b/collector/extensions/index.js index 6a3f3393..07726464 100644 --- a/collector/extensions/index.js +++ b/collector/extensions/index.js @@ -1,5 +1,6 @@ const { verifyPayloadIntegrity } = require("../middleware/verifyIntegrity"); const { reqBody } = require("../utils/http"); +const { validURL } = require("../utils/url"); function extensions(app) { if (!app) return; @@ -86,6 +87,25 @@ function extensions(app) { } ); + app.post( + "/ext/website-depth", + [verifyPayloadIntegrity], + async function (request, response) { + try { + const websiteDepth = require("../utils/extensions/WebsiteDepth"); + const { url, depth = 1, maxLinks = 20 } = reqBody(request); + if (!validURL(url)) return { success: false, reason: "Not a valid URL." }; + + const scrapedData = await websiteDepth(url, depth, maxLinks); + response.status(200).json({ success: true, data: scrapedData }); + } catch (e) { + console.error(e); + response.status(400).json({ success: false, reason: e.message }); + } + return; + } + ); + app.post( "/ext/confluence", [verifyPayloadIntegrity], diff --git a/collector/utils/extensions/WebsiteDepth/index.js b/collector/utils/extensions/WebsiteDepth/index.js new file mode 100644 index 00000000..6e561ef7 --- /dev/null +++ b/collector/utils/extensions/WebsiteDepth/index.js @@ -0,0 +1,153 @@ +const { v4 } = require("uuid"); +const { + PuppeteerWebBaseLoader, +} = require("langchain/document_loaders/web/puppeteer"); +const { default: slugify } = require("slugify"); +const { parse } = require("node-html-parser"); +const { writeToServerDocuments } = require("../../files"); +const { tokenizeString } = require("../../tokenizer"); +const path = require("path"); +const fs = require("fs"); + +async function discoverLinks(startUrl, depth = 1, maxLinks = 20) { + const baseUrl = new URL(startUrl).origin; + const discoveredLinks = new Set(); + const pendingLinks = [startUrl]; + let currentLevel = 0; + depth = depth < 1 ? 1 : depth; + maxLinks = maxLinks < 1 ? 1 : maxLinks; + + // Check depth and if there are any links left to scrape + while (currentLevel < depth && pendingLinks.length > 0) { + const newLinks = await getPageLinks(pendingLinks[0], baseUrl); + pendingLinks.shift(); + + for (const link of newLinks) { + if (!discoveredLinks.has(link)) { + discoveredLinks.add(link); + pendingLinks.push(link); + } + + // Exit out if we reach maxLinks + if (discoveredLinks.size >= maxLinks) { + return Array.from(discoveredLinks).slice(0, maxLinks); + } + } + + if (pendingLinks.length === 0) { + currentLevel++; + } + } + + return Array.from(discoveredLinks); +} + +async function getPageLinks(url, baseUrl) { + try { + const loader = new PuppeteerWebBaseLoader(url, { + launchOptions: { headless: "new" }, + gotoOptions: { waitUntil: "domcontentloaded" }, + }); + const docs = await loader.load(); + const html = docs[0].pageContent; + const links = extractLinks(html, baseUrl); + return links; + } catch (error) { + console.error(`Failed to get page links from ${url}.`, error); + return []; + } +} + +function extractLinks(html, baseUrl) { + const root = parse(html); + const links = root.querySelectorAll("a"); + const extractedLinks = new Set(); + + for (const link of links) { + const href = link.getAttribute("href"); + if (href) { + const absoluteUrl = new URL(href, baseUrl).href; + if (absoluteUrl.startsWith(baseUrl)) { + extractedLinks.add(absoluteUrl); + } + } + } + + return Array.from(extractedLinks); +} + +async function bulkScrapePages(links, outputFolder) { + const scrapedData = []; + + for (let i = 0; i < links.length; i++) { + const link = links[i]; + console.log(`Scraping ${i + 1}/${links.length}: ${link}`); + + try { + const loader = new PuppeteerWebBaseLoader(link, { + launchOptions: { headless: "new" }, + gotoOptions: { waitUntil: "domcontentloaded" }, + async evaluate(page, browser) { + const result = await page.evaluate(() => document.body.innerText); + await browser.close(); + return result; + }, + }); + const docs = await loader.load(); + const content = docs[0].pageContent; + + if (!content.length) { + console.warn(`Empty content for ${link}. Skipping.`); + continue; + } + + const url = new URL(link); + const filename = (url.host + "-" + url.pathname).replace(".", "_"); + + const data = { + id: v4(), + url: "file://" + slugify(filename) + ".html", + title: slugify(filename) + ".html", + docAuthor: "no author found", + description: "No description found.", + docSource: "URL link uploaded by the user.", + chunkSource: `link://${link}`, + published: new Date().toLocaleString(), + wordCount: content.split(" ").length, + pageContent: content, + token_count_estimate: tokenizeString(content).length, + }; + + writeToServerDocuments(data, data.title, outputFolder); + scrapedData.push(data); + + console.log(`Successfully scraped ${link}.`); + } catch (error) { + console.error(`Failed to scrape ${link}.`, error); + } + } + + return scrapedData; +} + +async function websiteScraper(startUrl, depth = 1, maxLinks = 20) { + const websiteName = new URL(startUrl).hostname; + const outputFolder = path.resolve( + __dirname, + `../../../../server/storage/documents/${slugify(websiteName)}` + ); + + fs.mkdirSync(outputFolder, { recursive: true }); + + console.log("Discovering links..."); + const linksToScrape = await discoverLinks(startUrl, depth, maxLinks); + console.log(`Found ${linksToScrape.length} links to scrape.`); + + console.log("Starting bulk scraping..."); + const scrapedData = await bulkScrapePages(linksToScrape, outputFolder); + console.log(`Scraped ${scrapedData.length} pages.`); + + return scrapedData; +} + +module.exports = websiteScraper; diff --git a/frontend/src/components/DataConnectorOption/media/index.js b/frontend/src/components/DataConnectorOption/media/index.js index ac810597..dee46a12 100644 --- a/frontend/src/components/DataConnectorOption/media/index.js +++ b/frontend/src/components/DataConnectorOption/media/index.js @@ -1,10 +1,12 @@ import Github from "./github.svg"; import YouTube from "./youtube.svg"; +import Link from "./link.svg"; import Confluence from "./confluence.jpeg"; const ConnectorImages = { github: Github, youtube: YouTube, + websiteDepth: Link, confluence: Confluence, }; diff --git a/frontend/src/components/DataConnectorOption/media/link.svg b/frontend/src/components/DataConnectorOption/media/link.svg new file mode 100644 index 00000000..c957e542 --- /dev/null +++ b/frontend/src/components/DataConnectorOption/media/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx new file mode 100644 index 00000000..b3fc4545 --- /dev/null +++ b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx @@ -0,0 +1,134 @@ +import React, { useState } from "react"; +import System from "@/models/system"; +import showToast from "@/utils/toast"; +import pluralize from "pluralize"; + +export default function WebsiteDepthOptions() { + const [loading, setLoading] = useState(false); + + const handleSubmit = async (e) => { + e.preventDefault(); + const form = new FormData(e.target); + + try { + setLoading(true); + showToast("Scraping website - this may take a while.", "info", { + clear: true, + autoClose: false, + }); + + const { data, error } = await System.dataConnectors.websiteDepth.scrape({ + url: form.get("url"), + depth: parseInt(form.get("depth")), + maxLinks: parseInt(form.get("maxLinks")), + }); + + if (!!error) { + showToast(error, "error", { clear: true }); + setLoading(false); + return; + } + + showToast( + `Successfully scraped ${data.length} ${pluralize( + "page", + data.length + )}!`, + "success", + { clear: true } + ); + e.target.reset(); + setLoading(false); + } catch (e) { + console.error(e); + showToast(e.message, "error", { clear: true }); + setLoading(false); + } + }; + + return ( +
+
+
+
+
+
+
+ +

+ URL of the website you want to scrape. +

+
+ +
+
+
+ +

+ This is the number of child-links that the worker should + follow from the origin URL. +

+
+ +
+
+
+ +

+ Maximum number of links to scrape. +

+
+ +
+
+
+ +
+ + {loading && ( +

+ Once complete, all scraped pages will be available for embedding + into workspaces in the document picker. +

+ )} +
+
+
+
+ ); +} diff --git a/frontend/src/components/Modals/MangeWorkspace/DataConnectors/index.jsx b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/index.jsx index 69d30e28..5a03e19c 100644 --- a/frontend/src/components/Modals/MangeWorkspace/DataConnectors/index.jsx +++ b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/index.jsx @@ -5,6 +5,7 @@ import YoutubeOptions from "./Connectors/Youtube"; import ConfluenceOptions from "./Connectors/Confluence"; import { useState } from "react"; import ConnectorOption from "./ConnectorOption"; +import WebsiteDepthOptions from "./Connectors/WebsiteDepth"; export const DATA_CONNECTORS = { github: { @@ -21,6 +22,12 @@ export const DATA_CONNECTORS = { "Import the transcription of an entire YouTube video from a link.", options: , }, + "website-depth": { + name: "Bulk Link Scraper", + image: ConnectorImages.websiteDepth, + description: "Scrape a website and its sub-links up to a certain depth.", + options: , + }, confluence: { name: "Confluence", image: ConnectorImages.confluence, diff --git a/frontend/src/models/dataConnector.js b/frontend/src/models/dataConnector.js index 19fa5f91..d01c3c8b 100644 --- a/frontend/src/models/dataConnector.js +++ b/frontend/src/models/dataConnector.js @@ -60,6 +60,24 @@ const DataConnector = { }); }, }, + websiteDepth: { + scrape: async ({ url, depth, maxLinks }) => { + return await fetch(`${API_BASE}/ext/website-depth`, { + method: "POST", + headers: baseHeaders(), + body: JSON.stringify({ url, depth, maxLinks }), + }) + .then((res) => res.json()) + .then((res) => { + if (!res.success) throw new Error(res.reason); + return { data: res.data, error: null }; + }) + .catch((e) => { + console.error(e); + return { data: null, error: e.message }; + }); + }, + }, confluence: { collect: async function ({ pageUrl, username, accessToken }) { diff --git a/server/endpoints/extensions/index.js b/server/endpoints/extensions/index.js index 07eb7130..cf8e1191 100644 --- a/server/endpoints/extensions/index.js +++ b/server/endpoints/extensions/index.js @@ -93,6 +93,27 @@ function extensionEndpoints(app) { } } ); + app.post( + "/ext/website-depth", + [validatedRequest, flexUserRoleValid([ROLES.admin, ROLES.manager])], + async (request, response) => { + try { + const responseFromProcessor = + await new CollectorApi().forwardExtensionRequest({ + endpoint: "/ext/website-depth", + method: "POST", + body: request.body, + }); + await Telemetry.sendTelemetry("extension_invoked", { + type: "website_depth", + }); + response.status(200).json(responseFromProcessor); + } catch (e) { + console.error(e); + response.sendStatus(500).end(); + } + } + ); } module.exports = { extensionEndpoints }; From b5ac9444754d96886a164b344470cd14544abdff Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Tue, 14 May 2024 12:57:23 -0700 Subject: [PATCH 02/55] patch: bulk-scraper, update when folder is made and path creation params --- .../utils/extensions/WebsiteDepth/index.js | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/collector/utils/extensions/WebsiteDepth/index.js b/collector/utils/extensions/WebsiteDepth/index.js index 6e561ef7..7cbb04e5 100644 --- a/collector/utils/extensions/WebsiteDepth/index.js +++ b/collector/utils/extensions/WebsiteDepth/index.js @@ -76,7 +76,7 @@ function extractLinks(html, baseUrl) { return Array.from(extractedLinks); } -async function bulkScrapePages(links, outputFolder) { +async function bulkScrapePages(links, outFolderPath) { const scrapedData = []; for (let i = 0; i < links.length; i++) { @@ -118,7 +118,7 @@ async function bulkScrapePages(links, outputFolder) { token_count_estimate: tokenizeString(content).length, }; - writeToServerDocuments(data, data.title, outputFolder); + writeToServerDocuments(data, data.title, outFolderPath); scrapedData.push(data); console.log(`Successfully scraped ${link}.`); @@ -132,19 +132,25 @@ async function bulkScrapePages(links, outputFolder) { async function websiteScraper(startUrl, depth = 1, maxLinks = 20) { const websiteName = new URL(startUrl).hostname; - const outputFolder = path.resolve( - __dirname, - `../../../../server/storage/documents/${slugify(websiteName)}` - ); - - fs.mkdirSync(outputFolder, { recursive: true }); + const outFolder = slugify( + `${slugify(websiteName)}-${v4().slice(0, 4)}` + ).toLowerCase(); + const outFolderPath = + process.env.NODE_ENV === "development" + ? path.resolve( + __dirname, + `../../../../server/storage/documents/${outFolder}` + ) + : path.resolve(process.env.STORAGE_DIR, `documents/${outFolder}`); console.log("Discovering links..."); const linksToScrape = await discoverLinks(startUrl, depth, maxLinks); console.log(`Found ${linksToScrape.length} links to scrape.`); + if (!fs.existsSync(outFolderPath)) + fs.mkdirSync(outFolderPath, { recursive: true }); console.log("Starting bulk scraping..."); - const scrapedData = await bulkScrapePages(linksToScrape, outputFolder); + const scrapedData = await bulkScrapePages(linksToScrape, outFolderPath); console.log(`Scraped ${scrapedData.length} pages.`); return scrapedData; From e9e4ffb838464e5d77680f4f24c8aa6bfe07fb07 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Tue, 14 May 2024 13:11:31 -0700 Subject: [PATCH 03/55] update README --- README.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c4fec66d..e15f7ff6 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,9 @@ Some cool features of AnythingLLM - Extremely efficient cost-saving measures for managing very large documents. You'll never pay to embed a massive document or transcript more than once. 90% more cost effective than other document chatbot solutions. - Full Developer API for custom integrations! -### Supported LLMs, Embedders, Transcriptions models, and Vector Databases +### Supported LLMs, Embedder Models, Speech models, and Vector Databases -**Supported LLMs:** +**Language Learning Models:** - [Any open-source llama.cpp compatible model](/server/storage/models/README.md#text-generation-llm-selection) - [OpenAI](https://openai.com) @@ -90,7 +90,7 @@ Some cool features of AnythingLLM - [KoboldCPP](https://github.com/LostRuins/koboldcpp) - [Text Generation Web UI](https://github.com/oobabooga/text-generation-webui) -**Supported Embedding models:** +**Embedder models:** - [AnythingLLM Native Embedder](/server/storage/models/README.md) (default) - [OpenAI](https://openai.com) @@ -100,12 +100,22 @@ Some cool features of AnythingLLM - [LM Studio (all)](https://lmstudio.ai) - [Cohere](https://cohere.com/) -**Supported Transcription models:** +**Audio Transcription models:** - [AnythingLLM Built-in](https://github.com/Mintplex-Labs/anything-llm/tree/master/server/storage/models#audiovideo-transcription) (default) - [OpenAI](https://openai.com/) -**Supported Vector Databases:** +**TTS (text-to-speech) support:** + +- Native Browser Built-in (default) +- [OpenAI TTS](https://platform.openai.com/docs/guides/text-to-speech/voice-options) +- [ElevenLabs](https://elevenlabs.io/) + +**STT (speech-to-text) support:** + +- Native Browser Built-in (default) + +**Vector Databases:** - [LanceDB](https://github.com/lancedb/lancedb) (default) - [Astra DB](https://www.datastax.com/products/datastax-astra) @@ -122,8 +132,9 @@ This monorepo consists of three main sections: - `frontend`: A viteJS + React frontend that you can run to easily create and manage all your content the LLM can use. - `server`: A NodeJS express server to handle all the interactions and do all the vectorDB management and LLM interactions. -- `docker`: Docker instructions and build process + information for building from source. - `collector`: NodeJS express server that process and parses documents from the UI. +- `docker`: Docker instructions and build process + information for building from source. +- `embed`: Code specifically for generation of the [embed widget](./embed/README.md). ## 🛳 Self Hosting From 275be6a0f3f8842b5b71d51e16179cd486bca606 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Tue, 14 May 2024 14:17:19 -0700 Subject: [PATCH 04/55] update STT/TTS option dropdowns --- .../components/TextToSpeech/ElevenLabsOptions/index.jsx | 7 ++----- .../src/components/TextToSpeech/OpenAiOptions/index.jsx | 6 +++++- frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx | 7 ++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx b/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx index ad86caa1..4a5e1160 100644 --- a/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx +++ b/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx @@ -84,6 +84,7 @@ function ElevenLabsModelSelection({ apiKey, settings }) { diff --git a/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx b/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx index 6b11f1a4..d428de0f 100644 --- a/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx +++ b/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx @@ -47,7 +47,7 @@ export default function TextToSpeechProvider({ settings }) { const searchInputRef = useRef(null); const handleSubmit = async (e) => { - e.preventDefault(); + e?.preventDefault(); const form = e.target; const data = { TextToSpeechProvider: selectedProvider }; const formData = new FormData(form); @@ -110,10 +110,7 @@ export default function TextToSpeechProvider({ settings }) {
{hasChanges && ( - handleSubmit()} - className="mt-3 mr-0 -mb-14 z-10" - > + {saving ? "Saving..." : "Save changes"} )} From 1e60cd57ff82e6f1bd06c998690d2427a2b62496 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Tue, 14 May 2024 15:06:30 -0700 Subject: [PATCH 05/55] Hide regenButton properly update confirm code for slash commands --- .../HistoricalMessage/Actions/index.jsx | 16 ++++++++-------- .../SlashPresets/EditPresetModal.jsx | 5 +---- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx index 52ae1466..41fd7067 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx @@ -32,14 +32,13 @@ const Actions = ({
- {isLastMessage && - !message?.includes("Workspace chat memory was reset!") && ( - - )} + {isLastMessage && ( + + )} {chatId && ( <> +
+
+ ); +} diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/NewConnectionModal.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/NewConnectionModal.jsx new file mode 100644 index 00000000..e76b27cc --- /dev/null +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/NewConnectionModal.jsx @@ -0,0 +1,271 @@ +import { useState } from "react"; +import { createPortal } from "react-dom"; +import ModalWrapper from "@/components/ModalWrapper"; +import { WarningOctagon, X } from "@phosphor-icons/react"; +import { DB_LOGOS } from "./DBConnection"; + +function assembleConnectionString({ + engine, + username = "", + password = "", + host = "", + port = "", + database = "", +}) { + if ([username, password, host, database].every((i) => !!i) === false) + return `Please fill out all the fields above.`; + switch (engine) { + case "postgresql": + return `postgres://${username}:${password}@${host}:${port}/${database}`; + case "mysql": + return `mysql://${username}:${password}@${host}:${port}/${database}`; + case "sql-server": + return `mssql://${username}:${password}@${host}:${port}/${database}`; + default: + return null; + } +} + +const DEFAULT_ENGINE = "postgresql"; +const DEFAULT_CONFIG = { + username: null, + password: null, + host: null, + port: null, + database: null, +}; + +export default function NewSQLConnection({ isOpen, closeModal, onSubmit }) { + const [engine, setEngine] = useState(DEFAULT_ENGINE); + const [config, setConfig] = useState(DEFAULT_CONFIG); + if (!isOpen) return null; + + function handleClose() { + setEngine(DEFAULT_ENGINE); + setConfig(DEFAULT_CONFIG); + closeModal(); + } + + function onFormChange() { + const form = new FormData(document.getElementById("sql-connection-form")); + setConfig({ + username: form.get("username").trim(), + password: form.get("password"), + host: form.get("host").trim(), + port: form.get("port").trim(), + database: form.get("database").trim(), + }); + } + + async function handleUpdate(e) { + e.preventDefault(); + e.stopPropagation(); + const form = new FormData(e.target); + onSubmit({ + engine, + database_id: form.get("name"), + connectionString: assembleConnectionString({ engine, ...config }), + }); + handleClose(); + return false; + } + + // Cannot do nested forms, it will cause all sorts of issues, so we portal this out + // to the parent container form so we don't have nested forms. + return createPortal( + +
+
+
+

+ New SQL Connection +

+ +
+ +
+
+

+ Add the connection information for your database below and it + will be available for future SQL agent calls. +

+
+
+ +

+ WARNING: The SQL agent has been instructed to + only perform non-modifying queries. This does not{" "} + prevent a hallucination from still deleting data. Only + connect with a user who has READ_ONLY permissions. +

+
+ + +
+ setEngine("postgresql")} + /> + setEngine("mysql")} + /> + setEngine("sql-server")} + /> +
+
+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ + +
+

+ {assembleConnectionString({ engine, ...config })} +

+
+
+ + +
+
+
+
+
, + document.getElementById("workspace-agent-settings-container") + ); +} + +function DBEngine({ provider, active, onClick }) { + return ( + + ); +} diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/mssql.png b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/mssql.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd58a9a3eac3327f9f9703a081b79274fc8ee62 GIT binary patch literal 38612 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 literal 0 HcmV?d00001 diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/mysql.png b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/mysql.png new file mode 100644 index 0000000000000000000000000000000000000000..5a440811548774bb7554a38ccfd82a300d1037fd GIT binary patch literal 12971 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 K;$@=x{{Id8SL%WQ literal 0 HcmV?d00001 diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/postgresql.png b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/icons/postgresql.png new file mode 100644 index 0000000000000000000000000000000000000000..67918df7a77905a065d286802efe3055969ec266 GIT binary patch literal 47152 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

xK0k(o)B2 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 E11Pf9Pyhe` literal 0 HcmV?d00001 diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/index.jsx new file mode 100644 index 00000000..9feb4b8b --- /dev/null +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/SQLConnectorSelection/index.jsx @@ -0,0 +1,109 @@ +import React, { useState } from "react"; +import DBConnection from "./DBConnection"; +import { Plus } from "@phosphor-icons/react"; +import NewSQLConnection from "./NewConnectionModal"; +import { useModal } from "@/hooks/useModal"; + +export default function AgentSQLConnectorSelection({ + skill, + settings, + toggleSkill, + enabled = false, +}) { + const { isOpen, openModal, closeModal } = useModal(); + const [connections, setConnections] = useState( + settings?.preferences?.agent_sql_connections || [] + ); + + return ( + <> +

+
+
+ + +
+

+ Enable your agent to be able to leverage SQL to answer you questions + by connecting to various SQL database providers. +

+
+ {enabled && ( + <> + + conn.action !== "remove") + )} + /> +
+

+ Your database connections +

+
+ {connections + .filter((connection) => connection.action !== "remove") + .map((connection) => ( + { + setConnections((prev) => + prev.map((conn) => { + if (conn.database_id === databaseId) + return { ...conn, action: "remove" }; + return conn; + }) + ); + }} + /> + ))} + +
+
+ + )} +
+ + setConnections((prev) => [...prev, { action: "add", ...newDb }]) + } + /> + + ); +} diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx index c96cc124..02065251 100644 --- a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx @@ -5,6 +5,7 @@ import { castToType } from "@/utils/types"; import { useEffect, useRef, useState } from "react"; import AgentLLMSelection from "./AgentLLMSelection"; import AgentWebSearchSelection from "./WebSearchSelection"; +import AgentSQLConnectorSelection from "./SQLConnectorSelection"; import GenericSkill from "./GenericSkill"; import Admin from "@/models/admin"; import * as Skeleton from "react-loading-skeleton"; @@ -205,6 +206,12 @@ function AvailableAgentSkills({ skills, settings, toggleAgentSkill }) { toggleSkill={toggleAgentSkill} enabled={skills.includes("web-browsing")} /> +
); diff --git a/server/endpoints/admin.js b/server/endpoints/admin.js index 2ef611f6..959e023f 100644 --- a/server/endpoints/admin.js +++ b/server/endpoints/admin.js @@ -350,6 +350,8 @@ function adminEndpoints(app) { agent_search_provider: (await SystemSettings.get({ label: "agent_search_provider" })) ?.value || null, + agent_sql_connections: + await SystemSettings.brief.agent_sql_connections(), default_agent_skills: safeJsonParse( (await SystemSettings.get({ label: "default_agent_skills" })) diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 248ca8cd..7b4f21ee 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -2,8 +2,10 @@ process.env.NODE_ENV === "development" ? require("dotenv").config({ path: `.env.${process.env.NODE_ENV}` }) : require("dotenv").config(); -const { isValidUrl } = require("../utils/http"); +const { default: slugify } = require("slugify"); +const { isValidUrl, safeJsonParse } = require("../utils/http"); const prisma = require("../utils/prisma"); +const { v4 } = require("uuid"); function isNullOrNaN(value) { if (value === null) return true; @@ -24,6 +26,7 @@ const SystemSettings = { "text_splitter_chunk_overlap", "agent_search_provider", "default_agent_skills", + "agent_sql_connections", ], validations: { footer_data: (updates) => { @@ -65,6 +68,7 @@ const SystemSettings = { }, agent_search_provider: (update) => { try { + if (update === "none") return null; if (!["google-search-engine", "serper-dot-dev"].includes(update)) throw new Error("Invalid SERP provider."); return String(update); @@ -85,6 +89,22 @@ const SystemSettings = { return JSON.stringify([]); } }, + agent_sql_connections: async (updates) => { + const existingConnections = safeJsonParse( + (await SystemSettings.get({ label: "agent_sql_connections" }))?.value, + [] + ); + try { + const updatedConnections = mergeConnections( + existingConnections, + safeJsonParse(updates, []) + ); + return JSON.stringify(updatedConnections); + } catch (e) { + console.error(`Failed to merge connections`); + return JSON.stringify(existingConnections ?? []); + } + }, }, currentSettings: async function () { const { hasVectorCachedFiles } = require("../utils/files"); @@ -204,22 +224,30 @@ const SystemSettings = { // that takes no user input for the keys being modified. _updateSettings: async function (updates = {}) { try { - const updatePromises = Object.keys(updates).map((key) => { - const validatedValue = this.validations.hasOwnProperty(key) - ? this.validations[key](updates[key]) - : updates[key]; + const updatePromises = []; + for (const key of Object.keys(updates)) { + let validatedValue = updates[key]; + if (this.validations.hasOwnProperty(key)) { + if (this.validations[key].constructor.name === "AsyncFunction") { + validatedValue = await this.validations[key](updates[key]); + } else { + validatedValue = this.validations[key](updates[key]); + } + } - return prisma.system_settings.upsert({ - where: { label: key }, - update: { - value: validatedValue === null ? null : String(validatedValue), - }, - create: { - label: key, - value: validatedValue === null ? null : String(validatedValue), - }, - }); - }); + updatePromises.push( + prisma.system_settings.upsert({ + where: { label: key }, + update: { + value: validatedValue === null ? null : String(validatedValue), + }, + create: { + label: key, + value: validatedValue === null ? null : String(validatedValue), + }, + }) + ); + } await Promise.all(updatePromises); return { success: true, error: null }; @@ -392,6 +420,58 @@ const SystemSettings = { CohereModelPref: process.env.COHERE_MODEL_PREF, }; }, + + // For special retrieval of a key setting that does not expose any credential information + brief: { + agent_sql_connections: async function () { + const setting = await SystemSettings.get({ + label: "agent_sql_connections", + }); + if (!setting) return []; + return safeJsonParse(setting.value, []).map((dbConfig) => { + const { connectionString, ...rest } = dbConfig; + return rest; + }); + }, + }, }; +function mergeConnections(existingConnections = [], updates = []) { + let updatedConnections = [...existingConnections]; + const existingDbIds = existingConnections.map((conn) => conn.database_id); + + // First remove all 'action:remove' candidates from existing connections. + const toRemove = updates + .filter((conn) => conn.action === "remove") + .map((conn) => conn.database_id); + updatedConnections = updatedConnections.filter( + (conn) => !toRemove.includes(conn.database_id) + ); + + // Next add all 'action:add' candidates into the updatedConnections; We DO NOT validate the connection strings. + // but we do validate their database_id is unique. + updates + .filter((conn) => conn.action === "add") + .forEach((update) => { + if (!update.connectionString) return; // invalid connection string + + // Remap name to be unique to entire set. + if (existingDbIds.includes(update.database_id)) { + update.database_id = slugify( + `${update.database_id}-${v4().slice(0, 4)}` + ); + } else { + update.database_id = slugify(update.database_id); + } + + updatedConnections.push({ + engine: update.engine, + database_id: update.database_id, + connectionString: update.connectionString, + }); + }); + + return updatedConnections; +} + module.exports.SystemSettings = SystemSettings; diff --git a/server/package.json b/server/package.json index 73b947c4..4f995470 100644 --- a/server/package.json +++ b/server/package.json @@ -58,11 +58,14 @@ "langchain": "0.1.36", "mime": "^3.0.0", "moment": "^2.29.4", + "mssql": "^10.0.2", "multer": "^1.4.5-lts.1", + "mysql2": "^3.9.7", "node-html-markdown": "^1.3.0", "node-llama-cpp": "^2.8.0", "ollama": "^0.5.0", "openai": "4.38.5", + "pg": "^8.11.5", "pinecone-client": "^1.1.0", "pluralize": "^8.0.0", "posthog-node": "^3.1.1", @@ -72,6 +75,7 @@ "sqlite3": "^5.1.6", "swagger-autogen": "^2.23.5", "swagger-ui-express": "^5.0.0", + "url-pattern": "^1.0.3", "uuid": "^9.0.0", "uuid-apikey": "^1.5.3", "vectordb": "0.4.11", diff --git a/server/utils/agents/aibitat/index.js b/server/utils/agents/aibitat/index.js index f21c4aa4..fa490edb 100644 --- a/server/utils/agents/aibitat/index.js +++ b/server/utils/agents/aibitat/index.js @@ -498,6 +498,17 @@ Only return the role. return availableNodes[Math.floor(Math.random() * availableNodes.length)]; } + /** + * + * @param {string} pluginName this name of the plugin being called + * @returns string of the plugin to be called compensating for children denoted by # in the string. + * eg: sql-agent:list-database-connections + */ + #parseFunctionName(pluginName = "") { + if (!pluginName.includes("#")) return pluginName; + return pluginName.split("#")[1]; + } + /** * Check if the chat has reached the maximum number of rounds. */ @@ -550,7 +561,7 @@ ${this.getHistory({ to: route.to }) // get the functions that the node can call const functions = fromConfig.functions - ?.map((name) => this.functions.get(name)) + ?.map((name) => this.functions.get(this.#parseFunctionName(name))) .filter((a) => !!a); const provider = this.getProviderForConfig({ diff --git a/server/utils/agents/aibitat/plugins/index.js b/server/utils/agents/aibitat/plugins/index.js index d9ff544e..9a7ee7a0 100644 --- a/server/utils/agents/aibitat/plugins/index.js +++ b/server/utils/agents/aibitat/plugins/index.js @@ -6,6 +6,7 @@ const { saveFileInBrowser } = require("./save-file-browser.js"); const { chatHistory } = require("./chat-history.js"); const { memory } = require("./memory.js"); const { rechart } = require("./rechart.js"); +const { sqlAgent } = require("./sql-agent/index.js"); module.exports = { webScraping, @@ -16,6 +17,7 @@ module.exports = { chatHistory, memory, rechart, + sqlAgent, // Plugin name aliases so they can be pulled by slug as well. [webScraping.name]: webScraping, @@ -26,4 +28,5 @@ module.exports = { [chatHistory.name]: chatHistory, [memory.name]: memory, [rechart.name]: rechart, + [sqlAgent.name]: sqlAgent, }; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MSSQL.js b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MSSQL.js new file mode 100644 index 00000000..ed75aa7a --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MSSQL.js @@ -0,0 +1,89 @@ +const mssql = require("mssql"); +const UrlPattern = require("url-pattern"); + +class MSSQLConnector { + #connected = false; + database_id = ""; + connectionConfig = { + user: null, + password: null, + database: null, + server: null, + port: null, + pool: { + max: 10, + min: 0, + idleTimeoutMillis: 30000, + }, + options: { + encrypt: false, + trustServerCertificate: true, + }, + }; + + constructor( + config = { + // we will force into RFC-3986 from DB + // eg: mssql://user:password@server:port/database?{...opts} + connectionString: null, // we will force into RFC-3986 + } + ) { + this.connectionString = config.connectionString; + this._client = null; + this.#parseDatabase(); + } + + #parseDatabase() { + const connectionPattern = new UrlPattern( + "mssql\\://:username\\::password@*\\::port/:database*" + ); + const match = connectionPattern.match(this.connectionString); + this.database_id = match?.database; + this.connectionConfig = { + ...this.connectionConfig, + user: match?.username, + password: match?.password, + database: match?.database, + server: match?._[0], + port: match?.port ? Number(match.port) : null, + }; + } + + async connect() { + this._client = await mssql.connect(this.connectionConfig); + this.#connected = true; + return this._client; + } + + /** + * + * @param {string} queryString the SQL query to be run + * @returns {import(".").QueryResult} + */ + async runQuery(queryString = "") { + const result = { rows: [], count: 0, error: null }; + try { + if (!this.#connected) await this.connect(); + + const query = await this._client.query(queryString); + result.rows = query.recordset; + result.count = query.rowsAffected.reduce((sum, a) => sum + a, 0); + } catch (err) { + console.log(this.constructor.name, err); + result.error = err.message; + } finally { + await this._client.close(); + this.#connected = false; + } + return result; + } + + getTablesSql() { + return `SELECT name FROM sysobjects WHERE xtype='U';`; + } + getTableSchemaSql(table_name) { + return `SELECT COLUMN_NAME,COLUMN_DEFAULT,IS_NULLABLE,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='${table_name}'`; + } +} + +module.exports.MSSQLConnector = MSSQLConnector; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MySQL.js b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MySQL.js new file mode 100644 index 00000000..d9982ab3 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/MySQL.js @@ -0,0 +1,59 @@ +const mysql = require("mysql2/promise"); +const UrlPattern = require("url-pattern"); + +class MySQLConnector { + #connected = false; + database_id = ""; + constructor( + config = { + connectionString: null, + } + ) { + this.connectionString = config.connectionString; + this._client = null; + this.database_id = this.#parseDatabase(); + } + + #parseDatabase() { + const connectionPattern = new UrlPattern("mysql\\://*@*/:database*"); + const match = connectionPattern.match(this.connectionString); + return match?.database; + } + + async connect() { + this._client = await mysql.createConnection({ uri: this.connectionString }); + this.#connected = true; + return this._client; + } + + /** + * + * @param {string} queryString the SQL query to be run + * @returns {import(".").QueryResult} + */ + async runQuery(queryString = "") { + const result = { rows: [], count: 0, error: null }; + try { + if (!this.#connected) await this.connect(); + const [query] = await this._client.query(queryString); + result.rows = query; + result.count = query?.length; + } catch (err) { + console.log(this.constructor.name, err); + result.error = err.message; + } finally { + await this._client.end(); + this.#connected = false; + } + return result; + } + + getTablesSql() { + return `SELECT table_name FROM information_schema.tables WHERE table_schema = '${this.database_id}'`; + } + getTableSchemaSql(table_name) { + return `SHOW COLUMNS FROM ${this.database_id}.${table_name};`; + } +} + +module.exports.MySQLConnector = MySQLConnector; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/Postgresql.js b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/Postgresql.js new file mode 100644 index 00000000..463fea51 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/Postgresql.js @@ -0,0 +1,52 @@ +const pgSql = require("pg"); + +class PostgresSQLConnector { + #connected = false; + constructor( + config = { + connectionString: null, + } + ) { + this.connectionString = config.connectionString; + this._client = new pgSql.Client({ + connectionString: this.connectionString, + }); + } + + async connect() { + await this._client.connect(); + this.#connected = true; + return this._client; + } + + /** + * + * @param {string} queryString the SQL query to be run + * @returns {import(".").QueryResult} + */ + async runQuery(queryString = "") { + const result = { rows: [], count: 0, error: null }; + try { + if (!this.#connected) await this.connect(); + const query = await this._client.query(queryString); + result.rows = query.rows; + result.count = query.rowCount; + } catch (err) { + console.log(this.constructor.name, err); + result.error = err.message; + } finally { + await this._client.end(); + this.#connected = false; + } + return result; + } + + getTablesSql() { + return `SELECT * FROM pg_catalog.pg_tables WHERE schemaname = 'public'`; + } + getTableSchemaSql(table_name) { + return ` select column_name, data_type, character_maximum_length, column_default, is_nullable from INFORMATION_SCHEMA.COLUMNS where table_name = '${table_name}'`; + } +} + +module.exports.PostgresSQLConnector = PostgresSQLConnector; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/index.js b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/index.js new file mode 100644 index 00000000..9cf1e1ff --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/index.js @@ -0,0 +1,60 @@ +const { SystemSettings } = require("../../../../../../models/systemSettings"); +const { safeJsonParse } = require("../../../../../http"); + +/** + * @typedef {('postgresql'|'mysql'|'sql-server')} SQLEngine + */ + +/** + * @typedef {Object} QueryResult + * @property {[number]} rows - The query result rows + * @property {number} count - Number of rows the query returned/changed + * @property {string|null} error - Error string if there was an issue + */ + +/** + * A valid database SQL connection object + * @typedef {Object} SQLConnection + * @property {string} database_id - Unique identifier of the database connection + * @property {SQLEngine} engine - Engine used by connection + * @property {string} connectionString - RFC connection string for db + */ + +/** + * @param {SQLEngine} identifier + * @param {object} connectionConfig + * @returns Database Connection Engine Class for SQLAgent or throws error + */ +function getDBClient(identifier = "", connectionConfig = {}) { + switch (identifier) { + case "mysql": + const { MySQLConnector } = require("./MySQL"); + return new MySQLConnector(connectionConfig); + case "postgresql": + const { PostgresSQLConnector } = require("./Postgresql"); + return new PostgresSQLConnector(connectionConfig); + case "sql-server": + const { MSSQLConnector } = require("./MSSQL"); + return new MSSQLConnector(connectionConfig); + default: + throw new Error( + `There is no supported database connector for ${identifier}` + ); + } +} + +/** + * Lists all of the known database connection that can be used by the agent. + * @returns {Promise<[SQLConnection]>} + */ +async function listSQLConnections() { + return safeJsonParse( + (await SystemSettings.get({ label: "agent_sql_connections" }))?.value, + [] + ); +} + +module.exports = { + getDBClient, + listSQLConnections, +}; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/get-table-schema.js b/server/utils/agents/aibitat/plugins/sql-agent/get-table-schema.js new file mode 100644 index 00000000..2f66d119 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/get-table-schema.js @@ -0,0 +1,98 @@ +module.exports.SqlAgentGetTableSchema = { + name: "sql-get-table-schema", + plugin: function () { + const { + listSQLConnections, + getDBClient, + } = require("./SQLConnectors/index.js"); + + return { + name: "sql-get-table-schema", + setup(aibitat) { + aibitat.function({ + super: aibitat, + name: this.name, + description: + "Gets the table schema in SQL for a given `table` and `database_id`", + examples: [ + { + prompt: "What does the customers table in access-logs look like?", + call: JSON.stringify({ + database_id: "access-logs", + table_name: "customers", + }), + }, + { + prompt: + "Get me the full name of a company in records-main, the table should be call comps", + call: JSON.stringify({ + database_id: "records-main", + table_name: "comps", + }), + }, + ], + parameters: { + $schema: "http://json-schema.org/draft-07/schema#", + type: "object", + properties: { + database_id: { + type: "string", + description: + "The database identifier for which we will connect to to query the table schema. This is a required field.", + }, + table_name: { + type: "string", + description: + "The database identifier for the table name we want the schema for. This is a required field.", + }, + }, + additionalProperties: false, + }, + required: ["database_id", "table_name"], + handler: async function ({ database_id = "", table_name = "" }) { + this.super.handlerProps.log(`Using the sql-get-table-schema tool.`); + try { + const databaseConfig = (await listSQLConnections()).find( + (db) => db.database_id === database_id + ); + if (!databaseConfig) { + this.super.handlerProps.log( + `sql-get-table-schema to find config!.`, + database_id + ); + return `No database connection for ${database_id} was found!`; + } + + const db = getDBClient(databaseConfig.engine, databaseConfig); + this.super.introspect( + `${this.caller}: Querying the table schema for ${table_name} in the ${databaseConfig.database_id} database.` + ); + this.super.introspect( + `Running SQL: ${db.getTableSchemaSql(table_name)}` + ); + const result = await db.runQuery( + db.getTableSchemaSql(table_name) + ); + + if (result.error) { + this.super.handlerProps.log( + `sql-get-table-schema tool reported error`, + result.error + ); + this.super.introspect(`Error: ${result.error}`); + return `There was an error running the query: ${result.error}`; + } + + return JSON.stringify(result); + } catch (e) { + this.super.handlerProps.log( + `sql-get-table-schema raised an error. ${e.message}` + ); + return e.message; + } + }, + }); + }, + }; + }, +}; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/index.js b/server/utils/agents/aibitat/plugins/sql-agent/index.js new file mode 100644 index 00000000..b7c1ed7d --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/index.js @@ -0,0 +1,21 @@ +const { SqlAgentGetTableSchema } = require("./get-table-schema"); +const { SqlAgentListDatabase } = require("./list-database"); +const { SqlAgentListTables } = require("./list-table"); +const { SqlAgentQuery } = require("./query"); + +const sqlAgent = { + name: "sql-agent", + startupConfig: { + params: {}, + }, + plugin: [ + SqlAgentListDatabase, + SqlAgentListTables, + SqlAgentGetTableSchema, + SqlAgentQuery, + ], +}; + +module.exports = { + sqlAgent, +}; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/list-database.js b/server/utils/agents/aibitat/plugins/sql-agent/list-database.js new file mode 100644 index 00000000..20e67c28 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/list-database.js @@ -0,0 +1,49 @@ +module.exports.SqlAgentListDatabase = { + name: "sql-list-databases", + plugin: function () { + const { listSQLConnections } = require("./SQLConnectors"); + return { + name: "sql-list-databases", + setup(aibitat) { + aibitat.function({ + super: aibitat, + name: this.name, + description: + "List all available databases via `list_databases` you currently have access to. Returns a unique string identifier `database_id` that can be used for future calls.", + examples: [ + { + prompt: "What databases can you access?", + call: JSON.stringify({}), + }, + { + prompt: "What databases can you tell me about?", + call: JSON.stringify({}), + }, + { + prompt: "Is there a database named erp-logs you can access?", + call: JSON.stringify({}), + }, + ], + parameters: { + $schema: "http://json-schema.org/draft-07/schema#", + type: "object", + properties: {}, + additionalProperties: false, + }, + handler: async function () { + this.super.handlerProps.log(`Using the sql-list-databases tool.`); + this.super.introspect( + `${this.caller}: Checking what are the available databases.` + ); + + const connections = (await listSQLConnections()).map((conn) => { + const { connectionString, ...rest } = conn; + return rest; + }); + return JSON.stringify(connections); + }, + }); + }, + }; + }, +}; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/list-table.js b/server/utils/agents/aibitat/plugins/sql-agent/list-table.js new file mode 100644 index 00000000..d186bf01 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/list-table.js @@ -0,0 +1,85 @@ +module.exports.SqlAgentListTables = { + name: "sql-list-tables", + plugin: function () { + const { + listSQLConnections, + getDBClient, + } = require("./SQLConnectors/index.js"); + + return { + name: "sql-list-tables", + setup(aibitat) { + aibitat.function({ + super: aibitat, + name: this.name, + description: + "List all available tables in a database via its `database_id`.", + examples: [ + { + prompt: "What tables are there in the `access-logs` database?", + call: JSON.stringify({ database_id: "access-logs" }), + }, + { + prompt: + "What information can you access in the customer_accts postgres db?", + call: JSON.stringify({ database_id: "customer_accts" }), + }, + { + prompt: "Can you tell me what is in the primary-logs db?", + call: JSON.stringify({ database_id: "primary-logs" }), + }, + ], + parameters: { + $schema: "http://json-schema.org/draft-07/schema#", + type: "object", + properties: { + database_id: { + type: "string", + description: + "The database identifier for which we will list all tables for. This is a required parameter", + }, + }, + additionalProperties: false, + }, + required: ["database_id"], + handler: async function ({ database_id = "" }) { + try { + this.super.handlerProps.log(`Using the sql-list-tables tool.`); + const databaseConfig = (await listSQLConnections()).find( + (db) => db.database_id === database_id + ); + if (!databaseConfig) { + this.super.handlerProps.log( + `sql-list-tables failed to find config!.`, + database_id + ); + return `No database connection for ${database_id} was found!`; + } + + const db = getDBClient(databaseConfig.engine, databaseConfig); + this.super.introspect( + `${this.caller}: Checking what are the available tables in the ${databaseConfig.database_id} database.` + ); + + this.super.introspect(`Running SQL: ${db.getTablesSql()}`); + const result = await db.runQuery(db.getTablesSql(database_id)); + if (result.error) { + this.super.handlerProps.log( + `sql-list-tables tool reported error`, + result.error + ); + this.super.introspect(`Error: ${result.error}`); + return `There was an error running the query: ${result.error}`; + } + + return JSON.stringify(result); + } catch (e) { + console.error(e); + return e.message; + } + }, + }); + }, + }; + }, +}; diff --git a/server/utils/agents/aibitat/plugins/sql-agent/query.js b/server/utils/agents/aibitat/plugins/sql-agent/query.js new file mode 100644 index 00000000..fca1aeb0 --- /dev/null +++ b/server/utils/agents/aibitat/plugins/sql-agent/query.js @@ -0,0 +1,101 @@ +module.exports.SqlAgentQuery = { + name: "sql-query", + plugin: function () { + const { + getDBClient, + listSQLConnections, + } = require("./SQLConnectors/index.js"); + + return { + name: "sql-query", + setup(aibitat) { + aibitat.function({ + super: aibitat, + name: this.name, + description: + "Run a read-only SQL query on a `database_id` which will return up rows of data related to the query. The query must only be SELECT statements which do not modify the table data. There should be a reasonable LIMIT on the return quantity to prevent long-running or queries which crash the db.", + examples: [ + { + prompt: "How many customers are in dvd-rentals?", + call: JSON.stringify({ + database_id: "dvd-rentals", + sql_query: "SELECT * FROM customers", + }), + }, + { + prompt: "Can you tell me the total volume of sales last month?", + call: JSON.stringify({ + database_id: "sales-db", + sql_query: + "SELECT SUM(sale_amount) AS total_sales FROM sales WHERE sale_date >= DATEADD(month, -1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)) AND sale_date < DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)", + }), + }, + { + prompt: + "Do we have anyone in the staff table for our production db named 'sam'? ", + call: JSON.stringify({ + database_id: "production", + sql_query: + "SElECT * FROM staff WHERE first_name='sam%' OR last_name='sam%'", + }), + }, + ], + parameters: { + $schema: "http://json-schema.org/draft-07/schema#", + type: "object", + properties: { + database_id: { + type: "string", + description: + "The database identifier for which we will connect to to query the table schema. This is required to run the SQL query.", + }, + sql_query: { + type: "string", + description: + "The raw SQL query to run. Should be a query which does not modify the table and will return results.", + }, + }, + additionalProperties: false, + }, + required: ["database_id", "table_name"], + handler: async function ({ database_id = "", sql_query = "" }) { + this.super.handlerProps.log(`Using the sql-query tool.`); + try { + const databaseConfig = (await listSQLConnections()).find( + (db) => db.database_id === database_id + ); + if (!databaseConfig) { + this.super.handlerProps.log( + `sql-query failed to find config!.`, + database_id + ); + return `No database connection for ${database_id} was found!`; + } + + this.super.introspect( + `${this.caller}: Im going to run a query on the ${database_id} to get an answer.` + ); + const db = getDBClient(databaseConfig.engine, databaseConfig); + + this.super.introspect(`Running SQL: ${sql_query}`); + const result = await db.runQuery(sql_query); + if (result.error) { + this.super.handlerProps.log( + `sql-query tool reported error`, + result.error + ); + this.super.introspect(`Error: ${result.error}`); + return `There was an error running the query: ${result.error}`; + } + + return JSON.stringify(result); + } catch (e) { + console.error(e); + return e.message; + } + }, + }); + }, + }; + }, +}; diff --git a/server/utils/agents/aibitat/plugins/websocket.js b/server/utils/agents/aibitat/plugins/websocket.js index b6154984..f5c73b33 100644 --- a/server/utils/agents/aibitat/plugins/websocket.js +++ b/server/utils/agents/aibitat/plugins/websocket.js @@ -49,7 +49,7 @@ const websocket = { setup(aibitat) { aibitat.onError(async (error) => { if (!!error?.message) { - console.error(chalk.red(` error: ${error.message}`)); + console.error(chalk.red(` error: ${error.message}`), error); aibitat.introspect( `Error encountered while running: ${error.message}` ); diff --git a/server/utils/agents/aibitat/providers/anthropic.js b/server/utils/agents/aibitat/providers/anthropic.js index 307731ba..b69b14d6 100644 --- a/server/utils/agents/aibitat/providers/anthropic.js +++ b/server/utils/agents/aibitat/providers/anthropic.js @@ -3,7 +3,7 @@ const { RetryError } = require("../error.js"); const Provider = require("./ai-provider.js"); /** - * The provider for the Anthropic API. + * The agent provider for the Anthropic API. * By default, the model is set to 'claude-2'. */ class AnthropicProvider extends Provider { diff --git a/server/utils/agents/aibitat/providers/azure.js b/server/utils/agents/aibitat/providers/azure.js index cdcf7618..0ecc398f 100644 --- a/server/utils/agents/aibitat/providers/azure.js +++ b/server/utils/agents/aibitat/providers/azure.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the Azure OpenAI API. + * The agent provider for the Azure OpenAI API. */ class AzureOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -84,6 +84,11 @@ class AzureOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { ); completion = response.choices[0].message; } + + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0 }; } catch (error) { throw error; diff --git a/server/utils/agents/aibitat/providers/genericOpenAi.js b/server/utils/agents/aibitat/providers/genericOpenAi.js index e41476d2..a1b2db3e 100644 --- a/server/utils/agents/aibitat/providers/genericOpenAi.js +++ b/server/utils/agents/aibitat/providers/genericOpenAi.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the Generic OpenAI provider. + * The agent provider for the Generic OpenAI provider. * Since we cannot promise the generic provider even supports tool calling * which is nearly 100% likely it does not, we can just wrap it in untooled * which often is far better anyway. @@ -94,6 +94,10 @@ class GenericOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/groq.js b/server/utils/agents/aibitat/providers/groq.js index 720d8743..01f69f7c 100644 --- a/server/utils/agents/aibitat/providers/groq.js +++ b/server/utils/agents/aibitat/providers/groq.js @@ -3,7 +3,7 @@ const Provider = require("./ai-provider.js"); const { RetryError } = require("../error.js"); /** - * The provider for the Groq provider. + * The agent provider for the Groq provider. * Using OpenAI tool calling with groq really sucks right now * its just fast and bad. We should probably migrate this to Untooled to improve * coherence. diff --git a/server/utils/agents/aibitat/providers/koboldcpp.js b/server/utils/agents/aibitat/providers/koboldcpp.js index 77088263..2dd12784 100644 --- a/server/utils/agents/aibitat/providers/koboldcpp.js +++ b/server/utils/agents/aibitat/providers/koboldcpp.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the KoboldCPP provider. + * The agent provider for the KoboldCPP provider. */ class KoboldCPPProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -89,6 +89,10 @@ class KoboldCPPProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/lmstudio.js b/server/utils/agents/aibitat/providers/lmstudio.js index f5c4a2e8..258f2e29 100644 --- a/server/utils/agents/aibitat/providers/lmstudio.js +++ b/server/utils/agents/aibitat/providers/lmstudio.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the LMStudio provider. + * The agent provider for the LMStudio. */ class LMStudioProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -89,6 +89,10 @@ class LMStudioProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/localai.js b/server/utils/agents/aibitat/providers/localai.js index 161172c2..bd0c3b52 100644 --- a/server/utils/agents/aibitat/providers/localai.js +++ b/server/utils/agents/aibitat/providers/localai.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the LocalAI provider. + * The agent provider for the LocalAI provider. */ class LocalAiProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -93,6 +93,10 @@ class LocalAiProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0 }; } catch (error) { throw error; diff --git a/server/utils/agents/aibitat/providers/mistral.js b/server/utils/agents/aibitat/providers/mistral.js index cdc2a5e7..aa2c1c6e 100644 --- a/server/utils/agents/aibitat/providers/mistral.js +++ b/server/utils/agents/aibitat/providers/mistral.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the Mistral provider. + * The agent provider for the Mistral provider. * Mistral limits what models can call tools and even when using those * the model names change and dont match docs. When you do have the right model * it still fails and is not truly OpenAI compatible so its easier to just wrap @@ -93,6 +93,10 @@ class MistralProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/ollama.js b/server/utils/agents/aibitat/providers/ollama.js index d52d80ca..5cb529e5 100644 --- a/server/utils/agents/aibitat/providers/ollama.js +++ b/server/utils/agents/aibitat/providers/ollama.js @@ -4,7 +4,7 @@ const UnTooled = require("./helpers/untooled.js"); const { Ollama } = require("ollama"); /** - * The provider for the Ollama provider. + * The agent provider for the Ollama provider. */ class OllamaProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -83,6 +83,10 @@ class OllamaProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/openai.js b/server/utils/agents/aibitat/providers/openai.js index 3fcc46ca..2866a759 100644 --- a/server/utils/agents/aibitat/providers/openai.js +++ b/server/utils/agents/aibitat/providers/openai.js @@ -3,7 +3,7 @@ const Provider = require("./ai-provider.js"); const { RetryError } = require("../error.js"); /** - * The provider for the OpenAI API. + * The agent provider for the OpenAI API. * By default, the model is set to 'gpt-3.5-turbo'. */ class OpenAIProvider extends Provider { diff --git a/server/utils/agents/aibitat/providers/openrouter.js b/server/utils/agents/aibitat/providers/openrouter.js index 81297ae2..50c0868d 100644 --- a/server/utils/agents/aibitat/providers/openrouter.js +++ b/server/utils/agents/aibitat/providers/openrouter.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the OpenRouter provider. + * The agent provider for the OpenRouter provider. */ class OpenRouterProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -93,6 +93,10 @@ class OpenRouterProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/perplexity.js b/server/utils/agents/aibitat/providers/perplexity.js index 29970fd0..07220695 100644 --- a/server/utils/agents/aibitat/providers/perplexity.js +++ b/server/utils/agents/aibitat/providers/perplexity.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the Perplexity provider. + * The agent provider for the Perplexity provider. */ class PerplexityProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -89,6 +89,10 @@ class PerplexityProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/textgenwebui.js b/server/utils/agents/aibitat/providers/textgenwebui.js index d1e42425..7ef1cf4c 100644 --- a/server/utils/agents/aibitat/providers/textgenwebui.js +++ b/server/utils/agents/aibitat/providers/textgenwebui.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the Oobabooga provider. + * The agent provider for the Oobabooga provider. */ class TextWebGenUiProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -88,6 +88,10 @@ class TextWebGenUiProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/providers/togetherai.js b/server/utils/agents/aibitat/providers/togetherai.js index 4ea5e11c..78cbb512 100644 --- a/server/utils/agents/aibitat/providers/togetherai.js +++ b/server/utils/agents/aibitat/providers/togetherai.js @@ -4,7 +4,7 @@ const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); /** - * The provider for the TogetherAI provider. + * The agent provider for the TogetherAI provider. */ class TogetherAIProvider extends InheritMultiple([Provider, UnTooled]) { model; @@ -89,6 +89,10 @@ class TogetherAIProvider extends InheritMultiple([Provider, UnTooled]) { completion = response.choices[0].message; } + // The UnTooled class inherited Deduplicator is mostly useful to prevent the agent + // from calling the exact same function over and over in a loop within a single chat exchange + // _but_ we should enable it to call previously used tools in a new chat interaction. + this.deduplicator.reset("runs"); return { result: completion.content, cost: 0, diff --git a/server/utils/agents/aibitat/utils/dedupe.js b/server/utils/agents/aibitat/utils/dedupe.js index 8c4d582d..321f6929 100644 --- a/server/utils/agents/aibitat/utils/dedupe.js +++ b/server/utils/agents/aibitat/utils/dedupe.js @@ -38,6 +38,25 @@ class Deduplicator { return this.#hashes.hasOwnProperty(newSig); } + /** + * Resets the object property for this instance of the Deduplicator class + * @param {('runs'|'cooldowns'|'uniques')} type - The type of prop to reset + */ + reset(type = "runs") { + switch (type) { + case "runs": + this.#hashes = {}; + break; + case "cooldowns": + this.#cooldowns = {}; + break; + case "uniques": + this.#uniques = {}; + break; + } + return; + } + startCooldown( key, parameters = { diff --git a/server/utils/agents/defaults.js b/server/utils/agents/defaults.js index 4e12b906..796a7bbc 100644 --- a/server/utils/agents/defaults.js +++ b/server/utils/agents/defaults.js @@ -25,8 +25,22 @@ const WORKSPACE_AGENT = { const _setting = ( await SystemSettings.get({ label: "default_agent_skills" }) )?.value; + safeJsonParse(_setting, []).forEach((skillName) => { if (!AgentPlugins.hasOwnProperty(skillName)) return; + + // This is a plugin module with many sub-children plugins who + // need to be named via `${parent}#${child}` naming convention + if (Array.isArray(AgentPlugins[skillName].plugin)) { + for (const subPlugin of AgentPlugins[skillName].plugin) { + defaultFunctions.push( + `${AgentPlugins[skillName].name}#${subPlugin.name}` + ); + } + return; + } + + // This is normal single-stage plugin defaultFunctions.push(AgentPlugins[skillName].name); }); diff --git a/server/utils/agents/index.js b/server/utils/agents/index.js index 08ce5558..cf6f312d 100644 --- a/server/utils/agents/index.js +++ b/server/utils/agents/index.js @@ -197,8 +197,60 @@ class AgentHandler { this.invocation = invocation ?? null; } + #parseCallOptions(args, config = {}, pluginName) { + const callOpts = {}; + for (const [param, definition] of Object.entries(config)) { + if ( + definition.required && + (!args.hasOwnProperty(param) || args[param] === null) + ) { + this.log( + `'${param}' required parameter for '${pluginName}' plugin is missing. Plugin may not function or crash agent.` + ); + continue; + } + callOpts[param] = args.hasOwnProperty(param) + ? args[param] + : definition.default || null; + } + return callOpts; + } + #attachPlugins(args) { for (const name of this.#funcsToLoad) { + // Load child plugin + if (name.includes("#")) { + const [parent, childPluginName] = name.split("#"); + if (!AgentPlugins.hasOwnProperty(parent)) { + this.log( + `${parent} is not a valid plugin. Skipping inclusion to agent cluster.` + ); + continue; + } + + const childPlugin = AgentPlugins[parent].plugin.find( + (child) => child.name === childPluginName + ); + if (!childPlugin) { + this.log( + `${parent} does not have child plugin named ${childPluginName}. Skipping inclusion to agent cluster.` + ); + continue; + } + + const callOpts = this.#parseCallOptions( + args, + childPlugin?.startupConfig?.params, + name + ); + this.aibitat.use(childPlugin.plugin(callOpts)); + this.log( + `Attached ${parent}:${childPluginName} plugin to Agent cluster` + ); + continue; + } + + // Load single-stage plugin. if (!AgentPlugins.hasOwnProperty(name)) { this.log( `${name} is not a valid plugin. Skipping inclusion to agent cluster.` @@ -206,24 +258,10 @@ class AgentHandler { continue; } - const callOpts = {}; - for (const [param, definition] of Object.entries( + const callOpts = this.#parseCallOptions( + args, AgentPlugins[name].startupConfig.params - )) { - if ( - definition.required && - (!args.hasOwnProperty(param) || args[param] === null) - ) { - this.log( - `'${param}' required parameter for '${name}' plugin is missing. Plugin may not function or crash agent.` - ); - continue; - } - callOpts[param] = args.hasOwnProperty(param) - ? args[param] - : definition.default || null; - } - + ); const AIbitatPlugin = AgentPlugins[name]; this.aibitat.use(AIbitatPlugin.plugin(callOpts)); this.log(`Attached ${name} plugin to Agent cluster`); diff --git a/server/yarn.lock b/server/yarn.lock index 9e4f184d..d274e574 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -82,6 +82,13 @@ "@azure/core-util" "^1.0.0" tslib "^2.6.2" +"@azure/abort-controller@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" + integrity sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== + dependencies: + tslib "^2.2.0" + "@azure/abort-controller@^2.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" @@ -89,7 +96,7 @@ dependencies: tslib "^2.6.2" -"@azure/core-auth@^1.3.0", "@azure/core-auth@^1.4.0": +"@azure/core-auth@^1.3.0", "@azure/core-auth@^1.4.0", "@azure/core-auth@^1.5.0": version "1.7.2" resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.7.2.tgz#558b7cb7dd12b00beec07ae5df5907d74df1ebd9" integrity sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g== @@ -98,6 +105,59 @@ "@azure/core-util" "^1.1.0" tslib "^2.6.2" +"@azure/core-client@^1.3.0", "@azure/core-client@^1.4.0", "@azure/core-client@^1.5.0": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.2.tgz#6fc69cee2816883ab6c5cdd653ee4f2ff9774f74" + integrity sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-http-compat@^2.0.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz#d1585ada24ba750dc161d816169b33b35f762f0d" + integrity sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-client" "^1.3.0" + "@azure/core-rest-pipeline" "^1.3.0" + +"@azure/core-lro@^2.2.0": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.7.2.tgz#787105027a20e45c77651a98b01a4d3b01b75a08" + integrity sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.2.0" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-paging@^1.1.1": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.6.2.tgz#40d3860dc2df7f291d66350b2cfd9171526433e7" + integrity sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA== + dependencies: + tslib "^2.6.2" + +"@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.8.1", "@azure/core-rest-pipeline@^1.9.1": + version "1.16.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz#631172e2fe0346cf4410d1c8e01ad98d849738e2" + integrity sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.9.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + "@azure/core-rest-pipeline@^1.13.0", "@azure/core-rest-pipeline@^1.5.0": version "1.15.2" resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.2.tgz#421729bbd8cd5f9f50b403e79941f27ac1bdc302" @@ -119,14 +179,14 @@ dependencies: tslib "^2.6.2" -"@azure/core-tracing@^1.0.1": +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.1.2.tgz#065dab4e093fb61899988a1cdbc827d9ad90b4ee" integrity sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA== dependencies: tslib "^2.6.2" -"@azure/core-util@^1.0.0", "@azure/core-util@^1.1.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.4.0": +"@azure/core-util@^1.0.0", "@azure/core-util@^1.1.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.4.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.9.0.tgz#469afd7e6452d5388b189f90d33f7756b0b210d1" integrity sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw== @@ -134,6 +194,43 @@ "@azure/abort-controller" "^2.0.0" tslib "^2.6.2" +"@azure/identity@^3.4.1": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-3.4.2.tgz#6b01724c9caac7cadab6b63c76584345bda8e2de" + integrity sha512-0q5DL4uyR0EZ4RXQKD8MadGH6zTIcloUoS/RVbCpNpej4pwte0xpqYxk8K97Py2RiuUvI7F4GXpoT4046VfufA== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-auth" "^1.5.0" + "@azure/core-client" "^1.4.0" + "@azure/core-rest-pipeline" "^1.1.0" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + "@azure/msal-browser" "^3.5.0" + "@azure/msal-node" "^2.5.1" + events "^3.0.0" + jws "^4.0.0" + open "^8.0.0" + stoppable "^1.1.0" + tslib "^2.2.0" + +"@azure/keyvault-keys@^4.4.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@azure/keyvault-keys/-/keyvault-keys-4.8.0.tgz#1513b3a187bb3a9a372b5980c593962fb793b2ad" + integrity sha512-jkuYxgkw0aaRfk40OQhFqDIupqblIOIlYESWB6DKCVDxQet1pyv86Tfk9M+5uFM0+mCs6+MUHU+Hxh3joiUn4Q== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-client" "^1.5.0" + "@azure/core-http-compat" "^2.0.1" + "@azure/core-lro" "^2.2.0" + "@azure/core-paging" "^1.1.1" + "@azure/core-rest-pipeline" "^1.8.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.0.0" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" + "@azure/logger@^1.0.0", "@azure/logger@^1.0.3": version "1.1.2" resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.2.tgz#3f4b876cefad328dc14aff8b850d63b611e249dc" @@ -141,6 +238,27 @@ dependencies: tslib "^2.6.2" +"@azure/msal-browser@^3.5.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-3.14.0.tgz#1cb5cab438a9943212aa50c403d11f775c787b21" + integrity sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA== + dependencies: + "@azure/msal-common" "14.10.0" + +"@azure/msal-common@14.10.0": + version "14.10.0" + resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-14.10.0.tgz#215449726717b53d549953db77562cad6cb8421c" + integrity sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA== + +"@azure/msal-node@^2.5.1": + version "2.8.1" + resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-2.8.1.tgz#aded28d37eea2e7278c9bd44f2016647390f239c" + integrity sha512-VcZZM+5VvCWRBTOF7SxMKaxrz+EXjntx2u5AQe7QE06e6FuPJElGBrImgNgCh5QmFaNCfVFO+3qNR7UoFD/Gfw== + dependencies: + "@azure/msal-common" "14.10.0" + jsonwebtoken "^9.0.0" + uuid "^8.3.0" + "@azure/openai@1.0.0-beta.10": version "1.0.0-beta.10" resolved "https://registry.yarnpkg.com/@azure/openai/-/openai-1.0.0-beta.10.tgz#13bcf5c5bc34dd27e33dc6aab5db3dc97dd4545b" @@ -427,6 +545,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.3.1.tgz#afb95ff78f44fff7e8a00e17d5820db6add2a076" integrity sha512-Pe3PFccjPVJV1vtlfVvm9OnlbxqdnP5QcscFEFEnK5quChf1ufZtM0r8mR5ToWHMxZOh0s8o/qp9ANGRTo/DAw== +"@js-joda/core@^5.5.3": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-5.6.2.tgz#1885d10daa404cea2bd55575f910ab3bbe6c33d7" + integrity sha512-ow4R+7C24xeTjiMTTZ4k6lvxj7MRBqvqLCQjThQff3RjOmIMokMP20LNYVFhGafJtUx/Xo2Qp4qU8eNoTVH0SA== + "@js-sdsl/ordered-map@^4.4.2": version "4.4.2" resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" @@ -954,6 +1077,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.29.6.tgz#4cd8372f9247372edd5fc5af44f67e2032c46e2f" integrity sha512-aX5IFYWlMa7tQ8xZr3b2gtVReCvg7f3LEhjir/JAjX2bJCMVJA5tIPv30wTD4KDfcwMd7DDYY3hFDeGmOgtrZQ== +"@tediousjs/connection-string@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@tediousjs/connection-string/-/connection-string-0.5.0.tgz#9b3d858c040aac6bdf5584bf45370cef5b6522b4" + integrity sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ== + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -1030,6 +1158,14 @@ resolved "https://registry.yarnpkg.com/@types/pad-left/-/pad-left-2.1.1.tgz#17d906fc75804e1cc722da73623f1d978f16a137" integrity sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA== +"@types/readable-stream@^4.0.0": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-4.0.14.tgz#5a76a00e1e3dd6ff921ea2b3fac7485c5a492c19" + integrity sha512-xZn/AuUbCMShGsqH/ehZtGDwQtbx00M9rZ2ENLe4tOjFZ/JFeWMhEZkk2fEe1jAUqqEAURIkFJ7Az/go8mM1/w== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + "@types/retry@0.12.0": version "0.12.0" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" @@ -1539,6 +1675,16 @@ bl@^5.0.0: inherits "^2.0.4" readable-stream "^3.4.0" +bl@^6.0.3: + version "6.0.12" + resolved "https://registry.yarnpkg.com/bl/-/bl-6.0.12.tgz#77c35b96e13aeff028496c798b75389ddee9c7f8" + integrity sha512-EnEYHilP93oaOa2MnmNEjAcovPS3JlQZOyzGXi3EyEpPhm9qWvdDp7BmAVEVusGzp8LlwQK56Av+OkDoRjzE0w== + dependencies: + "@types/readable-stream" "^4.0.0" + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^4.2.0" + body-parser@1.20.2, body-parser@^1.20.2: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" @@ -1931,6 +2077,11 @@ commander@^10.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + commander@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -2147,6 +2298,11 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -2166,6 +2322,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -2383,6 +2544,20 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23 unbox-primitive "^1.0.2" which-typed-array "^1.1.15" +es-aggregate-error@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz#7f28b77c9d8d09bbcd3a466e4be9fe02fa985201" + integrity sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A== + dependencies: + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + set-function-name "^2.0.2" + es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" @@ -2622,6 +2797,11 @@ eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +events@^3.0.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3028,6 +3208,13 @@ gcp-metadata@^5.3.0: gaxios "^5.0.0" json-bigint "^1.0.0" +generate-function@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + generic-pool@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4" @@ -3353,7 +3540,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: +iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -3516,6 +3703,11 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3584,6 +3776,11 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -3655,6 +3852,13 @@ is-weakset@^2.0.3: call-bind "^1.0.7" get-intrinsic "^1.2.4" +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3715,6 +3919,11 @@ js-base64@3.7.2: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== +js-md4@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/js-md4/-/js-md4-0.3.2.tgz#cd3b3dc045b0c404556c81ddb5756c23e59d7cf5" + integrity sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA== + js-tiktoken@^1.0.11, js-tiktoken@^1.0.7, js-tiktoken@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.11.tgz#d7d707b849f703841112660d9d55169424a35344" @@ -3734,6 +3943,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsbi@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741" + integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== + jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -3811,7 +4025,7 @@ jsonwebtoken@^8.5.1: ms "^2.1.1" semver "^5.6.0" -jsonwebtoken@^9.0.2: +jsonwebtoken@^9.0.0, jsonwebtoken@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== @@ -4050,7 +4264,7 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -long@^5.0.0: +long@^5.0.0, long@^5.2.1: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== @@ -4074,6 +4288,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +lru-cache@^8.0.0: + version "8.0.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-8.0.5.tgz#983fe337f3e176667f8e567cfcce7cb064ea214e" + integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA== + lru-cache@^9.1.2: version "9.1.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" @@ -4327,6 +4551,18 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +mssql@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/mssql/-/mssql-10.0.2.tgz#99f9113a05b8ee32c84704fddc3780554cd89a60" + integrity sha512-GrQ6gzv2xA7ndOvONyZ++4RZsNkr8qDiIpvuFn2pR3TPiSk/cKdmvOrDU3jWgon7EPj7CPgmDiMh7Hgtft2xLg== + dependencies: + "@tediousjs/connection-string" "^0.5.0" + commander "^11.0.0" + debug "^4.3.3" + rfdc "^1.3.0" + tarn "^3.0.2" + tedious "^16.4.0" + multer@^1.4.5-lts.1: version "1.4.5-lts.1" resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" @@ -4350,11 +4586,37 @@ mute-stream@^1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== +mysql2@^3.9.7: + version "3.9.7" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.9.7.tgz#843755daf65b5ef08afe545fe14b8fb62824741a" + integrity sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw== + dependencies: + denque "^2.1.0" + generate-function "^2.3.1" + iconv-lite "^0.6.3" + long "^5.2.1" + lru-cache "^8.0.0" + named-placeholders "^1.1.3" + seq-queue "^0.0.5" + sqlstring "^2.3.2" + +named-placeholders@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.3.tgz#df595799a36654da55dda6152ba7a137ad1d9351" + integrity sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w== + dependencies: + lru-cache "^7.14.1" + napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== +native-duplexpair@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0" + integrity sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4372,6 +4634,11 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" +node-abort-controller@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + node-addon-api@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" @@ -4685,6 +4952,15 @@ onnxruntime-web@1.14.0: onnxruntime-common "~1.14.0" platform "^1.3.6" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + openai@4.38.5: version "4.38.5" resolved "https://registry.yarnpkg.com/openai/-/openai-4.38.5.tgz#87de78eed9f7e63331fb6b1307d8c9dd986b39d0" @@ -4848,6 +5124,62 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.11.5: + version "8.11.5" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128" + integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -4882,6 +5214,28 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + posthog-node@^3.1.1: version "3.6.3" resolved "https://registry.yarnpkg.com/posthog-node/-/posthog-node-3.6.3.tgz#4d3a2a4385e01c4d9e91d01dbde104e60285853d" @@ -4937,6 +5291,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -5110,6 +5469,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.2.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdir-glob@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" @@ -5199,6 +5569,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -5298,6 +5673,11 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +seq-queue@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" + integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q== + serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -5450,7 +5830,12 @@ socks@^2.6.2: ip-address "^9.0.5" smart-buffer "^4.2.0" -sprintf-js@^1.1.3: +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +sprintf-js@^1.1.2, sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== @@ -5472,6 +5857,11 @@ sqlite@^4.2.1: resolved "https://registry.yarnpkg.com/sqlite/-/sqlite-4.2.1.tgz#d4eedfd1ad702f79110792375f4241a90c75c828" integrity sha512-Tll0Ndvnwkuv5Hn6WIbh26rZiYQORuH1t5m/or9LUpSmDmmyFG89G9fKrSeugMPxwmEIXoVxqTun4LbizTs4uw== +sqlstring@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" + integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== + ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" @@ -5496,6 +5886,11 @@ stdin-discarder@^0.1.0: dependencies: bl "^5.0.0" +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + stream-read-all@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/stream-read-all/-/stream-read-all-3.0.1.tgz#60762ae45e61d93ba0978cda7f3913790052ad96" @@ -5585,7 +5980,7 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -5748,6 +6143,28 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: mkdirp "^1.0.3" yallist "^4.0.0" +tarn@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" + integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== + +tedious@^16.4.0: + version "16.7.1" + resolved "https://registry.yarnpkg.com/tedious/-/tedious-16.7.1.tgz#1190f30fd99a413f1dc9250dee4835cf0788b650" + integrity sha512-NmedZS0NJiTv3CoYnf1FtjxIDUgVYzEmavrc8q2WHRb+lP4deI9BpQfmNnBZZaWusDbP5FVFZCcvzb3xOlNVlQ== + dependencies: + "@azure/identity" "^3.4.1" + "@azure/keyvault-keys" "^4.4.0" + "@js-joda/core" "^5.5.3" + bl "^6.0.3" + es-aggregate-error "^1.0.9" + iconv-lite "^0.6.3" + js-md4 "^0.3.2" + jsbi "^4.3.0" + native-duplexpair "^1.0.0" + node-abort-controller "^3.1.1" + sprintf-js "^1.1.2" + text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" @@ -5794,7 +6211,7 @@ triple-beam@^1.3.0: resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== -tslib@^2.4.0, tslib@^2.5.3, tslib@^2.6.2: +tslib@^2.2.0, tslib@^2.4.0, tslib@^2.5.3, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5966,6 +6383,11 @@ url-join@4.0.1, url-join@^4.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== +url-pattern@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/url-pattern/-/url-pattern-1.0.3.tgz#0409292471b24f23c50d65a47931793d2b5acfc1" + integrity sha512-uQcEj/2puA4aq1R3A2+VNVBgaWYR24FdWjl7VNW83rnWftlhyzOZ/tBjezRiC2UkIzuxC8Top3IekN3vUf1WxA== + url-template@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" @@ -5991,7 +6413,7 @@ uuid-apikey@^1.5.3: encode32 "^1.1.0" uuid "^8.3.1" -uuid@^8.3.1: +uuid@^8.3.0, uuid@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== From a79683065f7c9c72b26fb6f47860b64421b24de0 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 16 May 2024 10:45:46 -0700 Subject: [PATCH 07/55] [FIX] Make height and width data options apply to mobile styles (#1412) * make height and width data options apply to mobile styles * update build and respect viewport on dev index --------- Co-authored-by: timothycarambat --- embed/index.html | 4 ++++ embed/src/App.jsx | 10 +++++----- frontend/public/embed/anythingllm-chat-widget.min.js | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/embed/index.html b/embed/index.html index b5113e17..d0171c6c 100644 --- a/embed/index.html +++ b/embed/index.html @@ -1,4 +1,8 @@ + + + + diff --git a/embed/src/App.jsx b/embed/src/App.jsx index dfd5b54a..0929bd34 100644 --- a/embed/src/App.jsx +++ b/embed/src/App.jsx @@ -28,18 +28,18 @@ export default function App() { const position = embedSettings.position || "bottom-right"; const windowWidth = embedSettings.windowWidth - ? `md:max-w-[${embedSettings.windowWidth}]` - : "md:max-w-[400px]"; + ? `max-w-[${embedSettings.windowWidth}]` + : "max-w-[400px]"; const windowHeight = embedSettings.windowHeight - ? `md:max-h-[${embedSettings.windowHeight}]` - : "md:max-h-[700px]"; + ? `max-h-[${embedSettings.windowHeight}]` + : "max-h-[700px]"; return ( <>
{isChatOpen && ( diff --git a/frontend/public/embed/anythingllm-chat-widget.min.js b/frontend/public/embed/anythingllm-chat-widget.min.js index 6dacc093..3efb2831 100644 --- a/frontend/public/embed/anythingllm-chat-widget.min.js +++ b/frontend/public/embed/anythingllm-chat-widget.min.js @@ -34,5 +34,5 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function M(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ws=Object.prototype.hasOwnProperty,Ag=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ec={},Ac={};function Ye(e,t,n,r,o,a,s){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=s}var Me={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){Me[e]=new Ye(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];Me[t]=new Ye(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){Me[e]=new Ye(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){Me[e]=new Ye(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){Me[e]=new Ye(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){Me[e]=new Ye(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){Me[e]=new Ye(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){Me[e]=new Ye(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){Me[e]=new Ye(e,5,!1,e.toLowerCase(),null,!1,!1)}));var Ys=/[\-:]([a-z])/g;function Ks(e){return e[1].toUpperCase()}function Xs(e,t,n,r){var o=Me.hasOwnProperty(t)?Me[t]:null;(null!==o?0!==o.type:r||!(2"u"||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!Ws.call(Ac,e)||!Ws.call(Ec,e)&&(Ag.test(e)?Ac[e]=!0:(Ec[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){Me[e]=new Ye(e,1,!1,e.toLowerCase(),null,!1,!1)})),Me.xlinkHref=new Ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){Me[e]=new Ye(e,1,!1,e.toLowerCase(),null,!0,!0)}));var Yt=mc.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Qo=Symbol.for("react.element"),nr=Symbol.for("react.portal"),rr=Symbol.for("react.fragment"),Qs=Symbol.for("react.strict_mode"),Js=Symbol.for("react.profiler"),bc=Symbol.for("react.provider"),_c=Symbol.for("react.context"),ei=Symbol.for("react.forward_ref"),ti=Symbol.for("react.suspense"),ni=Symbol.for("react.suspense_list"),ri=Symbol.for("react.memo"),sn=Symbol.for("react.lazy"),vc=Symbol.for("react.offscreen"),Dc=Symbol.iterator;function $r(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=Dc&&e[Dc]||e["@@iterator"])?e:null}var oi,be=Object.assign;function Zr(e){if(void 0===oi)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);oi=t&&t[1]||""}return"\n"+oi+e}var ai=!1;function si(e,t){if(!e||ai)return"";ai=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var o=u.stack.split("\n"),a=r.stack.split("\n"),s=o.length-1,i=a.length-1;1<=s&&0<=i&&o[s]!==a[i];)i--;for(;1<=s&&0<=i;s--,i--)if(o[s]!==a[i]){if(1!==s||1!==i)do{if(s--,0>--i||o[s]!==a[i]){var l="\n"+o[s].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}}while(1<=s&&0<=i);break}}}finally{ai=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Zr(e):""}function Dg(e){switch(e.tag){case 5:return Zr(e.type);case 16:return Zr("Lazy");case 13:return Zr("Suspense");case 19:return Zr("SuspenseList");case 0:case 2:case 15:return e=si(e.type,!1);case 11:return e=si(e.type.render,!1);case 1:return e=si(e.type,!0);default:return""}}function ii(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case rr:return"Fragment";case nr:return"Portal";case Js:return"Profiler";case Qs:return"StrictMode";case ti:return"Suspense";case ni:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case _c:return(e.displayName||"Context")+".Consumer";case bc:return(e._context.displayName||"Context")+".Provider";case ei:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case ri:return null!==(t=e.displayName||null)?t:ii(e.type)||"Memo";case sn:t=e._payload,e=e._init;try{return ii(e(t))}catch{}}return null}function yg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ii(t);case 8:return t===Qs?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function ln(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function yc(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Jo(e){e._valueTracker||(e._valueTracker=function(e){var t=yc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(s){r=""+s,a.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Tc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yc(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ea(e){if(typeof(e=e||(typeof document<"u"?document:void 0))>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function li(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cc(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ln(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Nc(e,t){null!=(t=t.checked)&&Xs(e,"checked",t,!1)}function ui(e,t){Nc(e,t);var n=ln(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ci(e,t.type,n):t.hasOwnProperty("defaultValue")&&ci(e,t.type,ln(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Sc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ci(e,t,n){("number"!==t||ea(e.ownerDocument)!==e)&&(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var jr=Array.isArray;function or(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=ta.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e);function Wr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var Yr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Cg=["Webkit","ms","Moz","O"];function kc(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||Yr.hasOwnProperty(e)&&Yr[e]?(""+t).trim():t+"px"}function Ic(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=kc(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(Yr).forEach((function(e){Cg.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Yr[t]=Yr[e]}))}));var Ng=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fi(e,t){if(t){if(Ng[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(M(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(M(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(M(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(M(62))}}function gi(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var mi=null;function hi(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ei=null,ar=null,sr=null;function Mc(e){if(e=Ao(e)){if("function"!=typeof Ei)throw Error(M(280));var t=e.stateNode;t&&(t=Ta(t),Ei(e.stateNode,e.type,t))}}function Fc(e){ar?sr?sr.push(e):sr=[e]:ar=e}function Bc(){if(ar){var e=ar,t=sr;if(sr=ar=null,Mc(e),t)for(e=0;e>>=0,0===e?32:31-(Bg(e)/Pg|0)|0},Bg=Math.log,Pg=Math.LN2;var sa=64,ia=4194304;function Jr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function la(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,s=268435455&n;if(0!==s){var i=s&~o;0!==i?r=Jr(i):0!==(a&=s)&&(r=Jr(a))}else 0!==(s=n&~o)?r=Jr(s):0!==a&&(r=Jr(a));if(0===r)return 0;if(0!==t&&t!==r&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function eo(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-St(t)]=n}function Ti(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-St(n),o=1<=lo),d0=" ",p0=!1;function f0(e,t){switch(e){case"keyup":return-1!==hm.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function g0(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ur=!1;var _m={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function m0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!_m[e.type]:"textarea"===t}function h0(e,t,n,r){Fc(r),0<(t=va(t,"onChange")).length&&(n=new Ri("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var uo=null,co=null;function vm(e){I0(e,0)}function Ea(e){if(Tc(gr(e)))return e}function Dm(e,t){if("change"===e)return t}var E0=!1;if(Wt){var Fi;if(Wt){var Bi="oninput"in document;if(!Bi){var A0=document.createElement("div");A0.setAttribute("oninput","return;"),Bi="function"==typeof A0.oninput}Fi=Bi}else Fi=!1;E0=Fi&&(!document.documentMode||9=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=v0(n)}}function y0(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?y0(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function T0(){for(var e=window,t=ea();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch{n=!1}if(!n)break;t=ea((e=t.contentWindow).document)}return t}function Pi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function wm(e){var t=T0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&y0(n.ownerDocument.documentElement,n)){if(null!==r&&Pi(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=D0(n,a);var s=D0(n,r);o&&s&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n=document.documentMode,cr=null,Ui=null,fo=null,qi=!1;function C0(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;qi||null==cr||cr!==ea(r)||("selectionStart"in(r=cr)&&Pi(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},fo&&po(fo,r)||(fo=r,0<(r=va(Ui,"onSelect")).length&&(t=new Ri("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=cr)))}function Aa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var dr={animationend:Aa("Animation","AnimationEnd"),animationiteration:Aa("Animation","AnimationIteration"),animationstart:Aa("Animation","AnimationStart"),transitionend:Aa("Transition","TransitionEnd")},Hi={},N0={};function ba(e){if(Hi[e])return Hi[e];if(!dr[e])return e;var n,t=dr[e];for(n in t)if(t.hasOwnProperty(n)&&n in N0)return Hi[e]=t[n];return e}Wt&&(N0=document.createElement("div").style,"AnimationEvent"in window||(delete dr.animationend.animation,delete dr.animationiteration.animation,delete dr.animationstart.animation),"TransitionEvent"in window||delete dr.transitionend.transition);var S0=ba("animationend"),w0=ba("animationiteration"),x0=ba("animationstart"),R0=ba("transitionend"),L0=new Map,O0="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function gn(e,t){L0.set(e,t),xn(t,[e])}for(var Vi=0;Vimr||(e.current=Qi[mr],Qi[mr]=null,mr--)}function pe(e,t){mr++,Qi[mr]=e.current,e.current=t}var En={},qe=hn(En),Je=hn(!1),On=En;function hr(e,t){var n=e.type.contextTypes;if(!n)return En;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function et(e){return null!=(e=e.childContextTypes)}function Ca(){Ee(Je),Ee(qe)}function q0(e,t,n){if(qe.current!==En)throw Error(M(168));pe(qe,t),pe(Je,n)}function H0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(M(108,yg(e)||"Unknown",o));return be({},n,r)}function Na(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||En,On=qe.current,pe(qe,e),pe(Je,Je.current),!0}function V0(e,t,n){var r=e.stateNode;if(!r)throw Error(M(169));n?(e=H0(e,t,On),r.__reactInternalMemoizedMergedChildContext=e,Ee(Je),Ee(qe),pe(qe,e)):Ee(Je),pe(Je,n)}var Xt=null,Sa=!1,Ji=!1;function z0(e){null===Xt?Xt=[e]:Xt.push(e)}function An(){if(!Ji&&null!==Xt){Ji=!0;var e=0,t=ue;try{var n=Xt;for(ue=1;e>=s,o-=s,Qt=1<<32-St(t)+o|n<R?(q=S,S=null):q=S.sibling;var I=d(h,S,E[R],v);if(null===I){null===S&&(S=q);break}e&&S&&null===I.alternate&&t(h,S),g=a(I,g,R),null===_?N=I:_.sibling=I,_=I,S=q}if(R===E.length)return n(h,S),Ae&&In(h,R),N;if(null===S){for(;RR?(q=S,S=null):q=S.sibling;var Q=d(h,S,I.value,v);if(null===Q){null===S&&(S=q);break}e&&S&&null===Q.alternate&&t(h,S),g=a(Q,g,R),null===_?N=Q:_.sibling=Q,_=Q,S=q}if(I.done)return n(h,S),Ae&&In(h,R),N;if(null===S){for(;!I.done;R++,I=E.next())null!==(I=p(h,I.value,v))&&(g=a(I,g,R),null===_?N=I:_.sibling=I,_=I);return Ae&&In(h,R),N}for(S=r(h,S);!I.done;R++,I=E.next())null!==(I=m(S,h,R,I.value,v))&&(e&&null!==I.alternate&&S.delete(null===I.key?R:I.key),g=a(I,g,R),null===_?N=I:_.sibling=I,_=I);return e&&S.forEach((function(ie){return t(h,ie)})),Ae&&In(h,R),N}(h,g,E,v);Fa(h,E)}return"string"==typeof E&&""!==E||"number"==typeof E?(E=""+E,null!==g&&6===g.tag?(n(h,g.sibling),(g=o(g,E)).return=h,h=g):(n(h,g),(g=Yl(E,h.mode,v)).return=h,h=g),s(h)):n(h,g)}}var Dr=od(!0),ad=od(!1),_o={},qt=hn(_o),vo=hn(_o),Do=hn(_o);function Fn(e){if(e===_o)throw Error(M(174));return e}function fl(e,t){switch(pe(Do,t),pe(vo,e),pe(qt,_o),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pi(null,"");break;default:t=pi(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ee(qt),pe(qt,t)}function yr(){Ee(qt),Ee(vo),Ee(Do)}function sd(e){Fn(Do.current);var t=Fn(qt.current),n=pi(t,e.type);t!==n&&(pe(vo,e),pe(qt,n))}function gl(e){vo.current===e&&(Ee(qt),Ee(vo))}var _e=hn(0);function Ba(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ml=[];function hl(){for(var e=0;en?n:4,e(!0);var r=El.transition;El.transition={};try{e(!1),t()}finally{ue=n,El.transition=r}}function Td(){return _t().memoizedState}function Gm(e,t,n){var r=Tn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Cd(e))Nd(t,n);else if(null!==(n=Y0(e,t,n,r))){kt(n,e,r,Xe()),Sd(n,t,r)}}function $m(e,t,n){var r=Tn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Cd(e))Nd(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var s=t.lastRenderedState,i=a(s,n);if(o.hasEagerState=!0,o.eagerState=i,wt(i,s)){var l=t.interleaved;return null===l?(o.next=o,ul(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch{}null!==(n=Y0(e,t,o,r))&&(kt(n,e,r,o=Xe()),Sd(n,t,r))}}function Cd(e){var t=e.alternate;return e===ve||null!==t&&t===ve}function Nd(e,t){yo=Ua=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Sd(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ti(e,n)}}var Va={readContext:bt,useCallback:He,useContext:He,useEffect:He,useImperativeHandle:He,useInsertionEffect:He,useLayoutEffect:He,useMemo:He,useReducer:He,useRef:He,useState:He,useDebugValue:He,useDeferredValue:He,useTransition:He,useMutableSource:He,useSyncExternalStore:He,useId:He,unstable_isNewReconciler:!1},Zm={readContext:bt,useCallback:function(e,t){return Ht().memoizedState=[e,void 0===t?null:t],e},useContext:bt,useEffect:hd,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,qa(4194308,4,bd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return qa(4194308,4,e,t)},useInsertionEffect:function(e,t){return qa(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Gm.bind(null,ve,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ht().memoizedState=e},useState:gd,useDebugValue:Tl,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=gd(!1),t=e[0];return e=zm.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ve,o=Ht();if(Ae){if(void 0===n)throw Error(M(407));n=n()}else{if(n=t(),null===Oe)throw Error(M(349));30&Bn||ud(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,hd(dd.bind(null,r,a,e),[e]),r.flags|=2048,No(9,cd.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Ht(),t=Oe.identifierPrefix;if(Ae){var n=Jt;t=":"+t+"R"+(n=(Qt&~(1<<32-St(Qt)-1)).toString(32)+n),0<(n=To++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=Vm++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},jm={readContext:bt,useCallback:vd,useContext:bt,useEffect:yl,useImperativeHandle:_d,useInsertionEffect:Ed,useLayoutEffect:Ad,useMemo:Dd,useReducer:vl,useRef:md,useState:function(){return vl(Co)},useDebugValue:Tl,useDeferredValue:function(e){return yd(_t(),we.memoizedState,e)},useTransition:function(){return[vl(Co)[0],_t().memoizedState]},useMutableSource:id,useSyncExternalStore:ld,useId:Td,unstable_isNewReconciler:!1},Wm={readContext:bt,useCallback:vd,useContext:bt,useEffect:yl,useImperativeHandle:_d,useInsertionEffect:Ed,useLayoutEffect:Ad,useMemo:Dd,useReducer:Dl,useRef:md,useState:function(){return Dl(Co)},useDebugValue:Tl,useDeferredValue:function(e){var t=_t();return null===we?t.memoizedState=e:yd(t,we.memoizedState,e)},useTransition:function(){return[Dl(Co)[0],_t().memoizedState]},useMutableSource:id,useSyncExternalStore:ld,useId:Td,unstable_isNewReconciler:!1};function Tr(e,t){try{var n="",r=t;do{n+=Dg(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function Cl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Nl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var Ym="function"==typeof WeakMap?WeakMap:Map;function wd(e,t,n){(n=tn(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ya||(Ya=!0,Hl=r),Nl(0,t)},n}function xd(e,t,n){(n=tn(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){Nl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){Nl(0,t),"function"!=typeof r&&(null===Dn?Dn=new Set([this]):Dn.add(this));var s=t.stack;this.componentDidCatch(t.value,{componentStack:null!==s?s:""})}),n}function Rd(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new Ym;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=uh.bind(null,e,t,n),t.then(e,e))}function Ld(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function Od(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=tn(-1,1)).tag=2,_n(n,t,1))),n.lanes|=1),e)}var Km=Yt.ReactCurrentOwner,tt=!1;function Ke(e,t,n,r){t.child=null===e?ad(t,null,n,r):Dr(t,e.child,n,r)}function kd(e,t,n,r,o){n=n.render;var a=t.ref;return vr(t,o),r=bl(e,t,n,r,a,o),n=_l(),null===e||tt?(Ae&&n&&el(t),t.flags|=1,Ke(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,nn(e,t,o))}function Id(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Wl(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=ts(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Md(e,t,a,r,o))}if(a=e.child,!(e.lanes&o)){var s=a.memoizedProps;if((n=null!==(n=n.compare)?n:po)(s,r)&&e.ref===t.ref)return nn(e,t,o)}return t.flags|=1,(e=Nn(a,r)).ref=t.ref,e.return=t,t.child=e}function Md(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(po(a,r)&&e.ref===t.ref){if(tt=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,nn(e,t,o);131072&e.flags&&(tt=!0)}}return Sl(e,t,n,r,o)}function Fd(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,pe(Nr,pt),pt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,pe(Nr,pt),pt|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},pe(Nr,pt),pt|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,pe(Nr,pt),pt|=r;return Ke(e,t,o,n),t.child}function Bd(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Sl(e,t,n,r,o){var a=et(n)?On:qe.current;return a=hr(t,a),vr(t,o),n=bl(e,t,n,r,a,o),r=_l(),null===e||tt?(Ae&&r&&el(t),t.flags|=1,Ke(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,nn(e,t,o))}function Pd(e,t,n,r,o){if(et(n)){var a=!0;Na(t)}else a=!1;if(vr(t,o),null===t.stateNode)Ga(e,t),td(t,n,r),pl(t,n,r,o),r=!0;else if(null===e){var s=t.stateNode,i=t.memoizedProps;s.props=i;var l=s.context,u=n.contextType;"object"==typeof u&&null!==u?u=bt(u):u=hr(t,u=et(n)?On:qe.current);var c=n.getDerivedStateFromProps,p="function"==typeof c||"function"==typeof s.getSnapshotBeforeUpdate;p||"function"!=typeof s.UNSAFE_componentWillReceiveProps&&"function"!=typeof s.componentWillReceiveProps||(i!==r||l!==u)&&nd(t,s,r,u),bn=!1;var d=t.memoizedState;s.state=d,Ia(t,r,s,o),l=t.memoizedState,i!==r||d!==l||Je.current||bn?("function"==typeof c&&(dl(t,n,c,r),l=t.memoizedState),(i=bn||ed(t,n,i,r,d,l,u))?(p||"function"!=typeof s.UNSAFE_componentWillMount&&"function"!=typeof s.componentWillMount||("function"==typeof s.componentWillMount&&s.componentWillMount(),"function"==typeof s.UNSAFE_componentWillMount&&s.UNSAFE_componentWillMount()),"function"==typeof s.componentDidMount&&(t.flags|=4194308)):("function"==typeof s.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),s.props=r,s.state=l,s.context=u,r=i):("function"==typeof s.componentDidMount&&(t.flags|=4194308),r=!1)}else{s=t.stateNode,K0(e,t),i=t.memoizedProps,u=t.type===t.elementType?i:Rt(t.type,i),s.props=u,p=t.pendingProps,d=s.context,"object"==typeof(l=n.contextType)&&null!==l?l=bt(l):l=hr(t,l=et(n)?On:qe.current);var m=n.getDerivedStateFromProps;(c="function"==typeof m||"function"==typeof s.getSnapshotBeforeUpdate)||"function"!=typeof s.UNSAFE_componentWillReceiveProps&&"function"!=typeof s.componentWillReceiveProps||(i!==p||d!==l)&&nd(t,s,r,l),bn=!1,d=t.memoizedState,s.state=d,Ia(t,r,s,o);var A=t.memoizedState;i!==p||d!==A||Je.current||bn?("function"==typeof m&&(dl(t,n,m,r),A=t.memoizedState),(u=bn||ed(t,n,u,r,d,A,l)||!1)?(c||"function"!=typeof s.UNSAFE_componentWillUpdate&&"function"!=typeof s.componentWillUpdate||("function"==typeof s.componentWillUpdate&&s.componentWillUpdate(r,A,l),"function"==typeof s.UNSAFE_componentWillUpdate&&s.UNSAFE_componentWillUpdate(r,A,l)),"function"==typeof s.componentDidUpdate&&(t.flags|=4),"function"==typeof s.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof s.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof s.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=A),s.props=r,s.state=A,s.context=l,r=u):("function"!=typeof s.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof s.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return wl(e,t,n,r,a,o)}function wl(e,t,n,r,o,a){Bd(e,t);var s=0!=(128&t.flags);if(!r&&!s)return o&&V0(t,n,!1),nn(e,t,a);r=t.stateNode,Km.current=t;var i=s&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&s?(t.child=Dr(t,e.child,null,a),t.child=Dr(t,null,i,a)):Ke(e,t,i,a),t.memoizedState=r.state,o&&V0(t,n,!0),t.child}function Ud(e){var t=e.stateNode;t.pendingContext?q0(0,t.pendingContext,t.pendingContext!==t.context):t.context&&q0(0,t.context,!1),fl(e,t.containerInfo)}function qd(e,t,n,r,o){return br(),ol(o),t.flags|=256,Ke(e,t,n,r),t.child}var Gd,kl,$d,Zd,xl={dehydrated:null,treeContext:null,retryLane:0};function Rl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Hd(e,t,n){var i,r=t.pendingProps,o=_e.current,a=!1,s=0!=(128&t.flags);if((i=s)||(i=(null===e||null!==e.memoizedState)&&0!=(2&o)),i?(a=!0,t.flags&=-129):(null===e||null!==e.memoizedState)&&(o|=1),pe(_e,1&o),null===e)return rl(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=r.children,e=r.fallback,a?(r=t.mode,a=t.child,s={mode:"hidden",children:s},1&r||null===a?a=ns(s,r,0,null):(a.childLanes=0,a.pendingProps=s),e=Vn(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Rl(n),t.memoizedState=xl,e):Ll(t,s));if(null!==(o=e.memoizedState)&&null!==(i=o.dehydrated))return function(e,t,n,r,o,a,s){if(n)return 256&t.flags?(t.flags&=-257,r=Cl(Error(M(422))),za(e,t,s,r)):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,o=t.mode,r=ns({mode:"visible",children:r.children},o,0,null),a=Vn(a,o,s,null),a.flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,1&t.mode&&Dr(t,e.child,null,s),t.child.memoizedState=Rl(s),t.memoizedState=xl,a);if(!(1&t.mode))return za(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var i=r.dgst;return r=i,za(e,t,s,r=Cl(a=Error(M(419)),r,void 0))}if(i=0!=(s&e.childLanes),tt||i){if(null!==(r=Oe)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(r.suspendedLanes|s)?0:o)&&o!==a.retryLane&&(a.retryLane=o,en(e,o),kt(r,e,o,-1))}return jl(),za(e,t,s,r=Cl(Error(M(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=ch.bind(null,e),o._reactRetry=t,null):(e=a.treeContext,dt=mn(o.nextSibling),ct=t,Ae=!0,xt=null,null!==e&&(Et[At++]=Qt,Et[At++]=Jt,Et[At++]=kn,Qt=e.id,Jt=e.overflow,kn=t),t=Ll(t,r.children),t.flags|=4096,t)}(e,t,s,r,i,o,n);if(a){a=r.fallback,s=t.mode,i=(o=e.child).sibling;var l={mode:"hidden",children:r.children};return 1&s||t.child===o?(r=Nn(o,l)).subtreeFlags=14680064&o.subtreeFlags:((r=t.child).childLanes=0,r.pendingProps=l,t.deletions=null),null!==i?a=Nn(i,a):(a=Vn(a,s,n,null)).flags|=2,a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,s=null===(s=e.child.memoizedState)?Rl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},a.memoizedState=s,a.childLanes=e.childLanes&~n,t.memoizedState=xl,r}return e=(a=e.child).sibling,r=Nn(a,{mode:"visible",children:r.children}),!(1&t.mode)&&(r.lanes=n),r.return=t,r.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Ll(e,t){return(t=ns({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function za(e,t,n,r){return null!==r&&ol(r),Dr(t,e.child,null,n),(e=Ll(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vd(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ll(e.return,t,n)}function Ol(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function zd(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Ke(e,t,r.children,n),2&(r=_e.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vd(e,n,t);else if(19===e.tag)Vd(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(pe(_e,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ol(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Ba(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ol(t,!0,n,null,a);break;case"together":Ol(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function Ga(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function nn(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Pn|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(M(153));if(null!==t.child){for(n=Nn(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nn(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function So(e,t){if(!Ae)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ve(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Jm(e,t,n){var r=t.pendingProps;switch(tl(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ve(t),null;case 1:case 17:return et(t.type)&&Ca(),Ve(t),null;case 3:return r=t.stateNode,yr(),Ee(Je),Ee(qe),hl(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(null===e||null===e.child)&&(Ra(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==xt&&(Gl(xt),xt=null))),kl(e,t),Ve(t),null;case 5:gl(t);var o=Fn(Do.current);if(n=t.type,null!==e&&null!=t.stateNode)$d(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(M(166));return Ve(t),null}if(e=Fn(qt.current),Ra(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[Ut]=t,r[Eo]=a,e=0!=(1&t.mode),n){case"dialog":he("cancel",r),he("close",r);break;case"iframe":case"object":case"embed":he("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Ut]=t,e[Eo]=r,Gd(e,t,!1,!1),t.stateNode=e;e:{switch(s=gi(n,r),n){case"dialog":he("cancel",e),he("close",e),o=r;break;case"iframe":case"object":case"embed":he("load",e),o=r;break;case"video":case"audio":for(o=0;oSr&&(t.flags|=128,r=!0,So(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=Ba(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),So(a,!0),null===a.tail&&"hidden"===a.tailMode&&!s.alternate&&!Ae)return Ve(t),null}else 2*Ne()-a.renderingStartTime>Sr&&1073741824!==n&&(t.flags|=128,r=!0,So(a,!1),t.lanes=4194304);a.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=a.last)?n.sibling=s:t.child=s,a.last=s)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Ne(),t.sibling=null,n=_e.current,pe(_e,r?1&n|2:1&n),t):(Ve(t),null);case 22:case 23:return Zl(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?1073741824&pt&&(Ve(t),6&t.subtreeFlags&&(t.flags|=8192)):Ve(t),null;case 24:case 25:return null}throw Error(M(156,t.tag))}function eh(e,t){switch(tl(t),t.tag){case 1:return et(t.type)&&Ca(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return yr(),Ee(Je),Ee(qe),hl(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return gl(t),null;case 13:if(Ee(_e),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(M(340));br()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ee(_e),null;case 4:return yr(),null;case 10:return il(t.type._context),null;case 22:case 23:return Zl(),null;default:return null}}Gd=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},kl=function(){},$d=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Fn(qt.current);var s,a=null;switch(n){case"input":o=li(e,o),r=li(e,r),a=[];break;case"select":o=be({},o,{value:void 0}),r=be({},r,{value:void 0}),a=[];break;case"textarea":o=di(e,o),r=di(e,r),a=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=ya)}for(u in fi(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var i=o[u];for(s in i)i.hasOwnProperty(s)&&(n||(n={}),n[s]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(Gr.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in r){var l=r[u];if(i=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&l!==i&&(null!=l||null!=i))if("style"===u)if(i){for(s in i)!i.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||(n={}),n[s]="");for(s in l)l.hasOwnProperty(s)&&i[s]!==l[s]&&(n||(n={}),n[s]=l[s])}else n||(a||(a=[]),a.push(u,n)),n=l;else"dangerouslySetInnerHTML"===u?(l=l?l.__html:void 0,i=i?i.__html:void 0,null!=l&&i!==l&&(a=a||[]).push(u,l)):"children"===u?"string"!=typeof l&&"number"!=typeof l||(a=a||[]).push(u,""+l):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(Gr.hasOwnProperty(u)?(null!=l&&"onScroll"===u&&he("scroll",e),a||i===l||(a=[])):(a=a||[]).push(u,l))}n&&(a=a||[]).push("style",n);var u=a;(t.updateQueue=u)&&(t.flags|=4)}},Zd=function(e,t,n,r){n!==r&&(t.flags|=4)};var $a=!1,ze=!1,th="function"==typeof WeakSet?WeakSet:Set,U=null;function Cr(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){ye(e,t,r)}else n.current=null}function Il(e,t,n){try{n()}catch(r){ye(e,t,r)}}var jd=!1;function wo(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&Il(t,n,a)}o=o.next}while(o!==r)}}function Za(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ml(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function Wd(e){var t=e.alternate;null!==t&&(e.alternate=null,Wd(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[Ut],delete t[Eo],delete t[Xi],delete t[Pm],delete t[Um])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Yd(e){return 5===e.tag||3===e.tag||4===e.tag}function Kd(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Yd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Fl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=ya));else if(4!==r&&null!==(e=e.child))for(Fl(e,t,n),e=e.sibling;null!==e;)Fl(e,t,n),e=e.sibling}function Bl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(Bl(e,t,n),e=e.sibling;null!==e;)Bl(e,t,n),e=e.sibling}var Fe=null,Lt=!1;function vn(e,t,n){for(n=n.child;null!==n;)Xd(e,t,n),n=n.sibling}function Xd(e,t,n){if(Pt&&"function"==typeof Pt.onCommitFiberUnmount)try{Pt.onCommitFiberUnmount(aa,n)}catch{}switch(n.tag){case 5:ze||Cr(n,t);case 6:var r=Fe,o=Lt;Fe=null,vn(e,t,n),Lt=o,null!==(Fe=r)&&(Lt?(e=Fe,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):Fe.removeChild(n.stateNode));break;case 18:null!==Fe&&(Lt?(e=Fe,n=n.stateNode,8===e.nodeType?Ki(e.parentNode,n):1===e.nodeType&&Ki(e,n),ao(e)):Ki(Fe,n.stateNode));break;case 4:r=Fe,o=Lt,Fe=n.stateNode.containerInfo,Lt=!0,vn(e,t,n),Fe=r,Lt=o;break;case 0:case 11:case 14:case 15:if(!ze&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,s=a.destroy;a=a.tag,void 0!==s&&(2&a||4&a)&&Il(n,t,s),o=o.next}while(o!==r)}vn(e,t,n);break;case 1:if(!ze&&(Cr(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){ye(n,t,i)}vn(e,t,n);break;case 21:vn(e,t,n);break;case 22:1&n.mode?(ze=(r=ze)||null!==n.memoizedState,vn(e,t,n),ze=r):vn(e,t,n);break;default:vn(e,t,n)}}function Qd(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new th),t.forEach((function(r){var o=dh.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))}))}}function Ot(e,t){var n=t.deletions;if(null!==n)for(var r=0;ro&&(o=s),r&=~a}if(r=o,10<(r=(120>(r=Ne()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*oh(r/1960))-r)){e.timeoutHandle=Yi(Hn.bind(null,e,nt,rn),r);break}Hn(e,nt,rn);break;default:throw Error(M(329))}}}return rt(e,Ne()),e.callbackNode===n?o2.bind(null,e):null}function zl(e,t){var n=Ro;return e.current.memoizedState.isDehydrated&&(qn(e,t).flags|=256),2!==(e=es(e,t))&&(t=nt,nt=n,null!==t&&Gl(t)),e}function Gl(e){null===nt?nt=e:nt.push.apply(nt,e)}function Cn(e,t){for(t&=~Ul,t&=~Wa,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0e?16:e,null===yn)var r=!1;else{if(e=yn,yn=null,Xa=0,6&re)throw Error(M(331));var o=re;for(re|=4,U=e.current;null!==U;){var a=U,s=a.child;if(16&U.flags){var i=a.deletions;if(null!==i){for(var l=0;lNe()-ql?qn(e,0):Ul|=n),rt(e,t)}function d2(e,t){0===t&&(1&e.mode?(t=ia,!(130023424&(ia<<=1))&&(ia=4194304)):t=1);var n=Xe();null!==(e=en(e,t))&&(eo(e,t,n),rt(e,n))}function ch(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),d2(e,n)}function dh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(M(314))}null!==r&&r.delete(t),d2(e,n)}function f2(e,t){return $c(e,t)}function ph(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dt(e,t,n,r){return new ph(e,t,n,r)}function Wl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return null===n?((n=Dt(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ts(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Wl(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case rr:return Vn(n.children,o,a,t);case Qs:s=8,o|=8;break;case Js:return(e=Dt(12,n,t,2|o)).elementType=Js,e.lanes=a,e;case ti:return(e=Dt(13,n,t,o)).elementType=ti,e.lanes=a,e;case ni:return(e=Dt(19,n,t,o)).elementType=ni,e.lanes=a,e;case vc:return ns(n,o,a,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case bc:s=10;break e;case _c:s=9;break e;case ei:s=11;break e;case ri:s=14;break e;case sn:s=16,r=null;break e}throw Error(M(130,null==e?e:typeof e,""))}return(t=Dt(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Vn(e,t,n,r){return(e=Dt(7,e,r,t)).lanes=n,e}function ns(e,t,n,r){return(e=Dt(22,e,r,t)).elementType=vc,e.lanes=n,e.stateNode={isHidden:!1},e}function Yl(e,t,n){return(e=Dt(6,e,null,t)).lanes=n,e}function Kl(e,t,n){return(t=Dt(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function gh(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yi(0),this.expirationTimes=yi(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yi(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Xl(e,t,n,r,o,a,s,i,l){return e=new gh(e,t,n,i,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Dt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},cl(a),e}function g2(e){if(!e)return En;e:{if(Rn(e=e._reactInternals)!==e||1!==e.tag)throw Error(M(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(et(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(M(171))}if(1===e.tag){var n=e.type;if(et(n))return H0(e,n,t)}return t}function m2(e,t,n,r,o,a,s,i,l){return(e=Xl(n,r,!0,e,0,a,0,i,l)).context=g2(null),n=e.current,(a=tn(r=Xe(),o=Tn(n))).callback=t??null,_n(n,a,o),e.current.lanes=o,eo(e,o,r),rt(e,r),e}function rs(e,t,n,r){var o=t.current,a=Xe(),s=Tn(o);return n=g2(n),null===t.context?t.context=n:t.pendingContext=n,(t=tn(a,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=_n(o,t,s))&&(kt(e,o,s,a),ka(e,o,s)),s}function os(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function h2(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n"u"||"function"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(b2)}catch(e){console.error(e)}}(),pc.exports=it;var _2=pc.exports;js.createRoot=_2.createRoot,js.hydrateRoot=_2.hydrateRoot;const v2={embedId:null,baseApiUrl:null,prompt:null,model:null,temperature:null,chatIcon:"plus",brandImageUrl:null,greeting:null,buttonColor:"#262626",userBgColor:"#2C2F35",assistantBgColor:"#2563eb",noSponsor:null,sponsorText:"Powered by AnythingLLM",sponsorLink:"https://useanything.com",position:"bottom-right",assistantName:"AnythingLLM Chat Assistant",assistantIcon:null,windowHeight:null,windowWidth:null,textSize:null,openOnLoad:"off",supportEmail:null};let us;const Dh=new Uint8Array(16);function yh(){if(!us&&(us=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!us))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return us(Dh)}const Pe=[];for(let e=0;e<256;++e)Pe.push((e+256).toString(16).slice(1));const D2={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function zn(e,t,n){if(D2.randomUUID&&!t&&!e)return D2.randomUUID();const r=(e=e||{}).random||(e.rng||yh)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let o=0;o<16;++o)t[n+o]=r[o];return t}return function(e,t=0){return Pe[e[t+0]]+Pe[e[t+1]]+Pe[e[t+2]]+Pe[e[t+3]]+"-"+Pe[e[t+4]]+Pe[e[t+5]]+"-"+Pe[e[t+6]]+Pe[e[t+7]]+"-"+Pe[e[t+8]]+Pe[e[t+9]]+"-"+Pe[e[t+10]]+Pe[e[t+11]]+Pe[e[t+12]]+Pe[e[t+13]]+Pe[e[t+14]]+Pe[e[t+15]]}(r)}function y2(){const[e,t]=Z.useState("");return Z.useEffect((()=>{!function(){var s,i;if(!window||null==(s=null==Te?void 0:Te.settings)||!s.embedId)return;const r=`allm_${null==(i=null==Te?void 0:Te.settings)?void 0:i.embedId}_session_id`,o=window.localStorage.getItem(r);if(o)return console.log("Resuming session id",o),void t(o);const a=zn();console.log("Registering new session id",a),window.localStorage.setItem(r,a),t(a)}()}),[window]),e}const tu="___anythingllm-chat-widget-open___";const Nh="\npre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!\n Theme: GitHub Dark Dimmed\n Description: Dark dimmed theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Colors taken from GitHub's CSS\n*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}\n",Sh='\n /**\n * ==============================================\n * Dot Falling\n * ==============================================\n */\n .dot-falling {\n position: relative;\n left: -9999px;\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #5fa4fa;\n box-shadow: 9999px 0 0 0 #000000;\n animation: dot-falling 1.5s infinite linear;\n animation-delay: 0.1s;\n }\n\n .dot-falling::before,\n .dot-falling::after {\n content: "";\n display: inline-block;\n position: absolute;\n top: 0;\n }\n\n .dot-falling::before {\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #000000;\n animation: dot-falling-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n\n .dot-falling::after {\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #000000;\n animation: dot-falling-after 1.5s infinite linear;\n animation-delay: 0.2s;\n }\n\n @keyframes dot-falling {\n 0% {\n box-shadow: 9999px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 9999px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 9999px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n @keyframes dot-falling-before {\n 0% {\n box-shadow: 9984px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 9984px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 9984px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n @keyframes dot-falling-after {\n 0% {\n box-shadow: 10014px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 10014px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 10014px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n #chat-history::-webkit-scrollbar,\n #chat-container::-webkit-scrollbar,\n .no-scroll::-webkit-scrollbar {\n display: none !important;\n }\n\n /* Hide scrollbar for IE, Edge and Firefox */\n #chat-history,\n #chat-container,\n .no-scroll {\n -ms-overflow-style: none !important; /* IE and Edge */\n scrollbar-width: none !important; /* Firefox */\n }\n\n .animate-slow-pulse {\n transform: scale(1);\n animation: subtlePulse 20s infinite;\n will-change: transform;\n }\n\n @keyframes subtlePulse {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n }\n\n @keyframes subtleShift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n\n .bg-black-900 {\n background: #141414;\n }\n';function wh(){return w.jsxs("head",{children:[w.jsx("style",{children:Nh}),w.jsx("style",{children:Sh})]})}const xh=Z.createContext({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var Rh=Object.defineProperty,cs=Object.getOwnPropertySymbols,T2=Object.prototype.hasOwnProperty,C2=Object.prototype.propertyIsEnumerable,N2=(e,t,n)=>t in e?Rh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S2=(e,t)=>{for(var n in t||(t={}))T2.call(t,n)&&N2(e,n,t[n]);if(cs)for(var n of cs(t))C2.call(t,n)&&N2(e,n,t[n]);return e},w2=(e,t)=>{var n={};for(var r in e)T2.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&cs)for(var r of cs(e))t.indexOf(r)<0&&C2.call(e,r)&&(n[r]=e[r]);return n};const Ue=Z.forwardRef(((e,t)=>{const n=e,{alt:r,color:o,size:a,weight:s,mirrored:i,children:l,weights:u}=n,c=w2(n,["alt","color","size","weight","mirrored","children","weights"]),p=Z.useContext(xh),{color:d="currentColor",size:m,weight:A="regular",mirrored:b=!1}=p,C=w2(p,["color","size","weight","mirrored"]);return f.createElement("svg",S2(S2({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a??m,height:a??m,fill:o??d,viewBox:"0 0 256 256",transform:i||b?"scale(-1, 1)":void 0},C),c),!!r&&f.createElement("title",null,r),l,u.get(s??A))}));Ue.displayName="IconBase";const Lh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a100,100,0,0,1-98.66,100H128a99.39,99.39,0,0,1-68.62-27.29,12,12,0,0,1,16.48-17.45,76,76,0,1,0-1.57-109c-.13.13-.25.25-.39.37L54.89,92H72a12,12,0,0,1,0,24H24a12,12,0,0,1-12-12V56a12,12,0,0,1,24,0V76.72L57.48,57.06A100,100,0,0,1,228,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M72,104H24V56Z",opacity:"0.2"}),f.createElement("path",{d:"M195.88,60.08A96.08,96.08,0,0,0,60.25,60L49.31,70,29.66,50.3A8,8,0,0,0,16,56v48a8,8,0,0,0,8,8H72a8,8,0,0,0,5.66-13.66l-17-17,10.54-9.65a3.07,3.07,0,0,0,.26-.25,80,80,0,1,1,1.65,114.78,8,8,0,0,0-11,11.63A95.38,95.38,0,0,0,128,224h1.32A96,96,0,0,0,195.88,60.08ZM32,96V75.28L52.69,96Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L60.63,81.29l17,17A8,8,0,0,1,72,112H24a8,8,0,0,1-8-8V56A8,8,0,0,1,29.66,50.3L49.31,70,60.25,60A96,96,0,0,1,224,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222,128a94,94,0,0,1-92.74,94H128a93.43,93.43,0,0,1-64.5-25.65,6,6,0,1,1,8.24-8.72A82,82,0,1,0,70,70l-.19.19L39.44,98H72a6,6,0,0,1,0,12H24a6,6,0,0,1-6-6V56a6,6,0,0,1,12,0V90.34L61.63,61.4A94,94,0,0,1,222,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L44.59,96H72a8,8,0,0,1,0,16H24a8,8,0,0,1-8-8V56a8,8,0,0,1,16,0V85.8L60.25,60A96,96,0,0,1,224,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M220,128a92,92,0,0,1-90.77,92H128a91.47,91.47,0,0,1-63.13-25.1,4,4,0,1,1,5.5-5.82A84,84,0,1,0,68.6,68.57l-.13.12L34.3,100H72a4,4,0,0,1,0,8H24a4,4,0,0,1-4-4V56a4,4,0,0,1,8,0V94.89l35-32A92,92,0,0,1,220,128Z"}))]]);var Oh=Object.defineProperty,kh=Object.defineProperties,Ih=Object.getOwnPropertyDescriptors,x2=Object.getOwnPropertySymbols,Mh=Object.prototype.hasOwnProperty,Fh=Object.prototype.propertyIsEnumerable,R2=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const L2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>kh(e,Ih(t)))(((e,t)=>{for(var n in t||(t={}))Mh.call(t,n)&&R2(e,n,t[n]);if(x2)for(var n of x2(t))Fh.call(t,n)&&R2(e,n,t[n]);return e})({ref:t},e),{weights:Lh}))));L2.displayName="ArrowCounterClockwise";const Uh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M200,144l-72,72L56,144Z",opacity:"0.2"}),f.createElement("path",{d:"M207.39,140.94A8,8,0,0,0,200,136H136V40a8,8,0,0,0-16,0v96H56a8,8,0,0,0-5.66,13.66l72,72a8,8,0,0,0,11.32,0l72-72A8,8,0,0,0,207.39,140.94ZM128,204.69,75.31,152H180.69Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,5.66,13.66Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.24,148.24l-72,72a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L122,201.51V40a6,6,0,0,1,12,0V201.51l61.76-61.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M202.83,146.83l-72,72a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L124,206.34V40a4,4,0,0,1,8,0V206.34l65.17-65.17a4,4,0,0,1,5.66,5.66Z"}))]]);var qh=Object.defineProperty,Hh=Object.defineProperties,Vh=Object.getOwnPropertyDescriptors,O2=Object.getOwnPropertySymbols,zh=Object.prototype.hasOwnProperty,Gh=Object.prototype.propertyIsEnumerable,k2=(e,t,n)=>t in e?qh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const I2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>Hh(e,Vh(t)))(((e,t)=>{for(var n in t||(t={}))zh.call(t,n)&&k2(e,n,t[n]);if(O2)for(var n of O2(t))Gh.call(t,n)&&k2(e,n,t[n]);return e})({ref:t},e),{weights:Uh}))));I2.displayName="ArrowDown";const jh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M241,150.65s0,0,0-.05a51.33,51.33,0,0,0-2.53-5.9L196.93,50.18a12,12,0,0,0-2.5-3.65,36,36,0,0,0-50.92,0A12,12,0,0,0,140,55V76H116V55a12,12,0,0,0-3.51-8.48,36,36,0,0,0-50.92,0,12,12,0,0,0-2.5,3.65L17.53,144.7A51.33,51.33,0,0,0,15,150.6s0,0,0,.05A52,52,0,1,0,116,168V100h24v68a52,52,0,1,0,101-17.35ZM80,62.28a12,12,0,0,1,12-1.22v63.15a51.9,51.9,0,0,0-35.9-7.62ZM64,196a28,28,0,1,1,28-28A28,28,0,0,1,64,196ZM164,61.06a12.06,12.06,0,0,1,12,1.22l23.87,54.31a51.9,51.9,0,0,0-35.9,7.62ZM192,196a28,28,0,1,1,28-28A28,28,0,0,1,192,196Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M104,168a40,40,0,1,1-40-40A40,40,0,0,1,104,168Zm88-40a40,40,0,1,0,40,40A40,40,0,0,0,192,128Z",opacity:"0.2"}),f.createElement("path",{d:"M237.2,151.87v0a47.1,47.1,0,0,0-2.35-5.45L193.26,51.8a7.82,7.82,0,0,0-1.66-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,7.82,7.82,0,0,0-1.66,2.44L21.15,146.4a47.1,47.1,0,0,0-2.35,5.45v0A48,48,0,1,0,112,168V96h32v72a48,48,0,1,0,93.2-16.13ZM76.71,59.75a16,16,0,0,1,19.29-1v73.51a47.9,47.9,0,0,0-46.79-9.92ZM64,200a32,32,0,1,1,32-32A32,32,0,0,1,64,200ZM160,58.74a16,16,0,0,1,19.29,1l27.5,62.58A47.9,47.9,0,0,0,160,132.25ZM192,200a32,32,0,1,1,32-32A32,32,0,0,1,192,200Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M237.22,151.9l0-.1a1.42,1.42,0,0,0-.07-.22,48.46,48.46,0,0,0-2.31-5.3L193.27,51.8a8,8,0,0,0-1.67-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,8,8,0,0,0-1.67,2.44L21.2,146.28a48.46,48.46,0,0,0-2.31,5.3,1.72,1.72,0,0,0-.07.21s0,.08,0,.11a48,48,0,0,0,90.32,32.51,47.49,47.49,0,0,0,2.9-16.59V96h32v71.83a47.49,47.49,0,0,0,2.9,16.59,48,48,0,0,0,90.32-32.51Zm-143.15,27a32,32,0,0,1-60.2-21.71l1.81-4.13A32,32,0,0,1,96,167.88V168h0A32,32,0,0,1,94.07,178.94ZM203,198.07A32,32,0,0,1,160,168h0v-.11a32,32,0,0,1,60.32-14.78l1.81,4.13A32,32,0,0,1,203,198.07Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M233,147.24,191.43,52.6a6,6,0,0,0-1.25-1.83,30,30,0,0,0-42.42,0A6,6,0,0,0,146,55V82H110V55a6,6,0,0,0-1.76-4.25,30,30,0,0,0-42.42,0,6,6,0,0,0-1.25,1.83L23,147.24A46,46,0,1,0,110,168V94h36v74a46,46,0,1,0,87-20.76ZM64,202a34,34,0,1,1,34-34A34,34,0,0,1,64,202Zm0-80a45.77,45.77,0,0,0-18.55,3.92L75.06,58.54A18,18,0,0,1,98,57.71V137A45.89,45.89,0,0,0,64,122Zm94-64.28a18,18,0,0,1,22.94.83l29.61,67.37A45.9,45.9,0,0,0,158,137ZM192,202a34,34,0,1,1,34-34A34,34,0,0,1,192,202Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M237.2,151.87v0a47.1,47.1,0,0,0-2.35-5.45L193.26,51.8a7.82,7.82,0,0,0-1.66-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,7.82,7.82,0,0,0-1.66,2.44L21.15,146.4a47.1,47.1,0,0,0-2.35,5.45v0A48,48,0,1,0,112,168V96h32v72a48,48,0,1,0,93.2-16.13ZM76.71,59.75a16,16,0,0,1,19.29-1v73.51a47.9,47.9,0,0,0-46.79-9.92ZM64,200a32,32,0,1,1,32-32A32,32,0,0,1,64,200ZM160,58.74a16,16,0,0,1,19.29,1l27.5,62.58A47.9,47.9,0,0,0,160,132.25ZM192,200a32,32,0,1,1,32-32A32,32,0,0,1,192,200Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M231.22,148.09,189.6,53.41a3.94,3.94,0,0,0-.83-1.22,28,28,0,0,0-39.6,0A4,4,0,0,0,148,55V84H108V55a4,4,0,0,0-1.17-2.83,28,28,0,0,0-39.6,0,3.94,3.94,0,0,0-.83,1.22L24.78,148.09A44,44,0,1,0,108,168V92h40v76a44,44,0,1,0,83.22-19.91ZM64,204a36,36,0,1,1,36-36A36,36,0,0,1,64,204Zm0-80a43.78,43.78,0,0,0-22.66,6.3L73.4,57.35a20,20,0,0,1,26.6-.59v86A44,44,0,0,0,64,124Zm92-67.23a20,20,0,0,1,26.6.59l32.06,72.94A43.92,43.92,0,0,0,156,142.74ZM192,204a36,36,0,1,1,36-36A36,36,0,0,1,192,204Z"}))]]);var Wh=Object.defineProperty,Yh=Object.defineProperties,Kh=Object.getOwnPropertyDescriptors,M2=Object.getOwnPropertySymbols,Xh=Object.prototype.hasOwnProperty,Qh=Object.prototype.propertyIsEnumerable,F2=(e,t,n)=>t in e?Wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const B2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>Yh(e,Kh(t)))(((e,t)=>{for(var n in t||(t={}))Xh.call(t,n)&&F2(e,n,t[n]);if(M2)for(var n of M2(t))Qh.call(t,n)&&F2(e,n,t[n]);return e})({ref:t},e),{weights:jh}))));B2.displayName="Binoculars";const tE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M120,128a16,16,0,1,1-16-16A16,16,0,0,1,120,128Zm32-16a16,16,0,1,0,16,16A16,16,0,0,0,152,112Zm84,16A108,108,0,0,1,78.77,224.15L46.34,235A20,20,0,0,1,21,209.66l10.81-32.43A108,108,0,1,1,236,128Zm-24,0A84,84,0,1,0,55.27,170.06a12,12,0,0,1,1,9.81l-9.93,29.79,29.79-9.93a12.1,12.1,0,0,1,3.8-.62,12,12,0,0,1,6,1.62A84,84,0,0,0,212,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128A96,96,0,0,1,79.93,211.11h0L42.54,223.58a8,8,0,0,1-10.12-10.12l12.47-37.39h0A96,96,0,1,1,224,128Z",opacity:"0.2"}),f.createElement("path",{d:"M128,24A104,104,0,0,0,36.18,176.88L24.83,210.93a16,16,0,0,0,20.24,20.24l34.05-11.35A104,104,0,1,0,128,24Zm0,192a87.87,87.87,0,0,1-44.06-11.81,8,8,0,0,0-4-1.08,7.85,7.85,0,0,0-2.53.42L40,216,52.47,178.6a8,8,0,0,0-.66-6.54A88,88,0,1,1,128,216Zm12-88a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm-44,0a12,12,0,1,1-12-12A12,12,0,0,1,96,128Zm88,0a12,12,0,1,1-12-12A12,12,0,0,1,184,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,24A104,104,0,0,0,36.18,176.88L24.83,210.93a16,16,0,0,0,20.24,20.24l34.05-11.35A104,104,0,1,0,128,24ZM84,140a12,12,0,1,1,12-12A12,12,0,0,1,84,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,172,140Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M138,128a10,10,0,1,1-10-10A10,10,0,0,1,138,128ZM84,118a10,10,0,1,0,10,10A10,10,0,0,0,84,118Zm88,0a10,10,0,1,0,10,10A10,10,0,0,0,172,118Zm58,10A102,102,0,0,1,79.31,217.65L44.44,229.27a14,14,0,0,1-17.71-17.71l11.62-34.87A102,102,0,1,1,230,128Zm-12,0A90,90,0,1,0,50.08,173.06a6,6,0,0,1,.5,4.91L38.12,215.35a2,2,0,0,0,2.53,2.53L78,205.42a6.2,6.2,0,0,1,1.9-.31,6.09,6.09,0,0,1,3,.81A90,90,0,0,0,218,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128ZM84,116a12,12,0,1,0,12,12A12,12,0,0,0,84,116Zm88,0a12,12,0,1,0,12,12A12,12,0,0,0,172,116Zm60,12A104,104,0,0,1,79.12,219.82L45.07,231.17a16,16,0,0,1-20.24-20.24l11.35-34.05A104,104,0,1,1,232,128Zm-16,0A88,88,0,1,0,51.81,172.06a8,8,0,0,1,.66,6.54L40,216,77.4,203.53a7.85,7.85,0,0,1,2.53-.42,8,8,0,0,1,4,1.08A88,88,0,0,0,216,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M136,128a8,8,0,1,1-8-8A8,8,0,0,1,136,128Zm-52-8a8,8,0,1,0,8,8A8,8,0,0,0,84,120Zm88,0a8,8,0,1,0,8,8A8,8,0,0,0,172,120Zm56,8A100,100,0,0,1,79.5,215.47l-35.69,11.9a12,12,0,0,1-15.18-15.18l11.9-35.69A100,100,0,1,1,228,128Zm-8,0A92,92,0,1,0,48.35,174.07a4,4,0,0,1,.33,3.27L36.22,214.72a4,4,0,0,0,5.06,5.06l37.38-12.46a3.93,3.93,0,0,1,1.27-.21,4.05,4.05,0,0,1,2,.54A92,92,0,0,0,220,128Z"}))]]);var nE=Object.defineProperty,rE=Object.defineProperties,oE=Object.getOwnPropertyDescriptors,P2=Object.getOwnPropertySymbols,aE=Object.prototype.hasOwnProperty,sE=Object.prototype.propertyIsEnumerable,U2=(e,t,n)=>t in e?nE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const q2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>rE(e,oE(t)))(((e,t)=>{for(var n in t||(t={}))aE.call(t,n)&&U2(e,n,t[n]);if(P2)for(var n of P2(t))sE.call(t,n)&&U2(e,n,t[n]);return e})({ref:t},e),{weights:tE}))));q2.displayName="ChatCircleDots";const uE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z",opacity:"0.2"}),f.createElement("path",{d:"M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z"}))]]);var cE=Object.defineProperty,dE=Object.defineProperties,pE=Object.getOwnPropertyDescriptors,H2=Object.getOwnPropertySymbols,fE=Object.prototype.hasOwnProperty,gE=Object.prototype.propertyIsEnumerable,V2=(e,t,n)=>t in e?cE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const z2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>dE(e,pE(t)))(((e,t)=>{for(var n in t||(t={}))fE.call(t,n)&&V2(e,n,t[n]);if(H2)for(var n of H2(t))gE.call(t,n)&&V2(e,n,t[n]);return e})({ref:t},e),{weights:uE}))));z2.displayName="Check";const EE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236,128a108,108,0,0,1-216,0c0-42.52,24.73-81.34,63-98.9A12,12,0,1,1,93,50.91C63.24,64.57,44,94.83,44,128a84,84,0,0,0,168,0c0-33.17-19.24-63.43-49-77.09A12,12,0,1,1,173,29.1C211.27,46.66,236,85.48,236,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),f.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,176A72,72,0,0,1,92,65.64a8,8,0,0,1,8,13.85,56,56,0,1,0,56,0,8,8,0,0,1,8-13.85A72,72,0,0,1,128,200Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M230,128a102,102,0,0,1-204,0c0-40.18,23.35-76.86,59.5-93.45a6,6,0,0,1,5,10.9C58.61,60.09,38,92.49,38,128a90,90,0,0,0,180,0c0-35.51-20.61-67.91-52.5-82.55a6,6,0,0,1,5-10.9C206.65,51.14,230,87.82,230,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a100,100,0,0,1-200,0c0-39.4,22.9-75.37,58.33-91.63a4,4,0,1,1,3.34,7.27C57.07,58.6,36,91.71,36,128a92,92,0,0,0,184,0c0-36.29-21.07-69.4-53.67-84.36a4,4,0,1,1,3.34-7.27C205.1,52.63,228,88.6,228,128Z"}))]]);var AE=Object.defineProperty,bE=Object.defineProperties,_E=Object.getOwnPropertyDescriptors,G2=Object.getOwnPropertySymbols,vE=Object.prototype.hasOwnProperty,DE=Object.prototype.propertyIsEnumerable,$2=(e,t,n)=>t in e?AE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const nu=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>bE(e,_E(t)))(((e,t)=>{for(var n in t||(t={}))vE.call(t,n)&&$2(e,n,t[n]);if(G2)for(var n of G2(t))DE.call(t,n)&&$2(e,n,t[n]);return e})({ref:t},e),{weights:EE}))));nu.displayName="CircleNotch";const CE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,28H88A12,12,0,0,0,76,40V76H40A12,12,0,0,0,28,88V216a12,12,0,0,0,12,12H168a12,12,0,0,0,12-12V180h36a12,12,0,0,0,12-12V40A12,12,0,0,0,216,28ZM156,204H52V100H156Zm48-48H180V88a12,12,0,0,0-12-12H100V52H204Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,40V168H168V88H88V40Z",opacity:"0.2"}),f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32Zm-8,128H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,34H88a6,6,0,0,0-6,6V82H40a6,6,0,0,0-6,6V216a6,6,0,0,0,6,6H168a6,6,0,0,0,6-6V174h42a6,6,0,0,0,6-6V40A6,6,0,0,0,216,34ZM162,210H46V94H162Zm48-48H174V88a6,6,0,0,0-6-6H94V46H210Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,36H88a4,4,0,0,0-4,4V84H40a4,4,0,0,0-4,4V216a4,4,0,0,0,4,4H168a4,4,0,0,0,4-4V172h44a4,4,0,0,0,4-4V40A4,4,0,0,0,216,36ZM164,212H44V92H164Zm48-48H172V88a4,4,0,0,0-4-4H92V44H212Z"}))]]);var NE=Object.defineProperty,SE=Object.defineProperties,wE=Object.getOwnPropertyDescriptors,Z2=Object.getOwnPropertySymbols,xE=Object.prototype.hasOwnProperty,RE=Object.prototype.propertyIsEnumerable,j2=(e,t,n)=>t in e?NE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const W2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>SE(e,wE(t)))(((e,t)=>{for(var n in t||(t={}))xE.call(t,n)&&j2(e,n,t[n]);if(Z2)for(var n of Z2(t))RE.call(t,n)&&j2(e,n,t[n]);return e})({ref:t},e),{weights:CE}))));W2.displayName="Copy";const kE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,40a8,8,0,1,1,8-8A8,8,0,0,1,128,136Zm0-56A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-40a8,8,0,1,1-8,8A8,8,0,0,1,128,40Zm0,136a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,40a8,8,0,1,1,8-8A8,8,0,0,1,128,216Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M152,128a24,24,0,1,1-24-24A24,24,0,0,1,152,128ZM128,72a24,24,0,1,0-24-24A24,24,0,0,0,128,72Zm0,112a24,24,0,1,0,24,24A24,24,0,0,0,128,184Z",opacity:"0.2"}),f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,144Zm0-64A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-48a16,16,0,1,1-16,16A16,16,0,0,1,128,32Zm0,144a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,224Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M156,128a28,28,0,1,1-28-28A28,28,0,0,1,156,128ZM128,76a28,28,0,1,0-28-28A28,28,0,0,0,128,76Zm0,104a28,28,0,1,0,28,28A28,28,0,0,0,128,180Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,98a30,30,0,1,0,30,30A30,30,0,0,0,128,98Zm0,48a18,18,0,1,1,18-18A18,18,0,0,1,128,146Zm0-68A30,30,0,1,0,98,48,30,30,0,0,0,128,78Zm0-48a18,18,0,1,1-18,18A18,18,0,0,1,128,30Zm0,148a30,30,0,1,0,30,30A30,30,0,0,0,128,178Zm0,48a18,18,0,1,1,18-18A18,18,0,0,1,128,226Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,144Zm0-64A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-48a16,16,0,1,1-16,16A16,16,0,0,1,128,32Zm0,144a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,224Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,100a28,28,0,1,0,28,28A28,28,0,0,0,128,100Zm0,48a20,20,0,1,1,20-20A20,20,0,0,1,128,148Zm0-72a28,28,0,1,0-28-28A28,28,0,0,0,128,76Zm0-48a20,20,0,1,1-20,20A20,20,0,0,1,128,28Zm0,152a28,28,0,1,0,28,28A28,28,0,0,0,128,180Zm0,48a20,20,0,1,1,20-20A20,20,0,0,1,128,228Z"}))]]);var IE=Object.defineProperty,ME=Object.defineProperties,FE=Object.getOwnPropertyDescriptors,Y2=Object.getOwnPropertySymbols,BE=Object.prototype.hasOwnProperty,PE=Object.prototype.propertyIsEnumerable,K2=(e,t,n)=>t in e?IE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const X2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>ME(e,FE(t)))(((e,t)=>{for(var n in t||(t={}))BE.call(t,n)&&K2(e,n,t[n]);if(Y2)for(var n of Y2(t))PE.call(t,n)&&K2(e,n,t[n]);return e})({ref:t},e),{weights:kE}))));X2.displayName="DotsThreeOutlineVertical";const HE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,44H32A12,12,0,0,0,20,56V192a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V56A12,12,0,0,0,224,44Zm-96,83.72L62.85,68h130.3ZM92.79,128,44,172.72V83.28Zm17.76,16.28,9.34,8.57a12,12,0,0,0,16.22,0l9.34-8.57L193.15,188H62.85ZM163.21,128,212,83.28v89.44Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,56l-96,88L32,56Z",opacity:"0.2"}),f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48Zm-96,85.15L52.57,64H203.43ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,50H32a6,6,0,0,0-6,6V192a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A6,6,0,0,0,224,50Zm-96,85.86L47.42,62H208.58ZM101.67,128,38,186.36V69.64Zm8.88,8.14L124,148.42a6,6,0,0,0,8.1,0l13.4-12.28L208.58,194H47.43ZM154.33,128,218,69.64V186.36Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48Zm-96,85.15L52.57,64H203.43ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,52H32a4,4,0,0,0-4,4V192a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A4,4,0,0,0,224,52Zm-96,86.57L42.28,60H213.72ZM104.63,128,36,190.91V65.09Zm5.92,5.43L125.3,147a4,4,0,0,0,5.4,0l14.75-13.52L213.72,196H42.28ZM151.37,128,220,65.09V190.91Z"}))]]);var VE=Object.defineProperty,zE=Object.defineProperties,GE=Object.getOwnPropertyDescriptors,Q2=Object.getOwnPropertySymbols,$E=Object.prototype.hasOwnProperty,ZE=Object.prototype.propertyIsEnumerable,J2=(e,t,n)=>t in e?VE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const ep=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>zE(e,GE(t)))(((e,t)=>{for(var n in t||(t={}))$E.call(t,n)&&J2(e,n,t[n]);if(Q2)for(var n of Q2(t))ZE.call(t,n)&&J2(e,n,t[n]);return e})({ref:t},e),{weights:HE}))));ep.displayName="Envelope";const YE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.73,51.85A108.07,108.07,0,0,0,20,128v56a28,28,0,0,0,28,28H64a28,28,0,0,0,28-28V144a28,28,0,0,0-28-28H44.84A84.05,84.05,0,0,1,128,44h.64a83.7,83.7,0,0,1,82.52,72H192a28,28,0,0,0-28,28v40a28,28,0,0,0,28,28h19.6A20,20,0,0,1,192,228H136a12,12,0,0,0,0,24h56a44.05,44.05,0,0,0,44-44V128A107.34,107.34,0,0,0,204.73,51.85ZM64,140a4,4,0,0,1,4,4v40a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V140Zm124,44V144a4,4,0,0,1,4-4h20v48H192A4,4,0,0,1,188,184Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M80,144v40a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V128H64A16,16,0,0,1,80,144Zm112-16a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h32V128Z",opacity:"0.2"}),f.createElement("path",{d:"M201.89,54.66A104.08,104.08,0,0,0,24,128v56a24,24,0,0,0,24,24H64a24,24,0,0,0,24-24V144a24,24,0,0,0-24-24H40.36A88.12,88.12,0,0,1,190.54,65.93,87.39,87.39,0,0,1,215.65,120H192a24,24,0,0,0-24,24v40a24,24,0,0,0,24,24h24a24,24,0,0,1-24,24H136a8,8,0,0,0,0,16h56a40,40,0,0,0,40-40V128A103.41,103.41,0,0,0,201.89,54.66ZM64,136a8,8,0,0,1,8,8v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V136Zm128,56a8,8,0,0,1-8-8V144a8,8,0,0,1,8-8h24v56Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,128v80a40,40,0,0,1-40,40H136a8,8,0,0,1,0-16h56a24,24,0,0,0,24-24H192a24,24,0,0,1-24-24V144a24,24,0,0,1,24-24h23.65A88,88,0,0,0,66,65.54,87.29,87.29,0,0,0,40.36,120H64a24,24,0,0,1,24,24v40a24,24,0,0,1-24,24H48a24,24,0,0,1-24-24V128A104.11,104.11,0,0,1,201.89,54.66,103.41,103.41,0,0,1,232,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M200.47,56.07A101.37,101.37,0,0,0,128.77,26H128A102,102,0,0,0,26,128v56a22,22,0,0,0,22,22H64a22,22,0,0,0,22-22V144a22,22,0,0,0-22-22H38.2A90,90,0,0,1,128,38h.68a89.71,89.71,0,0,1,89.13,84H192a22,22,0,0,0-22,22v40a22,22,0,0,0,22,22h26v2a26,26,0,0,1-26,26H136a6,6,0,0,0,0,12h56a38,38,0,0,0,38-38V128A101.44,101.44,0,0,0,200.47,56.07ZM64,134a10,10,0,0,1,10,10v40a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V134Zm118,50V144a10,10,0,0,1,10-10h26v60H192A10,10,0,0,1,182,184Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M201.89,54.66A103.43,103.43,0,0,0,128.79,24H128A104,104,0,0,0,24,128v56a24,24,0,0,0,24,24H64a24,24,0,0,0,24-24V144a24,24,0,0,0-24-24H40.36A88.12,88.12,0,0,1,190.54,65.93,87.39,87.39,0,0,1,215.65,120H192a24,24,0,0,0-24,24v40a24,24,0,0,0,24,24h24a24,24,0,0,1-24,24H136a8,8,0,0,0,0,16h56a40,40,0,0,0,40-40V128A103.41,103.41,0,0,0,201.89,54.66ZM64,136a8,8,0,0,1,8,8v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V136Zm128,56a8,8,0,0,1-8-8V144a8,8,0,0,1,8-8h24v56Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M199.05,57.48A100.07,100.07,0,0,0,28,128v56a20,20,0,0,0,20,20H64a20,20,0,0,0,20-20V144a20,20,0,0,0-20-20H36.08A92,92,0,0,1,128,36h.7a91.75,91.75,0,0,1,91.22,88H192a20,20,0,0,0-20,20v40a20,20,0,0,0,20,20h28v4a28,28,0,0,1-28,28H136a4,4,0,0,0,0,8h56a36,36,0,0,0,36-36V128A99.44,99.44,0,0,0,199.05,57.48ZM64,132a12,12,0,0,1,12,12v40a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V132Zm116,52V144a12,12,0,0,1,12-12h28v64H192A12,12,0,0,1,180,184Z"}))]]);var KE=Object.defineProperty,XE=Object.defineProperties,QE=Object.getOwnPropertyDescriptors,tp=Object.getOwnPropertySymbols,JE=Object.prototype.hasOwnProperty,eA=Object.prototype.propertyIsEnumerable,np=(e,t,n)=>t in e?KE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const rp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>XE(e,QE(t)))(((e,t)=>{for(var n in t||(t={}))JE.call(t,n)&&np(e,n,t[n]);if(tp)for(var n of tp(t))eA.call(t,n)&&np(e,n,t[n]);return e})({ref:t},e),{weights:YE}))));rp.displayName="Headset";const rA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M252,152a12,12,0,0,1-12,12H228v12a12,12,0,0,1-24,0V164H192a12,12,0,0,1,0-24h12V128a12,12,0,0,1,24,0v12h12A12,12,0,0,1,252,152ZM56,76H68V88a12,12,0,0,0,24,0V76h12a12,12,0,1,0,0-24H92V40a12,12,0,0,0-24,0V52H56a12,12,0,0,0,0,24ZM184,188h-4v-4a12,12,0,0,0-24,0v4h-4a12,12,0,0,0,0,24h4v4a12,12,0,0,0,24,0v-4h4a12,12,0,0,0,0-24ZM222.14,82.83,82.82,222.14a20,20,0,0,1-28.28,0L33.85,201.46a20,20,0,0,1,0-28.29L173.17,33.86a20,20,0,0,1,28.28,0l20.69,20.68A20,20,0,0,1,222.14,82.83ZM159,112,144,97,53.65,187.31l15,15Zm43.31-43.31-15-15L161,80l15,15Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M176,112,74.34,213.66a8,8,0,0,1-11.31,0L42.34,193a8,8,0,0,1,0-11.31L144,80Z",opacity:"0.2"}),f.createElement("path",{d:"M248,152a8,8,0,0,1-8,8H224v16a8,8,0,0,1-16,0V160H192a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,248,152ZM56,72H72V88a8,8,0,0,0,16,0V72h16a8,8,0,0,0,0-16H88V40a8,8,0,0,0-16,0V56H56a8,8,0,0,0,0,16ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80Zm-54.63,32L144,91.31l-96,96L68.68,208ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M248,152a8,8,0,0,1-8,8H224v16a8,8,0,0,1-16,0V160H192a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,248,152ZM56,72H72V88a8,8,0,0,0,16,0V72h16a8,8,0,0,0,0-16H88V40a8,8,0,0,0-16,0V56H56a8,8,0,0,0,0,16ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M246,152a6,6,0,0,1-6,6H222v18a6,6,0,0,1-12,0V158H192a6,6,0,0,1,0-12h18V128a6,6,0,0,1,12,0v18h18A6,6,0,0,1,246,152ZM56,70H74V88a6,6,0,0,0,12,0V70h18a6,6,0,0,0,0-12H86V40a6,6,0,0,0-12,0V58H56a6,6,0,0,0,0,12ZM184,194H174V184a6,6,0,0,0-12,0v10H152a6,6,0,0,0,0,12h10v10a6,6,0,0,0,12,0V206h10a6,6,0,0,0,0-12ZM217.9,78.59,78.58,217.9a14,14,0,0,1-19.8,0L38.09,197.21a14,14,0,0,1,0-19.8L177.41,38.1a14,14,0,0,1,19.8,0L217.9,58.79A14,14,0,0,1,217.9,78.59ZM167.51,112,144,88.49,46.58,185.9a2,2,0,0,0,0,2.83l20.69,20.68a2,2,0,0,0,2.82,0h0Zm41.9-44.73L188.73,46.59a2,2,0,0,0-2.83,0L152.48,80,176,103.52,209.41,70.1A2,2,0,0,0,209.41,67.27Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M48,64a8,8,0,0,1,8-8H72V40a8,8,0,0,1,16,0V56h16a8,8,0,0,1,0,16H88V88a8,8,0,0,1-16,0V72H56A8,8,0,0,1,48,64ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16Zm56-48H224V128a8,8,0,0,0-16,0v16H192a8,8,0,0,0,0,16h16v16a8,8,0,0,0,16,0V160h16a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80Zm-54.63,32L144,91.31l-96,96L68.68,208ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M244,152a4,4,0,0,1-4,4H220v20a4,4,0,0,1-8,0V156H192a4,4,0,0,1,0-8h20V128a4,4,0,0,1,8,0v20h20A4,4,0,0,1,244,152ZM56,68H76V88a4,4,0,0,0,8,0V68h20a4,4,0,0,0,0-8H84V40a4,4,0,0,0-8,0V60H56a4,4,0,0,0,0,8ZM184,196H172V184a4,4,0,0,0-8,0v12H152a4,4,0,0,0,0,8h12v12a4,4,0,0,0,8,0V204h12a4,4,0,0,0,0-8ZM216.48,77.17,77.17,216.49a12,12,0,0,1-17,0L39.51,195.8a12,12,0,0,1,0-17L178.83,39.51a12,12,0,0,1,17,0L216.48,60.2A12,12,0,0,1,216.48,77.17ZM170.34,112,144,85.66,45.17,184.49a4,4,0,0,0,0,5.65l20.68,20.69a4,4,0,0,0,5.66,0Zm40.49-46.14L190.14,45.17a4,4,0,0,0-5.66,0L149.65,80,176,106.34l34.83-34.83A4,4,0,0,0,210.83,65.86Z"}))]]);var oA=Object.defineProperty,aA=Object.defineProperties,sA=Object.getOwnPropertyDescriptors,op=Object.getOwnPropertySymbols,iA=Object.prototype.hasOwnProperty,lA=Object.prototype.propertyIsEnumerable,ap=(e,t,n)=>t in e?oA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const sp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>aA(e,sA(t)))(((e,t)=>{for(var n in t||(t={}))iA.call(t,n)&&ap(e,n,t[n]);if(op)for(var n of op(t))lA.call(t,n)&&ap(e,n,t[n]);return e})({ref:t},e),{weights:rA}))));sp.displayName="MagicWand";const dA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),f.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]);var pA=Object.defineProperty,fA=Object.defineProperties,gA=Object.getOwnPropertyDescriptors,ip=Object.getOwnPropertySymbols,mA=Object.prototype.hasOwnProperty,hA=Object.prototype.propertyIsEnumerable,lp=(e,t,n)=>t in e?pA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const up=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>fA(e,gA(t)))(((e,t)=>{for(var n in t||(t={}))mA.call(t,n)&&lp(e,n,t[n]);if(ip)for(var n of ip(t))hA.call(t,n)&&lp(e,n,t[n]);return e})({ref:t},e),{weights:dA}))));up.displayName="MagnifyingGlass";const bA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M225.86,110.48,57.8,14.58A20,20,0,0,0,29.16,38.67l30.61,89.21L29.16,217.33A20,20,0,0,0,48,244a20.1,20.1,0,0,0,9.81-2.58l.09-.06,168-96.07a20,20,0,0,0,0-34.81ZM55.24,215.23,81,140h55a12,12,0,0,0,0-24H81.07L55.25,40.76l152.69,87.13Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M219.91,134.86,51.93,231a8,8,0,0,1-11.44-9.67l31-90.71a7.89,7.89,0,0,0,0-5.38l-31-90.47a8,8,0,0,1,11.44-9.67l168,95.85A8,8,0,0,1,219.91,134.86Z",opacity:"0.2"}),f.createElement("path",{d:"M223.87,114l-168-95.89A16,16,0,0,0,32.93,37.32l31,90.47a.42.42,0,0,0,0,.1.3.3,0,0,0,0,.1l-31,90.67A16,16,0,0,0,48,240a16.14,16.14,0,0,0,7.92-2.1l167.91-96.05a16,16,0,0,0,.05-27.89ZM48,224l0-.09L78.14,136H136a8,8,0,0,0,0-16H78.22L48.06,32.12,48,32l168,95.83Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,127.89a16,16,0,0,1-8.18,14L55.91,237.9A16.14,16.14,0,0,1,48,240a16,16,0,0,1-15.05-21.34L60.3,138.71A4,4,0,0,1,64.09,136H136a8,8,0,0,0,8-8.53,8.19,8.19,0,0,0-8.26-7.47H64.16a4,4,0,0,1-3.79-2.7l-27.44-80A16,16,0,0,1,55.85,18.07l168,95.89A16,16,0,0,1,232,127.89Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222.88,115.69l-168-95.88a14,14,0,0,0-20,16.85l31,90.48,0,.07a2.11,2.11,0,0,1,0,1.42l-31,90.64A14,14,0,0,0,48,238a14.11,14.11,0,0,0,6.92-1.83L222.84,140.1a14,14,0,0,0,0-24.41Zm-5.95,14L49,225.73a1.87,1.87,0,0,1-2.27-.22,1.92,1.92,0,0,1-.56-2.28L76.7,134H136a6,6,0,0,0,0-12H76.78L46.14,32.7A2,2,0,0,1,49,30.25l168,95.89a1.93,1.93,0,0,1,1,1.74A2,2,0,0,1,216.93,129.66Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M223.87,114l-168-95.89A16,16,0,0,0,32.93,37.32l31,90.47a.42.42,0,0,0,0,.1.3.3,0,0,0,0,.1l-31,90.67A16,16,0,0,0,48,240a16.14,16.14,0,0,0,7.92-2.1l167.91-96.05a16,16,0,0,0,.05-27.89ZM48,224l0-.09L78.14,136H136a8,8,0,0,0,0-16H78.22L48.06,32.12,48,32l168,95.83Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M221.89,117.43l-168-95.88A12,12,0,0,0,36.7,36l31.05,90.48v.05a4.09,4.09,0,0,1,0,2.74L36.72,220A12,12,0,0,0,48,236a12.13,12.13,0,0,0,5.93-1.57l167.94-96.08a12,12,0,0,0,0-20.92Zm-4,14L50,227.47a4,4,0,0,1-5.7-4.88l31-90.59H136a4,4,0,0,0,0-8H75.35a.65.65,0,0,1,0-.13L44.25,33.37A4,4,0,0,1,50,28.52l168,95.87a4,4,0,0,1,0,7Z"}))]]);var _A=Object.defineProperty,vA=Object.defineProperties,DA=Object.getOwnPropertyDescriptors,cp=Object.getOwnPropertySymbols,yA=Object.prototype.hasOwnProperty,TA=Object.prototype.propertyIsEnumerable,dp=(e,t,n)=>t in e?_A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const pp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>vA(e,DA(t)))(((e,t)=>{for(var n in t||(t={}))yA.call(t,n)&&dp(e,n,t[n]);if(cp)for(var n of cp(t))TA.call(t,n)&&dp(e,n,t[n]);return e})({ref:t},e),{weights:bA}))));pp.displayName="PaperPlaneRight";const SA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),f.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z"}))]]);var wA=Object.defineProperty,xA=Object.defineProperties,RA=Object.getOwnPropertyDescriptors,fp=Object.getOwnPropertySymbols,LA=Object.prototype.hasOwnProperty,OA=Object.prototype.propertyIsEnumerable,gp=(e,t,n)=>t in e?wA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const mp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>xA(e,RA(t)))(((e,t)=>{for(var n in t||(t={}))LA.call(t,n)&&gp(e,n,t[n]);if(fp)for(var n of fp(t))OA.call(t,n)&&gp(e,n,t[n]);return e})({ref:t},e),{weights:SA}))));mp.displayName="Plus";const MA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]]);var FA=Object.defineProperty,BA=Object.defineProperties,PA=Object.getOwnPropertyDescriptors,hp=Object.getOwnPropertySymbols,UA=Object.prototype.hasOwnProperty,qA=Object.prototype.propertyIsEnumerable,Ep=(e,t,n)=>t in e?FA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const ru=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>BA(e,PA(t)))(((e,t)=>{for(var n in t||(t={}))UA.call(t,n)&&Ep(e,n,t[n]);if(hp)for(var n of hp(t))qA.call(t,n)&&Ep(e,n,t[n]);return e})({ref:t},e),{weights:MA}))));ru.displayName="Warning";const zA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),f.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]);var GA=Object.defineProperty,$A=Object.defineProperties,ZA=Object.getOwnPropertyDescriptors,Ap=Object.getOwnPropertySymbols,jA=Object.prototype.hasOwnProperty,WA=Object.prototype.propertyIsEnumerable,bp=(e,t,n)=>t in e?GA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const _p=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>$A(e,ZA(t)))(((e,t)=>{for(var n in t||(t={}))jA.call(t,n)&&bp(e,n,t[n]);if(Ap)for(var n of Ap(t))WA.call(t,n)&&bp(e,n,t[n]);return e})({ref:t},e),{weights:zA}))));_p.displayName="X";const ou={plus:mp,chatBubble:q2,support:rp,search2:B2,search:up,magic:sp};function XA({settings:e,isOpen:t,toggleOpen:n}){if(t)return null;const r=ou.hasOwnProperty(null==e?void 0:e.chatIcon)?ou[e.chatIcon]:ou.plus;return w.jsx("button",{onClick:n,className:`flex items-center justify-center p-4 rounded-full bg-[${e.buttonColor}] text-white text-2xl`,"aria-label":"Toggle Menu",children:w.jsx(r,{className:"text-white"})})}const ko="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.898438'%20y='0.5'%20width='48'%20height='48'%20rx='24'%20fill='%23222628'%20fill-opacity='0.8'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.0173%2014.2937C10.4387%2014.2937%209.14844%2015.584%209.14844%2017.1626V31.8372C9.14844%2033.4156%2010.4365%2034.7061%2012.0173%2034.7061H17.5428C18.4316%2034.7061%2019.2557%2034.3035%2019.8034%2033.6063L19.8041%2033.6054L32.4126%2017.4869H37.4552V31.509H32.4204L29.8951%2027.9721L29.8867%2027.9615C29.4483%2027.4042%2028.602%2027.4042%2028.1635%2027.9615L27.52%2028.7815L27.5178%2028.7843C27.2188%2029.1751%2027.2113%2029.7217%2027.512%2030.1178L29.985%2033.5936L29.9935%2033.6044C30.5415%2034.302%2031.3696%2034.7042%2032.2541%2034.7042H37.7795C39.3643%2034.7042%2040.6484%2033.4175%2040.6484%2031.8353V17.1626C40.6484%2015.5827%2039.3646%2014.2937%2037.7795%2014.2937H32.2541C31.3673%2014.2937%2030.5407%2014.6964%2029.9928%2015.3964L17.3858%2031.511H12.3417V17.4889H17.3757L20.133%2021.2573L20.1386%2021.2645C20.5782%2021.8273%2021.4253%2021.8239%2021.8647%2021.2666L21.8661%2021.2648L22.505%2020.4477L22.5069%2020.4453C22.8064%2020.0538%2022.8139%2019.5046%2022.5076%2019.1075L19.8102%2015.4041L19.804%2015.3963C19.2562%2014.6965%2018.4318%2014.2937%2017.5428%2014.2937H12.0173Z'%20fill='white'/%3e%3cpath%20d='M19.8034%2033.6063L20.0392%2033.7915L20.0394%2033.7912L19.8034%2033.6063ZM19.8041%2033.6054L20.0401%2033.7903L20.0403%2033.7901L19.8041%2033.6054ZM32.4126%2017.4869V17.1871H32.2665L32.1764%2017.3022L32.4126%2017.4869ZM37.4552%2017.4869H37.755V17.1871H37.4552V17.4869ZM37.4552%2031.509V31.8089H37.755V31.509H37.4552ZM32.4204%2031.509L32.1763%2031.6833L32.266%2031.8089H32.4204V31.509ZM29.8951%2027.9721L30.1394%2027.7977L30.1307%2027.7867L29.8951%2027.9721ZM29.8867%2027.9615L29.6511%2028.1469L29.6511%2028.1469L29.8867%2027.9615ZM28.1635%2027.9615L27.9279%2027.7761L27.9277%2027.7764L28.1635%2027.9615ZM27.52%2028.7815L27.2841%2028.5964L27.2819%2028.5993L27.52%2028.7815ZM27.5178%2028.7843L27.7559%2028.9665L27.7559%2028.9665L27.5178%2028.7843ZM27.512%2030.1178L27.7564%2029.9439L27.7508%2029.9365L27.512%2030.1178ZM29.985%2033.5936L29.7407%2033.7674L29.7448%2033.7732L29.7492%2033.7788L29.985%2033.5936ZM29.9935%2033.6044L30.2293%2033.4191L30.2293%2033.4191L29.9935%2033.6044ZM29.9928%2015.3964L29.7567%2015.2116L29.7566%2015.2116L29.9928%2015.3964ZM17.3858%2031.511V31.8108H17.5319L17.6219%2031.6957L17.3858%2031.511ZM12.3417%2031.511H12.0418V31.8108H12.3417V31.511ZM12.3417%2017.4889V17.189H12.0418V17.4889H12.3417ZM17.3757%2017.4889L17.6177%2017.3118L17.5278%2017.189H17.3757V17.4889ZM20.133%2021.2573L19.8909%2021.4345L19.8967%2021.4419L20.133%2021.2573ZM20.1386%2021.2645L19.9023%2021.4491V21.4491L20.1386%2021.2645ZM21.8647%2021.2666L22.1001%2021.4522L22.1005%2021.4517L21.8647%2021.2666ZM21.8661%2021.2648L22.1019%2021.45L22.1023%2021.4495L21.8661%2021.2648ZM22.505%2020.4477L22.7412%2020.6324L22.7431%2020.63L22.505%2020.4477ZM22.5069%2020.4453L22.7449%2020.6276L22.745%2020.6275L22.5069%2020.4453ZM22.5076%2019.1075L22.2651%2019.2841L22.2702%2019.2907L22.5076%2019.1075ZM19.8102%2015.4041L20.0527%2015.2275L20.0463%2015.2193L19.8102%2015.4041ZM19.804%2015.3963L19.5679%2015.5811L19.5679%2015.5811L19.804%2015.3963ZM9.44828%2017.1626C9.44828%2015.7496%2010.6043%2014.5935%2012.0173%2014.5935V13.9939C10.2731%2013.9939%208.8486%2015.4184%208.8486%2017.1626H9.44828ZM9.44828%2031.8372V17.1626H8.8486V31.8372H9.44828ZM12.0173%2034.4063C10.6022%2034.4063%209.44828%2033.2501%209.44828%2031.8372H8.8486C8.8486%2033.581%2010.2707%2035.006%2012.0173%2035.006V34.4063ZM17.5428%2034.4063H12.0173V35.006H17.5428V34.4063ZM19.5676%2033.4211C19.0766%2034.0462%2018.3393%2034.4063%2017.5428%2034.4063V35.006C18.524%2035.006%2019.4349%2034.5608%2020.0392%2033.7915L19.5676%2033.4211ZM19.5681%2033.4205L19.5674%2033.4214L20.0394%2033.7912L20.0401%2033.7903L19.5681%2033.4205ZM32.1764%2017.3022L19.5679%2033.4206L20.0403%2033.7901L32.6488%2017.6717L32.1764%2017.3022ZM37.4552%2017.1871H32.4126V17.7868H37.4552V17.1871ZM37.755%2031.509V17.4869H37.1553V31.509H37.755ZM32.4204%2031.8089H37.4552V31.2092H32.4204V31.8089ZM29.651%2028.1464L32.1763%2031.6833L32.6644%2031.3348L30.1391%2027.7979L29.651%2028.1464ZM29.6511%2028.1469L29.6594%2028.1575L30.1307%2027.7867L30.1224%2027.7761L29.6511%2028.1469ZM28.3992%2028.1469C28.7176%2027.7422%2029.3327%2027.7422%2029.6511%2028.1469L30.1224%2027.7761C29.5639%2027.0662%2028.4864%2027.0662%2027.9279%2027.7761L28.3992%2028.1469ZM27.7558%2028.9666L28.3994%2028.1466L27.9277%2027.7764L27.2841%2028.5964L27.7558%2028.9666ZM27.7559%2028.9665L27.7581%2028.9637L27.2819%2028.5993L27.2797%2028.6021L27.7559%2028.9665ZM27.7508%2029.9365C27.5333%2029.65%2027.5374%2029.2521%2027.7559%2028.9665L27.2797%2028.6021C26.9002%2029.098%2026.8893%2029.7935%2027.2732%2030.2991L27.7508%2029.9365ZM30.2293%2033.4197L27.7563%2029.944L27.2677%2030.2916L29.7407%2033.7674L30.2293%2033.4197ZM30.2293%2033.4191L30.2208%2033.4083L29.7492%2033.7788L29.7577%2033.7896L30.2293%2033.4191ZM32.2541%2034.4044C31.4617%2034.4044%2030.7205%2034.0445%2030.2293%2033.4191L29.7577%2033.7896C30.3625%2034.5595%2031.2775%2035.0041%2032.2541%2035.0041V34.4044ZM37.7795%2034.4044H32.2541V35.0041H37.7795V34.4044ZM40.3486%2031.8353C40.3486%2033.2521%2039.1985%2034.4044%2037.7795%2034.4044V35.0041C39.5301%2035.0041%2040.9483%2033.5829%2040.9483%2031.8353H40.3486ZM40.3486%2017.1626V31.8353H40.9483V17.1626H40.3486ZM37.7795%2014.5935C39.1987%2014.5935%2040.3486%2015.7479%2040.3486%2017.1626H40.9483C40.9483%2015.4174%2039.5305%2013.9939%2037.7795%2013.9939V14.5935ZM32.2541%2014.5935H37.7795V13.9939H32.2541V14.5935ZM30.2289%2015.5812C30.72%2014.9537%2031.4596%2014.5935%2032.2541%2014.5935V13.9939C31.2749%2013.9939%2030.3613%2014.4391%2029.7567%2015.2116L30.2289%2015.5812ZM17.6219%2031.6957L30.2289%2015.5811L29.7566%2015.2116L17.1496%2031.3262L17.6219%2031.6957ZM12.3417%2031.8108H17.3858V31.2111H12.3417V31.8108ZM12.0418%2017.4889V31.511H12.6415V17.4889H12.0418ZM17.3757%2017.189H12.3417V17.7887H17.3757V17.189ZM20.375%2021.0803L17.6177%2017.3118L17.1337%2017.6659L19.891%2021.4344L20.375%2021.0803ZM20.3749%2021.08L20.3693%2021.0728L19.8967%2021.4419L19.9023%2021.4491L20.3749%2021.08ZM21.6292%2021.0809C21.3091%2021.4869%2020.6937%2021.488%2020.3749%2021.08L19.9023%2021.4491C20.4627%2022.1665%2021.5415%2022.1608%2022.1001%2021.4522L21.6292%2021.0809ZM21.6302%2021.0796L21.6288%2021.0814L22.1005%2021.4517L22.1019%2021.45L21.6302%2021.0796ZM22.2688%2020.263L21.6299%2021.0801L22.1023%2021.4495L22.7412%2020.6324L22.2688%2020.263ZM22.2688%2020.263L22.2669%2020.2654L22.7431%2020.63L22.7449%2020.6276L22.2688%2020.263ZM22.2702%2019.2907C22.4916%2019.5777%2022.4877%2019.977%2022.2687%2020.2631L22.745%2020.6275C23.1252%2020.1307%2023.1363%2019.4315%2022.7449%2018.9243L22.2702%2019.2907ZM19.5678%2015.5807L22.2652%2019.284L22.7499%2018.931L20.0525%2015.2276L19.5678%2015.5807ZM19.5679%2015.5811L19.5741%2015.589L20.0463%2015.2193L20.0401%2015.2114L19.5679%2015.5811ZM17.5428%2014.5935C18.3394%2014.5935%2019.0768%2014.9537%2019.5679%2015.5811L20.0401%2015.2114C19.4357%2014.4393%2018.5243%2013.9939%2017.5428%2013.9939V14.5935ZM12.0173%2014.5935H17.5428V13.9939H12.0173V14.5935Z'%20fill='white'/%3e%3c/svg%3e";function JA(e){let t,n,r,o=!1;return function(s){void 0===t?(t=s,n=0,r=-1):t=function(e,t){const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(t,s);const i=t.length;let l=0;for(;n{const m=Object.assign({},r);let A;function b(){A.abort(),document.hidden||N()}m.accept||(m.accept=au),l||document.addEventListener("visibilitychange",b);let C=1e3,h=0;function g(){document.removeEventListener("visibilitychange",b),window.clearTimeout(h),A.abort()}null==n||n.addEventListener("abort",(()=>{g(),p()}));const E=u??window.fetch,v=o??ab;async function N(){var _;A=new AbortController;try{const S=await E(e,Object.assign(Object.assign({},c),{headers:m,signal:A.signal}));await v(S),await async function(e,t){const n=e.getReader();let r;for(;!(r=await n.read()).done;)t(r.value)}(S.body,JA(function(e,t,n){let r={data:"",event:"",id:"",retry:void 0};const o=new TextDecoder;return function(s,i){if(0===s.length)null==n||n(r),r={data:"",event:"",id:"",retry:void 0};else if(i>0){const l=o.decode(s.subarray(0,i)),u=i+(32===s[i+1]?2:1),c=o.decode(s.subarray(u));switch(l){case"data":r.data=r.data?r.data+"\n"+c:c;break;case"event":r.event=c;break;case"id":e(r.id=c);break;case"retry":const p=parseInt(c,10);isNaN(p)||t(r.retry=p)}}}}((R=>{R?m[Dp]=R:delete m[Dp]}),(R=>{C=R}),a))),null==s||s(),g(),p()}catch(S){if(!A.signal.aborted)try{const R=null!==(_=null==i?void 0:i(S))&&void 0!==_?_:C;window.clearTimeout(h),h=window.setTimeout(N,R)}catch(R){g(),d(R)}}}N()}))}function ab(e){const t=e.headers.get("content-type");if(null==t||!t.startsWith(au))throw new Error(`Expected content-type to be ${au}, Actual: ${t}`)}const ds={embedSessionHistory:async function(e,t){const{embedId:n,baseApiUrl:r}=e;return await fetch(`${r}/${n}/${t}`).then((o=>{if(o.ok)return o.json();throw new Error("Invalid response from server")})).then((o=>o.history.map((a=>({...a,id:zn(),sender:"user"===a.role?"user":"system",textResponse:a.content,close:!1}))))).catch((o=>(console.error(o),[])))},resetEmbedChatSession:async function(e,t){const{baseApiUrl:n,embedId:r}=e;return await fetch(`${n}/${r}/${t}`,{method:"DELETE"}).then((o=>o.ok)).catch((()=>!1))},streamChat:async function(e,t,n,r){const{baseApiUrl:o,embedId:a}=t,s={prompt:(null==t?void 0:t.prompt)??null,model:(null==t?void 0:t.model)??null,temperature:(null==t?void 0:t.temperature)??null},i=new AbortController;await ob(`${o}/${a}/stream-chat`,{method:"POST",body:JSON.stringify({message:n,sessionId:e,...s}),signal:i.signal,openWhenHidden:!0,async onopen(l){if(!l.ok)throw l.status>=400?(await l.json().then((u=>{r(u)})).catch((()=>{r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:`An error occurred while streaming response. Code ${l.status}`})})),i.abort(),new Error):(r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:"An error occurred while streaming response. Unknown Error."}),i.abort(),new Error("Unknown Error"))},async onmessage(l){try{const u=JSON.parse(l.data);r(u)}catch{}},onerror(l){throw r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:`An error occurred while streaming response. ${l.message}`}),i.abort(),new Error}})}};function yp({sessionId:e,settings:t={},iconUrl:n=null,closeChat:r,setChatHistory:o}){const[a,s]=Z.useState(!1),i=Z.useRef(),l=Z.useRef();return Z.useEffect((()=>{function c(p){i.current&&!i.current.contains(p.target)&&l.current&&!l.current.contains(p.target)&&s(!1)}return document.addEventListener("mousedown",c),()=>{document.removeEventListener("mousedown",c)}}),[i]),w.jsxs("div",{className:"flex items-center relative rounded-t-2xl bg-black/10",id:"anything-llm-header",children:[w.jsx("div",{className:"flex justify-center items-center w-full h-[76px]",children:w.jsx("img",{style:{maxWidth:48,maxHeight:48},src:n??ko,alt:n?"Brand":"AnythingLLM Logo"})}),w.jsxs("div",{className:"absolute right-0 flex gap-x-1 items-center px-[22px]",children:[t.loaded&&w.jsx("button",{ref:l,type:"button",onClick:()=>s(!a),className:"hover:bg-gray-100 rounded-sm text-slate-800","aria-label":"Options",children:w.jsx(X2,{size:20,weight:"fill"})}),w.jsx("button",{type:"button",onClick:r,className:"hover:bg-gray-100 rounded-sm text-slate-800","aria-label":"Close",children:w.jsx(_p,{size:20,weight:"bold"})})]}),w.jsx(sb,{settings:t,showing:a,resetChat:async()=>{await ds.resetEmbedChatSession(t,e),o([]),s(!1)},sessionId:e,menuRef:i})]})}function sb({settings:e,showing:t,resetChat:n,sessionId:r,menuRef:o}){return t?w.jsxs("div",{ref:o,className:"absolute z-10 bg-white flex flex-col gap-y-1 rounded-xl shadow-lg border border-gray-300 top-[64px] right-[46px]",children:[w.jsxs("button",{onClick:n,className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(L2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Reset Chat"})]}),w.jsx(lb,{email:e.supportEmail}),w.jsx(ib,{sessionId:r})]}):null}function ib({sessionId:e}){if(!e)return null;const[t,n]=Z.useState(!1);return t?w.jsxs("div",{className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(z2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Copied!"})]}):w.jsxs("button",{onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout((()=>n(!1)),1e3)},className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(W2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Session ID"})]})}function lb({email:e=null}){if(!e)return null;const t=`Inquiry from ${window.location.origin}`;return w.jsxs("a",{href:`mailto:${e}?Subject=${encodeURIComponent(t)}`,className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(ep,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Email Support"})]})}function ub(){const e=y2();return e?w.jsx("div",{className:"text-xs text-gray-300 w-full text-center",children:e}):null}var ps={exports:{}};/*! https://mths.be/he v1.2.0 by @mathias | MIT license */!function(e,t){!function(n){var r=t,o=e&&e.exports==r&&e,a="object"==typeof Nt&&Nt;(a.global===a||a.window===a)&&(n=a);var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,u=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,c={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},p=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},m=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,A=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,b=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,C={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},h={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},g={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},E=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],v=String.fromCharCode,_={}.hasOwnProperty,S=function(y,L){return _.call(y,L)},q=function(y,L){if(!y)return L;var H,k={};for(H in L)k[H]=S(y,H)?y[H]:L[H];return k},I=function(y,L){var k="";return y>=55296&&y<=57343||y>1114111?(L&&Y("character reference outside the permissible Unicode range"),"�"):S(g,y)?(L&&Y("disallowed character reference"),g[y]):(L&&function(y,L){for(var k=-1,H=y.length;++k65535&&(k+=v((y-=65536)>>>10&1023|55296),y=56320|1023&y),k+=v(y))},Q=function(y){return"&#x"+y.toString(16).toUpperCase()+";"},ie=function(y){return"&#"+y+";"},Y=function(y){throw Error("Parse error: "+y)},O=function(y,L){(L=q(L,O.options)).strict&&A.test(y)&&Y("forbidden code point");var H=L.encodeEverything,j=L.useNamedReferences,fe=L.allowUnsafeSymbols,ce=L.decimal?ie:Q,se=function(le){return ce(le.charCodeAt(0))};return H?(y=y.replace(i,(function(le){return j&&S(c,le)?"&"+c[le]+";":se(le)})),j&&(y=y.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),j&&(y=y.replace(u,(function(le){return"&"+c[le]+";"})))):j?(fe||(y=y.replace(p,(function(le){return"&"+c[le]+";"}))),y=(y=y.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(u,(function(le){return"&"+c[le]+";"}))):fe||(y=y.replace(p,se)),y.replace(s,(function(le){var mt=le.charCodeAt(0),Ft=le.charCodeAt(1);return ce(1024*(mt-55296)+Ft-56320+65536)})).replace(l,se)};O.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var G=function(y,L){var k=(L=q(L,G.options)).strict;return k&&m.test(y)&&Y("malformed character reference"),y.replace(b,(function(H,j,fe,ce,se,le,mt,Ft,ht){var Ge,Ct,te,Re,ke,Ce;return j?C[ke=j]:fe?(ke=fe,(Ce=ce)&&L.isAttributeValue?(k&&"="==Ce&&Y("`&` did not start a character reference"),H):(k&&Y("named character reference was not terminated by a semicolon"),h[ke]+(Ce||""))):se?(te=se,Ct=le,k&&!Ct&&Y("character reference was not terminated by a semicolon"),Ge=parseInt(te,10),I(Ge,k)):mt?(Re=mt,Ct=Ft,k&&!Ct&&Y("character reference was not terminated by a semicolon"),Ge=parseInt(Re,16),I(Ge,k)):(k&&Y("named character reference was not terminated by a semicolon"),H)}))};G.options={isAttributeValue:!1,strict:!1};var x={version:"1.2.0",encode:O,decode:G,escape:function(y){return y.replace(p,(function(L){return d[L]}))},unescape:G};if(r&&!r.nodeType)if(o)o.exports=x;else for(var T in x)S(x,T)&&(r[T]=x[T]);else n.he=x}(Nt)}(ps,ps.exports);var db=ps.exports,ae={},Tp={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"},su=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,xr={},Cp={};function fs(e,t,n){var r,o,a,s,i,l="";for("string"!=typeof t&&(n=t,t=fs.defaultChars),typeof n>"u"&&(n=!0),i=function(e){var t,n,r=Cp[e];if(r)return r;for(r=Cp[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?r.push(n):r.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&a<=57343){if(a>=55296&&a<=56319&&r+1=56320&&s<=57343)){l+=encodeURIComponent(e[r]+e[r+1]),r++;continue}l+="%EF%BF%BD"}else l+=encodeURIComponent(e[r]);return l}fs.defaultChars=";/?:@&=+$,-_.!~*'()#",fs.componentChars="-_.!~*'()";var fb=fs,Np={};function gs(e,t){var n;return"string"!=typeof t&&(t=gs.defaultChars),n=function(e){var t,n,r=Np[e];if(r)return r;for(r=Np[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),r.push(n);for(t=0;t=55296&&c<=57343?"���":String.fromCharCode(c),o+=6):240==(248&s)&&o+91114111?p+="����":(c-=65536,p+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),o+=9):p+="�";return p}))}gs.defaultChars=";/?:@&=+$,#",gs.componentChars="";var mb=gs;function ms(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var Eb=/^([a-z0-9.+-]+:)/i,Ab=/:[0-9]*$/,bb=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,vb=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Db=["'"].concat(vb),Sp=["%","/","?",";","#"].concat(Db),wp=["/","?","#"],xp=/^[+a-z0-9A-Z_-]{0,63}$/,Tb=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Rp={javascript:!0,"javascript:":!0},Lp={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};ms.prototype.parse=function(e,t){var n,r,o,a,s,i=e;if(i=i.trim(),!t&&1===e.split("#").length){var l=bb.exec(i);if(l)return this.pathname=l[1],l[2]&&(this.search=l[2]),this}var u=Eb.exec(i);if(u&&(o=(u=u[0]).toLowerCase(),this.protocol=u,i=i.substr(u.length)),(t||u||i.match(/^\/\/[^@\/]+@[^@\/]+/))&&((s="//"===i.substr(0,2))&&!(u&&Rp[u])&&(i=i.substr(2),this.slashes=!0)),!Rp[u]&&(s||u&&!Lp[u])){var p,d,c=-1;for(n=0;n127?h+="x":h+=C[g];if(!h.match(xp)){var v=b.slice(0,n),N=b.slice(n+1),_=C.match(Tb);_&&(v.push(_[1]),N.unshift(_[2])),N.length&&(i=N.join(".")+i),this.hostname=v.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var S=i.indexOf("#");-1!==S&&(this.hash=i.substr(S),i=i.slice(0,S));var R=i.indexOf("?");return-1!==R&&(this.search=i.substr(R),i=i.slice(0,R)),i&&(this.pathname=i),Lp[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},ms.prototype.parseHost=function(e){var t=Ab.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var Nb=function(e,t){if(e&&e instanceof ms)return e;var n=new ms;return n.parse(e,t),n};xr.encode=fb,xr.decode=mb,xr.format=function(t){var n="";return n+=t.protocol||"",n+=t.slashes?"//":"",n+=t.auth?t.auth+"@":"",t.hostname&&-1!==t.hostname.indexOf(":")?n+="["+t.hostname+"]":n+=t.hostname||"",n+=t.port?":"+t.port:"",n+=t.pathname||"",n+=t.search||"",n+=t.hash||""},xr.parse=Nb;var iu,Op,lu,Ip,uu,Fp,cu,Bp,Up,Gn={};function kp(){return Op||(Op=1,iu=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),iu}function Mp(){return Ip||(Ip=1,lu=/[\0-\x1F\x7F-\x9F]/),lu}function Pp(){return Bp||(Bp=1,cu=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),cu}function wb(){return Up||(Up=1,Gn.Any=kp(),Gn.Cc=Mp(),Gn.Cf=(Fp||(Fp=1,uu=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/),uu),Gn.P=su,Gn.Z=Pp()),Gn}!function(e){var r=Object.prototype.hasOwnProperty;function o(O,G){return r.call(O,G)}function i(O){return!(O>=55296&&O<=57343||O>=64976&&O<=65007||65535==(65535&O)||65534==(65535&O)||O>=0&&O<=8||11===O||O>=14&&O<=31||O>=127&&O<=159||O>1114111)}function l(O){if(O>65535){var G=55296+((O-=65536)>>10),P=56320+(1023&O);return String.fromCharCode(G,P)}return String.fromCharCode(O)}var u=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,p=new RegExp(u.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),d=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i,m=Tp;var h=/[&<>"]/,g=/[&<>"]/g,E={"&":"&","<":"<",">":">",'"':"""};function v(O){return E[O]}var _=/[.?*+^$[\]\\(){}|-]/g;var I=su;e.lib={},e.lib.mdurl=xr,e.lib.ucmicro=wb(),e.assign=function(O){return Array.prototype.slice.call(arguments,1).forEach((function(P){if(P){if("object"!=typeof P)throw new TypeError(P+"must be object");Object.keys(P).forEach((function(x){O[x]=P[x]}))}})),O},e.isString=function(O){return"[object String]"===function(O){return Object.prototype.toString.call(O)}(O)},e.has=o,e.unescapeMd=function(O){return O.indexOf("\\")<0?O:O.replace(u,"$1")},e.unescapeAll=function(O){return O.indexOf("\\")<0&&O.indexOf("&")<0?O:O.replace(p,(function(G,P,x){return P||function(O,G){var P;return o(m,G)?m[G]:35===G.charCodeAt(0)&&d.test(G)&&i(P="x"===G[1].toLowerCase()?parseInt(G.slice(2),16):parseInt(G.slice(1),10))?l(P):O}(G,x)}))},e.isValidEntityCode=i,e.fromCodePoint=l,e.escapeHtml=function(O){return h.test(O)?O.replace(g,v):O},e.arrayReplaceAt=function(O,G,P){return[].concat(O.slice(0,G),P,O.slice(G+1))},e.isSpace=function(O){switch(O){case 9:case 32:return!0}return!1},e.isWhiteSpace=function(O){if(O>=8192&&O<=8202)return!0;switch(O){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},e.isMdAsciiPunct=function(O){switch(O){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},e.isPunctChar=function(O){return I.test(O)},e.escapeRE=function(O){return O.replace(_,"\\$&")},e.normalizeReference=function(O){return O=O.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(O=O.replace(/ẞ/g,"ß")),O.toLowerCase().toUpperCase()}}(ae);var hs={},qp=ae.unescapeAll,Lb=ae.unescapeAll;hs.parseLinkLabel=function(t,n,r){var o,a,s,i,l=-1,u=t.posMax,c=t.pos;for(t.pos=n+1,o=1;t.pos32)return i;if(41===o){if(0===a)break;a--}s++}return n===s||0!==a||(i.str=qp(t.slice(n,s)),i.pos=s,i.ok=!0),i},hs.parseLinkTitle=function(t,n,r){var o,a,s=0,i=n,l={ok:!1,pos:0,lines:0,str:""};if(i>=r||34!==(a=t.charCodeAt(i))&&39!==a&&40!==a)return l;for(i++,40===a&&(a=41);i"+$n(a.content)+""},zt.code_block=function(e,t,n,r,o){var a=e[t];return""+$n(e[t].content)+"\n"},zt.fence=function(e,t,n,r,o){var u,c,p,d,m,a=e[t],s=a.info?Ib(a.info).trim():"",i="",l="";return s&&(i=(p=s.split(/(\s+)/g))[0],l=p.slice(2).join("")),0===(u=n.highlight&&n.highlight(a.content,i,l)||$n(a.content)).indexOf(""+u+"\n"):"
"+u+"
\n"},zt.image=function(e,t,n,r,o){var a=e[t];return a.attrs[a.attrIndex("alt")][1]=o.renderInlineAsText(a.children,n,r),o.renderToken(e,t,n)},zt.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},zt.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},zt.text=function(e,t){return $n(e[t].content)},zt.html_block=function(e,t){return e[t].content},zt.html_inline=function(e,t){return e[t].content},Rr.prototype.renderAttrs=function(t){var n,r,o;if(!t.attrs)return"";for(o="",n=0,r=t.attrs.length;n\n":">")},Rr.prototype.renderInline=function(e,t,n){for(var r,o="",a=this.rules,s=0,i=e.length;s\s]/i.test(e)}function zb(e){return/^<\/a\s*>/i.test(e)}var Hp=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,$b=/\((c|tm|r)\)/i,Zb=/\((c|tm|r)\)/gi,jb={c:"©",r:"®",tm:"™"};function Wb(e,t){return jb[t.toLowerCase()]}function Yb(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"===(n=e[t]).type&&!r&&(n.content=n.content.replace(Zb,Wb)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function Kb(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"===(n=e[t]).type&&!r&&Hp.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}var Vp=ae.isWhiteSpace,zp=ae.isPunctChar,Gp=ae.isMdAsciiPunct,Qb=/['"]/,$p=/['"]/g;function Es(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function Jb(e,t){var n,r,o,a,s,i,l,u,c,p,d,m,A,b,C,h,g,E,v,N,_;for(v=[],n=0;n=0&&!(v[g].level<=l);g--);if(v.length=g+1,"text"===r.type){s=0,i=(o=r.content).length;e:for(;s=0)c=o.charCodeAt(a.index-1);else for(g=n-1;g>=0&&"softbreak"!==e[g].type&&"hardbreak"!==e[g].type;g--)if(e[g].content){c=e[g].content.charCodeAt(e[g].content.length-1);break}if(p=32,s=48&&c<=57&&(h=C=!1),C&&h&&(C=d,h=m),C||h){if(h)for(g=v.length-1;g>=0&&(u=v[g],!(v[g].level=0&&(r=this.attrs[n][1]),r},Lr.prototype.attrJoin=function(t,n){var r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};var pu=Lr,n_=pu;function jp(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}jp.prototype.Token=n_;var r_=jp,o_=du,fu=[["normalize",function(t){var n;n=(n=t.src.replace(Fb,"\n")).replace(Bb,"�"),t.src=n}],["block",function(t){var n;t.inlineMode?((n=new t.Token("inline","",0)).content=t.src,n.map=[0,1],n.children=[],t.tokens.push(n)):t.md.block.parse(t.src,t.md,t.env,t.tokens)}],["inline",function(t){var r,o,a,n=t.tokens;for(o=0,a=n.length;o=0;n--)if("link_close"!==(i=a[n]).type){if("html_inline"===i.type&&(Vb(i.content)&&A>0&&A--,zb(i.content)&&A++),!(A>0)&&"text"===i.type&&t.md.linkify.test(i.content)){for(c=i.content,E=t.md.linkify.match(c),l=[],m=i.level,d=0,E.length>0&&0===E[0].index&&n>0&&"text_special"===a[n-1].type&&(E=E.slice(1)),u=0;ud&&((s=new t.Token("text","",0)).content=c.slice(d,p),s.level=m,l.push(s)),(s=new t.Token("link_open","a",1)).attrs=[["href",C]],s.level=m++,s.markup="linkify",s.info="auto",l.push(s),(s=new t.Token("text","",0)).content=h,s.level=m,l.push(s),(s=new t.Token("link_close","a",-1)).level=--m,s.markup="linkify",s.info="auto",l.push(s),d=E[u].lastIndex);d=0;n--)"inline"===t.tokens[n].type&&($b.test(t.tokens[n].content)&&Yb(t.tokens[n].children),Hp.test(t.tokens[n].content)&&Kb(t.tokens[n].children))}],["smartquotes",function(t){var n;if(t.md.options.typographer)for(n=t.tokens.length-1;n>=0;n--)"inline"!==t.tokens[n].type||!Qb.test(t.tokens[n].content)||Jb(t.tokens[n].children,t)}],["text_join",function(t){var n,r,o,a,s,i,l=t.tokens;for(n=0,r=l.length;n=a||((n=e.src.charCodeAt(o++))<48||n>57))return-1;for(;;){if(o>=a)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-r>=10)return-1}return o`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Jp="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",w_=new RegExp("^(?:"+Qp+"|"+Jp+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),x_=new RegExp("^(?:"+Qp+"|"+Jp+")");bs.HTML_TAG_RE=w_,bs.HTML_OPEN_CLOSE_TAG_RE=x_;var R_=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],L_=bs.HTML_OPEN_CLOSE_TAG_RE,Or=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(L_.source+"\\s*$"),/^$/,!1]],ef=ae.isSpace,tf=pu,_s=ae.isSpace;function Gt(e,t,n,r){var o,a,s,i,l,u,c,p;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",p=!1,s=i=u=c=0,l=(a=this.src).length;i0&&this.level++,this.tokens.push(r),r},Gt.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]},Gt.prototype.skipEmptyLines=function(t){for(var n=this.lineMax;tn;)if(!_s(this.src.charCodeAt(--t)))return t+1;return t},Gt.prototype.skipChars=function(t,n){for(var r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t},Gt.prototype.getLines=function(t,n,r,o){var a,s,i,l,u,c,p,d=t;if(t>=n)return"";for(c=new Array(n-t),a=0;dr?new Array(s-r+1).join(" ")+this.src.slice(l,u):this.src.slice(l,u)}return c.join("")},Gt.prototype.Token=tf;var F_=Gt,B_=du,vs=[["table",function(t,n,r,o){var a,s,i,l,u,c,p,d,m,A,b,C,h,g,E,v,N,_;if(n+2>r||(c=n+1,t.sCount[c]=4||(i=t.bMarks[c]+t.tShift[c])>=t.eMarks[c]||124!==(N=t.src.charCodeAt(i++))&&45!==N&&58!==N||i>=t.eMarks[c]||124!==(_=t.src.charCodeAt(i++))&&45!==_&&58!==_&&!mu(_)||45===N&&mu(_))return!1;for(;i=4||((p=Wp(s)).length&&""===p[0]&&p.shift(),p.length&&""===p[p.length-1]&&p.pop(),0===(d=p.length)||d!==A.length))return!1;if(o)return!0;for(g=t.parentType,t.parentType="table",v=t.md.block.ruler.getRules("blockquote"),(m=t.push("table_open","table",1)).map=C=[n,0],(m=t.push("thead_open","thead",1)).map=[n,n+1],(m=t.push("tr_open","tr",1)).map=[n,n+1],l=0;l=4)break;for((p=Wp(s)).length&&""===p[0]&&p.shift(),p.length&&""===p[p.length-1]&&p.pop(),c===n+2&&((m=t.push("tbody_open","tbody",1)).map=h=[n+2,0]),(m=t.push("tr_open","tr",1)).map=[c,c+1],l=0;l=4))break;a=++o}return t.line=a,(s=t.push("code_block","code",0)).content=t.getLines(n,a,4+t.blkIndent,!1)+"\n",s.map=[n,t.line],!0}],["fence",function(t,n,r,o){var a,s,i,l,u,c,p,d=!1,m=t.bMarks[n]+t.tShift[n],A=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||m+3>A||126!==(a=t.src.charCodeAt(m))&&96!==a||(u=m,(s=(m=t.skipChars(m,a))-u)<3)||(p=t.src.slice(u,m),i=t.src.slice(m,A),96===a&&i.indexOf(String.fromCharCode(a))>=0))return!1;if(o)return!0;for(l=n;!(++l>=r||(m=u=t.bMarks[l]+t.tShift[l],A=t.eMarks[l],m=4||(m=t.skipChars(m,a),m-u=4||62!==t.src.charCodeAt(I))return!1;if(o)return!0;for(A=[],b=[],g=[],E=[],_=t.md.block.ruler.getRules("blockquote"),h=t.parentType,t.parentType="blockquote",d=n;d=(Q=t.eMarks[d])));d++)if(62!==t.src.charCodeAt(I++)||R){if(c)break;for(N=!1,i=0,u=_.length;i=Q,b.push(t.bsCount[d]),t.bsCount[d]=t.sCount[d]+1+(v?1:0),g.push(t.sCount[d]),t.sCount[d]=m-l,E.push(t.tShift[d]),t.tShift[d]=I-t.bMarks[d]}for(C=t.blkIndent,t.blkIndent=0,(S=t.push("blockquote_open","blockquote",1)).markup=">",S.map=p=[n,0],t.md.block.tokenize(t,n,d),(S=t.push("blockquote_close","blockquote",-1)).markup=">",t.lineMax=q,t.parentType=h,p[1]=t.line,i=0;i=4||42!==(a=t.src.charCodeAt(u++))&&45!==a&&95!==a)return!1;for(s=1;u=4||t.listIndent>=0&&t.sCount[P]-t.listIndent>=4&&t.sCount[P]=t.blkIndent&&(x=!0),(I=Xp(t,P))>=0){if(p=!0,ie=t.bMarks[P]+t.tShift[P],h=Number(t.src.slice(ie,I-1)),x&&1!==h)return!1}else{if(!((I=Kp(t,P))>=0))return!1;p=!1}if(x&&t.skipSpaces(I)>=t.eMarks[P])return!1;if(o)return!0;for(C=t.src.charCodeAt(I-1),b=t.tokens.length,p?(G=t.push("ordered_list_open","ol",1),1!==h&&(G.attrs=[["start",h]])):G=t.push("bullet_list_open","ul",1),G.map=A=[P,0],G.markup=String.fromCharCode(C),Q=!1,O=t.md.block.ruler.getRules("list"),N=t.parentType,t.parentType="list";P=g?1:E-c)>4&&(u=1),l=c+u,(G=t.push("list_item_open","li",1)).markup=String.fromCharCode(C),G.map=d=[P,0],p&&(G.info=t.src.slice(ie,I-1)),R=t.tight,S=t.tShift[P],_=t.sCount[P],v=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=l,t.tight=!0,t.tShift[P]=s-t.bMarks[P],t.sCount[P]=E,s>=g&&t.isEmpty(P+1)?t.line=Math.min(t.line+2,r):t.md.block.tokenize(t,P,r,!0),(!t.tight||Q)&&(T=!1),Q=t.line-P>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=v,t.tShift[P]=S,t.sCount[P]=_,t.tight=R,(G=t.push("list_item_close","li",-1)).markup=String.fromCharCode(C),P=t.line,d[1]=P,P>=r||t.sCount[P]=4)break;for(Y=!1,i=0,m=O.length;i=4||91!==t.src.charCodeAt(_))return!1;for(;++_3||t.sCount[R]<0)){for(g=!1,c=0,p=E.length;c"u"&&(t.env.references={}),typeof t.env.references[d]>"u"&&(t.env.references[d]={title:v,href:u}),t.parentType=A,t.line=n+N+1),!0)}],["html_block",function(t,n,r,o){var a,s,i,l,u=t.bMarks[n]+t.tShift[n],c=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||!t.md.options.html||60!==t.src.charCodeAt(u))return!1;for(l=t.src.slice(u,c),a=0;a=4||(35!==(a=t.src.charCodeAt(u))||u>=c))return!1;for(s=1,a=t.src.charCodeAt(++u);35===a&&u6||uu&&ef(t.src.charCodeAt(i-1))&&(c=i),t.line=n+1,(l=t.push("heading_open","h"+String(s),1)).markup="########".slice(0,s),l.map=[n,t.line],(l=t.push("inline","",0)).content=t.src.slice(u,c).trim(),l.map=[n,t.line],l.children=[],(l=t.push("heading_close","h"+String(s),-1)).markup="########".slice(0,s)),!0)},["paragraph","reference","blockquote"]],["lheading",function(t,n,r){var o,a,s,i,l,u,c,p,d,A,m=n+1,b=t.md.block.ruler.getRules("paragraph");if(t.sCount[n]-t.blkIndent>=4)return!1;for(A=t.parentType,t.parentType="paragraph";m3)){if(t.sCount[m]>=t.blkIndent&&((u=t.bMarks[m]+t.tShift[m])<(c=t.eMarks[m])&&((45===(d=t.src.charCodeAt(u))||61===d)&&(u=t.skipChars(u,d),(u=t.skipSpaces(u))>=c)))){p=61===d?1:2;break}if(!(t.sCount[m]<0)){for(a=!1,s=0,i=b.length;s3||t.sCount[c]<0)){for(a=!1,s=0,i=p.length;s=n||e.sCount[l]=c){e.line=n;break}for(a=e.line,o=0;o=e.line)throw new Error("block rule didn't increment state.line");break}if(!r)throw new Error("none of the block rules matched");e.tight=!u,e.isEmpty(e.line-1)&&(u=!0),(l=e.line)?@[]^_`{|}~-".split("").forEach((function(e){Eu[e.charCodeAt(0)]=1}));var ys={};function rf(e,t){var n,r,o,a,s,i=[],l=t.length;for(n=0;n=0;n--)(95===(r=t[n]).marker||42===r.marker)&&-1!==r.end&&(o=t[r.end],i=n>0&&t[n-1].end===r.end+1&&t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&t[r.end+1].token===o.token+1,s=String.fromCharCode(r.marker),(a=e.tokens[r.token]).type=i?"strong_open":"em_open",a.tag=i?"strong":"em",a.nesting=1,a.markup=i?s+s:s,a.content="",(a=e.tokens[o.token]).type=i?"strong_close":"em_close",a.tag=i?"strong":"em",a.nesting=-1,a.markup=i?s+s:s,a.content="",i&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}Ts.tokenize=function(t,n){var r,o,s=t.pos,i=t.src.charCodeAt(s);if(n||95!==i&&42!==i)return!1;for(o=t.scanDelims(t.pos,42===i),r=0;r\x00-\x20]*)$/,tv=bs.HTML_TAG_RE;var af=Tp,sv=ae.has,iv=ae.isValidEntityCode,sf=ae.fromCodePoint,lv=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,uv=/^&([a-z][a-z0-9]{1,31});/i;function lf(e){var t,n,r,o,a,s,i,l,u={},c=e.length;if(c){var p=0,d=-2,m=[];for(t=0;ta;n-=m[n]+1)if((o=e[n]).marker===r.marker&&o.open&&o.end<0&&(i=!1,(o.close||r.open)&&(o.length+r.length)%3==0&&(o.length%3!=0||r.length%3!=0)&&(i=!0),!i)){l=n>0&&!e[n-1].open?m[n-1]+1:0,m[t]=t-n+l,m[n]=l,r.open=!1,o.end=t,o.close=!1,s=-1,d=-2;break}-1!==s&&(u[r.marker][(r.open?3:0)+(r.length||0)%3]=s)}}}var _u=pu,uf=ae.isWhiteSpace,cf=ae.isPunctChar,df=ae.isMdAsciiPunct;function Io(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}Io.prototype.pushPending=function(){var e=new _u("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},Io.prototype.push=function(e,t,n){this.pending&&this.pushPending();var r=new _u(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(o),r},Io.prototype.scanDelims=function(e,t){var r,o,a,s,i,l,u,c,p,n=e,d=!0,m=!0,A=this.posMax,b=this.src.charCodeAt(e);for(r=e>0?this.src.charCodeAt(e-1):32;n0||(r=t.pos,o=t.posMax,r+3>o)||58!==t.src.charCodeAt(r)||47!==t.src.charCodeAt(r+1)||47!==t.src.charCodeAt(r+2)||(a=t.pending.match(H_),!a)||(s=a[1],i=t.md.linkify.matchAtStart(t.src.slice(r-s.length)),!i)||(l=i.url,l.length<=s.length)||(l=l.replace(/\*+$/,""),u=t.md.normalizeLink(l),!t.md.validateLink(u))||(n||(t.pending=t.pending.slice(0,-s.length),(c=t.push("link_open","a",1)).attrs=[["href",u]],c.markup="linkify",c.info="auto",(c=t.push("text","",0)).content=t.md.normalizeLinkText(l),(c=t.push("link_close","a",-1)).markup="linkify",c.info="auto"),t.pos+=l.length-s.length,0))}],["newline",function(t,n){var r,o,a,s=t.pos;if(10!==t.src.charCodeAt(s))return!1;if(r=t.pending.length-1,o=t.posMax,!n)if(r>=0&&32===t.pending.charCodeAt(r))if(r>=1&&32===t.pending.charCodeAt(r-1)){for(a=r-1;a>=1&&32===t.pending.charCodeAt(a-1);)a--;t.pending=t.pending.slice(0,a),t.push("hardbreak","br",0)}else t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0);else t.push("softbreak","br",0);for(s++;s=u)return!1;if(10===(r=t.src.charCodeAt(l))){for(n||t.push("hardbreak","br",0),l++;l=55296&&r<=56319&&l+1=56320&&o<=57343&&(s+=t.src[l+1],l++)),a="\\"+s,n||(i=t.push("text_special","",0),r<256&&0!==Eu[r]?i.content=s:i.content=a,i.markup=a,i.info="escape"),t.pos=l+1,!0}],["backticks",function(t,n){var r,o,a,s,i,l,u,c,p=t.pos;if(96!==t.src.charCodeAt(p))return!1;for(r=p,p++,o=t.posMax;p=b)return!1;if(C=l,(u=t.md.helpers.parseLinkDestination(t.src,l,t.posMax)).ok){for(d=t.md.normalizeLink(u.str),t.md.validateLink(d)?l=u.pos:d="",C=l;l=b||41!==t.src.charCodeAt(l))&&(h=!0),l++}if(h){if(typeof t.env.references>"u")return!1;if(l=0?a=t.src.slice(C,l++):l=s+1):l=s+1,a||(a=t.src.slice(i,s)),!(c=t.env.references[W_(a)]))return t.pos=A,!1;d=c.href,m=c.title}return n||(t.pos=i,t.posMax=s,t.push("link_open","a",1).attrs=r=[["href",d]],m&&r.push(["title",m]),t.linkLevel++,t.md.inline.tokenize(t),t.linkLevel--,t.push("link_close","a",-1)),t.pos=l,t.posMax=b,!0}],["image",function(t,n){var r,o,a,s,i,l,u,c,p,d,m,A,b,C="",h=t.pos,g=t.posMax;if(33!==t.src.charCodeAt(t.pos)||91!==t.src.charCodeAt(t.pos+1)||(l=t.pos+2,(i=t.md.helpers.parseLinkLabel(t,t.pos+1,!1))<0))return!1;if((u=i+1)=g)return!1;for(b=u,(p=t.md.helpers.parseLinkDestination(t.src,u,t.posMax)).ok&&(C=t.md.normalizeLink(p.str),t.md.validateLink(C)?u=p.pos:C=""),b=u;u=g||41!==t.src.charCodeAt(u))return t.pos=h,!1;u++}else{if(typeof t.env.references>"u")return!1;if(u=0?s=t.src.slice(b,u++):u=i+1):u=i+1,s||(s=t.src.slice(l,i)),!(c=t.env.references[K_(s)]))return t.pos=h,!1;C=c.href,d=c.title}return n||(a=t.src.slice(l,i),t.md.inline.parse(a,t.md,t.env,A=[]),(m=t.push("image","img",0)).attrs=r=[["src",C],["alt",""]],m.children=A,m.content=a,d&&r.push(["title",d])),t.pos=u,t.posMax=g,!0}],["autolink",function(t,n){var r,o,a,s,i,l,u=t.pos;if(60!==t.src.charCodeAt(u))return!1;for(i=t.pos,l=t.posMax;;){if(++u>=l||60===(s=t.src.charCodeAt(u)))return!1;if(62===s)break}return r=t.src.slice(i+1,u),J_.test(r)?(o=t.md.normalizeLink(r),!!t.md.validateLink(o)&&(n||((a=t.push("link_open","a",1)).attrs=[["href",o]],a.markup="autolink",a.info="auto",(a=t.push("text","",0)).content=t.md.normalizeLinkText(r),(a=t.push("link_close","a",-1)).markup="autolink",a.info="auto"),t.pos+=r.length+2,!0)):!!Q_.test(r)&&(o=t.md.normalizeLink("mailto:"+r),!!t.md.validateLink(o)&&(n||((a=t.push("link_open","a",1)).attrs=[["href",o]],a.markup="autolink",a.info="auto",(a=t.push("text","",0)).content=t.md.normalizeLinkText(r),(a=t.push("link_close","a",-1)).markup="autolink",a.info="auto"),t.pos+=r.length+2,!0))}],["html_inline",function(t,n){var r,o,a,s,i=t.pos;return!(!t.md.options.html||(a=t.posMax,60!==t.src.charCodeAt(i)||i+2>=a)||(r=t.src.charCodeAt(i+1),33!==r&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r))||(o=t.src.slice(i).match(tv),!o))&&(n||((s=t.push("html_inline","",0)).content=o[0],function(e){return/^\s]/i.test(e)}(s.content)&&t.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(s.content)&&t.linkLevel--),t.pos+=o[0].length,!0)}],["entity",function(t,n){var o,a,s,i=t.pos,l=t.posMax;if(38!==t.src.charCodeAt(i)||i+1>=l)return!1;if(35===t.src.charCodeAt(i+1)){if(a=t.src.slice(i).match(lv))return n||(o="x"===a[1][0].toLowerCase()?parseInt(a[1].slice(1),16):parseInt(a[1],10),(s=t.push("text_special","",0)).content=iv(o)?sf(o):sf(65533),s.markup=a[0],s.info="entity"),t.pos+=a[0].length,!0}else if((a=t.src.slice(i).match(uv))&&sv(af,a[1]))return n||((s=t.push("text_special","",0)).content=af[a[1]],s.markup=a[0],s.info="entity"),t.pos+=a[0].length,!0;return!1}]],Du=[["balance_pairs",function(t){var n,r=t.tokens_meta,o=t.tokens_meta.length;for(lf(t.delimiters),n=0;n0&&o++,"text"===a[n].type&&n+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;t||e.pos++,i[r]=e.pos}},Mo.prototype.tokenize=function(e){for(var t,n,r,o=this.ruler.getRules(""),a=o.length,s=e.posMax,i=e.md.options.maxNesting;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Mo.prototype.parse=function(e,t,n,r){var o,a,s,i=new this.State(e,t,n,r);for(this.tokenize(i),s=(a=this.ruler2.getRules("")).length,o=0;o=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Dv="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",yv="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Ns(e){var t=e.re=(ff||(ff=1,yu=function(e){var t={};e=e||{},t.src_Any=kp().source,t.src_Cc=Mp().source,t.src_Z=Pp().source,t.src_P=su.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var n="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+n+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}),yu)(e.__opts__),n=e.__tlds__.slice();function r(i){return i.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push(Dv),n.push(t.src_xn),t.src_tlds=n.join("|"),t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");var o=[];function a(i,l){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+l)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(i){var l=e.__schemas__[i];if(null!==l){var u={validate:null,link:null};if(e.__compiled__[i]=u,function(e){return"[object Object]"===Cs(e)}(l))return!function(e){return"[object RegExp]"===Cs(e)}(l.validate)?gf(l.validate)?u.validate=l.validate:a(i,l):u.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(l.validate),void(gf(l.normalize)?u.normalize=l.normalize:l.normalize?a(i,l):u.normalize=function(e,t){t.normalize(e)});if(function(e){return"[object String]"===Cs(e)}(l))return void o.push(i);a(i,l)}})),o.forEach((function(i){e.__compiled__[e.__schemas__[i]]&&(e.__compiled__[i].validate=e.__compiled__[e.__schemas__[i]].validate,e.__compiled__[i].normalize=e.__compiled__[e.__schemas__[i]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var s=Object.keys(e.__compiled__).filter((function(i){return i.length>0&&e.__compiled__[i]})).map(bv).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function Nv(e,t){var n=e.__index__,r=e.__last_index__,o=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=o,this.text=o,this.url=o}function Cu(e,t){var n=new Nv(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function ft(e,t){if(!(this instanceof ft))return new ft(e,t);t||function(e){return Object.keys(e||{}).reduce((function(t,n){return t||mf.hasOwnProperty(n)}),!1)}(e)&&(t=e,e={}),this.__opts__=Tu({},mf,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Tu({},vv,e),this.__compiled__={},this.__tlds__=yv,this.__tlds_replaced__=!1,this.re={},Ns(this)}ft.prototype.add=function(t,n){return this.__schemas__[t]=n,Ns(this),this},ft.prototype.set=function(t){return this.__opts__=Tu(this.__opts__,t),this},ft.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var n,r,o,a,s,i,l,u;if(this.re.schema_test.test(t))for((l=this.re.schema_search).lastIndex=0;null!==(n=l.exec(t));)if(a=this.testSchemaAt(t,n[2],l.lastIndex)){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&((u=t.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||u=0&&null!==(o=t.match(this.re.email_fuzzy))&&(s=o.index+o[1].length,i=o.index+o[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=i))),this.__index__>=0},ft.prototype.pretest=function(t){return this.re.pretest.test(t)},ft.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0},ft.prototype.match=function(t){var n=0,r=[];this.__index__>=0&&this.__text_cache__===t&&(r.push(Cu(this,n)),n=this.__last_index__);for(var o=n?t.slice(n):t;this.test(o);)r.push(Cu(this,n)),o=o.slice(this.__last_index__),n+=this.__last_index__;return r.length?r:null},ft.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;var n=this.re.schema_at_start.exec(t);if(!n)return null;var r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,Cu(this,0)):null},ft.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter((function(r,o,a){return r!==a[o-1]})).reverse(),Ns(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Ns(this),this)},ft.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),"mailto:"===t.schema&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)},ft.prototype.onCompile=function(){};var Sv=ft;const kr=2147483647,Rv=/^xn--/,Lv=/[^\0-\x7F]/,Ov=/[\x2E\u3002\uFF0E\uFF61]/g,kv={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zt=Math.floor,wu=String.fromCharCode;function Sn(e){throw new RangeError(kv[e])}function _f(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(Ov,".")).split("."),t).join(".");return r+a}function xu(e){const t=[];let n=0;const r=e.length;for(;n=55296&&o<=56319&&nString.fromCodePoint(...e),Mv=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:36},Df=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},yf=function(e,t,n){let r=0;for(e=n?Zt(e/700):e>>1,e+=Zt(e/t);e>455;r+=36)e=Zt(e/35);return Zt(r+36*e/(e+38))},Ru=function(e){const t=[],n=e.length;let r=0,o=128,a=72,s=e.lastIndexOf("-");s<0&&(s=0);for(let i=0;i=128&&Sn("not-basic"),t.push(e.charCodeAt(i));for(let i=s>0?s+1:0;i=n&&Sn("invalid-input");const d=Mv(e.charCodeAt(i++));d>=36&&Sn("invalid-input"),d>Zt((kr-r)/c)&&Sn("overflow"),r+=d*c;const m=p<=a?1:p>=a+26?26:p-a;if(dZt(kr/A)&&Sn("overflow"),c*=A}const u=t.length+1;a=yf(r-l,u,0==l),Zt(r/u)>kr-o&&Sn("overflow"),o+=Zt(r/u),r%=u,t.splice(r++,0,o)}return String.fromCodePoint(...t)},Lu=function(e){const t=[],n=(e=xu(e)).length;let r=128,o=0,a=72;for(const l of e)l<128&&t.push(wu(l));const s=t.length;let i=s;for(s&&t.push("-");i=r&&cZt((kr-o)/u)&&Sn("overflow"),o+=(l-r)*u,r=l;for(const c of e)if(ckr&&Sn("overflow"),c===r){let p=o;for(let d=36;;d+=36){const m=d<=a?1:d>=a+26?26:d-a;if(p=0))try{t.hostname=Nf.toASCII(t.hostname)}catch{}return Zn.encode(Zn.format(t))}function Xv(e){var t=Zn.parse(e,!0);if(t.hostname&&(!t.protocol||Sf.indexOf(t.protocol)>=0))try{t.hostname=Nf.toUnicode(t.hostname)}catch{}return Zn.decode(Zn.format(t),Zn.decode.defaultChars+"%")}function yt(e,t){if(!(this instanceof yt))return new yt(e,t);t||Bo.isString(e)||(t=e||{},e="default"),this.inline=new Gv,this.block=new zv,this.core=new Vv,this.renderer=new Hv,this.linkify=new $v,this.validateLink=Yv,this.normalizeLink=Kv,this.normalizeLinkText=Xv,this.utils=Bo,this.helpers=Bo.assign({},qv),this.options={},this.configure(e),t&&this.set(t)}yt.prototype.set=function(e){return Bo.assign(this.options,e),this},yt.prototype.configure=function(e){var n,t=this;if(Bo.isString(e)&&!(e=Zv[n=e]))throw new Error('Wrong `markdown-it` preset "'+n+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},yt.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(o){n=n.concat(this[o].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(o){return n.indexOf(o)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},yt.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(o){n=n.concat(this[o].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(o){return n.indexOf(o)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},yt.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},yt.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},yt.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},yt.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},yt.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const eD=jo(yt);function wf(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const n=e[t],r=typeof n;("object"===r||"function"===r)&&!Object.isFrozen(n)&&wf(n)})),e}class xf{constructor(t){void 0===t.data&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Rf(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function wn(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach((function(r){for(const o in r)n[o]=r[o]})),n}const Lf=e=>!!e.scope;class rD{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Rf(t)}openNode(t){if(!Lf(t))return;const n=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((r,o)=>`${r}${"_".repeat(o+1)}`))].join(" ")}return`${t}${e}`})(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Lf(t)&&(this.buffer+="")}value(){return this.buffer}span(t){this.buffer+=``}}const Of=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class Ou{constructor(){this.rootNode=Of(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Of({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return"string"==typeof n?t.addText(n):n.children&&(t.openNode(n),n.children.forEach((r=>this._walk(t,r))),t.closeNode(n)),t}static _collapse(t){"string"!=typeof t&&t.children&&(t.children.every((n=>"string"==typeof n))?t.children=[t.children.join("")]:t.children.forEach((n=>{Ou._collapse(n)})))}}class oD extends Ou{constructor(t){super(),this.options=t}addText(t){""!==t&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new rD(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Po(e){return e?"string"==typeof e?e:e.source:null}function kf(e){return jn("(?=",e,")")}function aD(e){return jn("(?:",e,")*")}function sD(e){return jn("(?:",e,")?")}function jn(...e){return e.map((n=>Po(n))).join("")}function ku(...e){return"("+(function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map((r=>Po(r))).join("|")+")"}function If(e){return new RegExp(e.toString()+"|").exec("").length-1}const uD=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Iu(e,{joinWith:t}){let n=0;return e.map((r=>{n+=1;const o=n;let a=Po(r),s="";for(;a.length>0;){const i=uD.exec(a);if(!i){s+=a;break}s+=a.substring(0,i.index),a=a.substring(i.index+i[0].length),"\\"===i[0][0]&&i[1]?s+="\\"+String(Number(i[1])+o):(s+=i[0],"("===i[0]&&n++)}return s})).map((r=>`(${r})`)).join(t)}const Mf="[a-zA-Z]\\w*",Mu="[a-zA-Z_]\\w*",Ff="\\b\\d+(\\.\\d+)?",Bf="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Pf="\\b(0b[01]+)",Uo={begin:"\\\\[\\s\\S]",relevance:0},fD={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Uo]},gD={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Uo]},Ss=function(e,t,n={}){const r=wn({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const o=ku("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:jn(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},hD=Ss("//","$"),ED=Ss("/\\*","\\*/"),AD=Ss("#","$"),bD={scope:"number",begin:Ff,relevance:0},_D={scope:"number",begin:Bf,relevance:0},vD={scope:"number",begin:Pf,relevance:0},DD={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Uo,{begin:/\[/,end:/\]/,relevance:0,contains:[Uo]}]},yD={scope:"title",begin:Mf,relevance:0},TD={scope:"title",begin:Mu,relevance:0},CD={begin:"\\.\\s*"+Mu,relevance:0};var ws=Object.freeze({__proto__:null,APOS_STRING_MODE:fD,BACKSLASH_ESCAPE:Uo,BINARY_NUMBER_MODE:vD,BINARY_NUMBER_RE:Pf,COMMENT:Ss,C_BLOCK_COMMENT_MODE:ED,C_LINE_COMMENT_MODE:hD,C_NUMBER_MODE:_D,C_NUMBER_RE:Bf,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:AD,IDENT_RE:Mf,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:CD,NUMBER_MODE:bD,NUMBER_RE:Ff,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:gD,REGEXP_MODE:DD,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=jn(t,/.*\b/,e.binary,/\b.*/)),wn({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{0!==n.index&&r.ignoreMatch()}},e)},TITLE_MODE:yD,UNDERSCORE_IDENT_RE:Mu,UNDERSCORE_TITLE_MODE:TD});function ND(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function SD(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function wD(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=ND,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function xD(e,t){Array.isArray(e.illegal)&&(e.illegal=ku(...e.illegal))}function RD(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function LD(e,t){void 0===e.relevance&&(e.relevance=1)}const OD=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((r=>{delete e[r]})),e.keywords=n.keywords,e.begin=jn(n.beforeMatch,kf(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},kD=["of","and","for","in","not","or","if","then","parent","list","value"],ID="keyword";function Uf(e,t,n=ID){const r=Object.create(null);return"string"==typeof e?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach((function(a){Object.assign(r,Uf(e[a],t,a))})),r;function o(a,s){t&&(s=s.map((i=>i.toLowerCase()))),s.forEach((function(i){const l=i.split("|");r[l[0]]=[a,MD(l[0],l[1])]}))}}function MD(e,t){return t?Number(t):function(e){return kD.includes(e.toLowerCase())}(e)?0:1}const qf={},Wn=e=>{console.error(e)},Hf=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ir=(e,t)=>{qf[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),qf[`${e}/${t}`]=!0)},xs=new Error;function Vf(e,t,{key:n}){let r=0;const o=e[n],a={},s={};for(let i=1;i<=t.length;i++)s[i+r]=o[i],a[i+r]=!0,r+=If(t[i-1]);e[n]=s,e[n]._emit=a,e[n]._multi=!0}function qD(e){(function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Wn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xs;if("object"!=typeof e.beginScope||null===e.beginScope)throw Wn("beginScope must be object"),xs;Vf(e,e.begin,{key:"beginScope"}),e.begin=Iu(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Wn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xs;if("object"!=typeof e.endScope||null===e.endScope)throw Wn("endScope must be object"),xs;Vf(e,e.end,{key:"endScope"}),e.end=Iu(e.end,{joinWith:""})}}(e)}function HD(e){function t(s,i){return new RegExp(Po(s),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(i?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(i,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,i]),this.matchAt+=If(i)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const i=this.regexes.map((l=>l[1]));this.matcherRe=t(Iu(i,{joinWith:"|"}),!0),this.lastIndex=0}exec(i){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(i);if(!l)return null;const u=l.findIndex(((p,d)=>d>0&&void 0!==p)),c=this.matchIndexes[u];return l.splice(0,u),Object.assign(l,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(i){if(this.multiRegexes[i])return this.multiRegexes[i];const l=new n;return this.rules.slice(i).forEach((([u,c])=>l.addRule(u,c))),l.compile(),this.multiRegexes[i]=l,l}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(i,l){this.rules.push([i,l]),"begin"===l.type&&this.count++}exec(i){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let u=l.exec(i);if(this.resumingScanAtSamePosition()&&(!u||u.index!==this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,u=c.exec(i)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=wn(e.classNameAliases||{}),function a(s,i){const l=s;if(s.isCompiled)return l;[SD,RD,qD,OD].forEach((c=>c(s,i))),e.compilerExtensions.forEach((c=>c(s,i))),s.__beforeBegin=null,[wD,xD,LD].forEach((c=>c(s,i))),s.isCompiled=!0;let u=null;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),u=s.keywords.$pattern,delete s.keywords.$pattern),u=u||/\w+/,s.keywords&&(s.keywords=Uf(s.keywords,e.case_insensitive)),l.keywordPatternRe=t(u,!0),i&&(s.begin||(s.begin=/\B|\b/),l.beginRe=t(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=t(l.end)),l.terminatorEnd=Po(l.end)||"",s.endsWithParent&&i.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+i.terminatorEnd)),s.illegal&&(l.illegalRe=t(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(c){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return wn(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:zf(e)?wn(e,{starts:e.starts?wn(e.starts):null}):Object.isFrozen(e)?wn(e):e}("self"===c?s:c)}))),s.contains.forEach((function(c){a(c,l)})),s.starts&&a(s.starts,i),l.matcher=function(s){const i=new r;return s.contains.forEach((l=>i.addRule(l.begin,{rule:l,type:"begin"}))),s.terminatorEnd&&i.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&i.addRule(s.illegal,{type:"illegal"}),i}(l),l}(e)}function zf(e){return!!e&&(e.endsWithParent||zf(e.starts))}class GD extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Fu=Rf,Gf=wn,$f=Symbol("nomatch"),Zf=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let i={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:oD};function l(x){return i.noHighlightRe.test(x)}function c(x,T,y){let L="",k="";"object"==typeof T?(L=x,y=T.ignoreIllegals,k=T.language):(Ir("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ir("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),k=x,L=T),void 0===y&&(y=!0);const H={code:L,language:k};G("before:highlight",H);const j=H.result?H.result:p(H.language,H.code,y);return j.code=H.code,G("after:highlight",j),j}function p(x,T,y,L){const k=Object.create(null);function H(B,V){return B.keywords[V]}function j(){if(!W.keywords)return void De.addText(oe);let B=0;W.keywordPatternRe.lastIndex=0;let V=W.keywordPatternRe.exec(oe),K="";for(;V;){K+=oe.substring(B,V.index);const ne=Ce.case_insensitive?V[0].toLowerCase():V[0],ge=H(W,ne);if(ge){const[$e,zo]=ge;if(De.addText(K),K="",k[ne]=(k[ne]||0)+1,k[ne]<=7&&(Bt+=zo),$e.startsWith("_"))K+=V[0];else{const Go=Ce.classNameAliases[$e]||$e;se(V[0],Go)}}else K+=V[0];B=W.keywordPatternRe.lastIndex,V=W.keywordPatternRe.exec(oe)}K+=oe.substring(B),De.addText(K)}function ce(){null!=W.subLanguage?function(){if(""===oe)return;let B=null;if("string"==typeof W.subLanguage){if(!t[W.subLanguage])return void De.addText(oe);B=p(W.subLanguage,oe,!0,Ur[W.subLanguage]),Ur[W.subLanguage]=B._top}else B=m(oe,W.subLanguage.length?W.subLanguage:null);W.relevance>0&&(Bt+=B.relevance),De.__addSublanguage(B._emitter,B.language)}():j(),oe=""}function se(B,V){""!==B&&(De.startScope(V),De.addText(B),De.endScope())}function le(B,V){let K=1;const ne=V.length-1;for(;K<=ne;){if(!B._emit[K]){K++;continue}const ge=Ce.classNameAliases[B[K]]||B[K],$e=V[K];ge?se($e,ge):(oe=$e,j(),oe=""),K++}}function mt(B,V){return B.scope&&"string"==typeof B.scope&&De.openNode(Ce.classNameAliases[B.scope]||B.scope),B.beginScope&&(B.beginScope._wrap?(se(oe,Ce.classNameAliases[B.beginScope._wrap]||B.beginScope._wrap),oe=""):B.beginScope._multi&&(le(B.beginScope,V),oe="")),W=Object.create(B,{parent:{value:W}}),W}function Ft(B,V,K){let ne=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(B.endRe,K);if(ne){if(B["on:end"]){const ge=new xf(B);B["on:end"](V,ge),ge.isMatchIgnored&&(ne=!1)}if(ne){for(;B.endsParent&&B.parent;)B=B.parent;return B}}if(B.endsWithParent)return Ft(B.parent,V,K)}function ht(B){return 0===W.matcher.regexIndex?(oe+=B[0],1):(Hr=!0,0)}function Ct(B){const V=B[0],K=T.substring(B.index),ne=Ft(W,B,K);if(!ne)return $f;const ge=W;W.endScope&&W.endScope._wrap?(ce(),se(V,W.endScope._wrap)):W.endScope&&W.endScope._multi?(ce(),le(W.endScope,B)):ge.skip?oe+=V:(ge.returnEnd||ge.excludeEnd||(oe+=V),ce(),ge.excludeEnd&&(oe=V));do{W.scope&&De.closeNode(),!W.skip&&!W.subLanguage&&(Bt+=W.relevance),W=W.parent}while(W!==ne.parent);return ne.starts&&mt(ne.starts,B),ge.returnEnd?0:V.length}let Re={};function ke(B,V){const K=V&&V[0];if(oe+=B,null==K)return ce(),0;if("begin"===Re.type&&"end"===V.type&&Re.index===V.index&&""===K){if(oe+=T.slice(V.index,V.index+1),!o){const ne=new Error(`0 width match regex (${x})`);throw ne.languageName=x,ne.badRule=Re.rule,ne}return 1}if(Re=V,"begin"===V.type)return function(B){const V=B[0],K=B.rule,ne=new xf(K),ge=[K.__beforeBegin,K["on:begin"]];for(const $e of ge)if($e&&($e(B,ne),ne.isMatchIgnored))return ht(V);return K.skip?oe+=V:(K.excludeBegin&&(oe+=V),ce(),!K.returnBegin&&!K.excludeBegin&&(oe=V)),mt(K,B),K.returnBegin?0:V.length}(V);if("illegal"===V.type&&!y){const ne=new Error('Illegal lexeme "'+K+'" for mode "'+(W.scope||"")+'"');throw ne.mode=W,ne}if("end"===V.type){const ne=Ct(V);if(ne!==$f)return ne}if("illegal"===V.type&&""===K)return 1;if(qr>1e5&&qr>3*V.index)throw new Error("potential infinite loop, way more iterations than matches");return oe+=K,K.length}const Ce=q(x);if(!Ce)throw Wn(a.replace("{}",x)),new Error('Unknown language: "'+x+'"');const Hs=HD(Ce);let Pr="",W=L||Hs;const Ur={},De=new i.__emitter(i);!function(){const B=[];for(let V=W;V!==Ce;V=V.parent)V.scope&&B.unshift(V.scope);B.forEach((V=>De.openNode(V)))}();let oe="",Bt=0,jt=0,qr=0,Hr=!1;try{if(Ce.__emitTokens)Ce.__emitTokens(T,De);else{for(W.matcher.considerAll();;){qr++,Hr?Hr=!1:W.matcher.considerAll(),W.matcher.lastIndex=jt;const B=W.matcher.exec(T);if(!B)break;const K=ke(T.substring(jt,B.index),B);jt=B.index+K}ke(T.substring(jt))}return De.finalize(),Pr=De.toHTML(),{language:x,value:Pr,relevance:Bt,illegal:!1,_emitter:De,_top:W}}catch(B){if(B.message&&B.message.includes("Illegal"))return{language:x,value:Fu(T),illegal:!0,relevance:0,_illegalBy:{message:B.message,index:jt,context:T.slice(jt-100,jt+100),mode:B.mode,resultSoFar:Pr},_emitter:De};if(o)return{language:x,value:Fu(T),illegal:!1,relevance:0,errorRaised:B,_emitter:De,_top:W};throw B}}function m(x,T){T=T||i.languages||Object.keys(t);const y=function(x){const T={value:Fu(x),illegal:!1,relevance:0,_top:s,_emitter:new i.__emitter(i)};return T._emitter.addText(x),T}(x),L=T.filter(q).filter(Q).map((ce=>p(ce,x,!1)));L.unshift(y);const k=L.sort(((ce,se)=>{if(ce.relevance!==se.relevance)return se.relevance-ce.relevance;if(ce.language&&se.language){if(q(ce.language).supersetOf===se.language)return 1;if(q(se.language).supersetOf===ce.language)return-1}return 0})),[H,j]=k,fe=H;return fe.secondBest=j,fe}function b(x){let T=null;const y=function(x){let T=x.className+" ";T+=x.parentNode?x.parentNode.className:"";const y=i.languageDetectRe.exec(T);if(y){const L=q(y[1]);return L||(Hf(a.replace("{}",y[1])),Hf("Falling back to no-highlight mode for this block.",x)),L?y[1]:"no-highlight"}return T.split(/\s+/).find((L=>l(L)||q(L)))}(x);if(l(y))return;if(G("before:highlightElement",{el:x,language:y}),x.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",x);if(x.children.length>0&&(i.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(x)),i.throwUnescapedHTML))throw new GD("One of your code blocks includes unescaped HTML.",x.innerHTML);T=x;const L=T.textContent,k=y?c(L,{language:y,ignoreIllegals:!0}):m(L);x.innerHTML=k.value,x.dataset.highlighted="yes",function(x,T,y){const L=T&&n[T]||y;x.classList.add("hljs"),x.classList.add(`language-${L}`)}(x,y,k.language),x.result={language:k.language,re:k.relevance,relevance:k.relevance},k.secondBest&&(x.secondBest={language:k.secondBest.language,relevance:k.secondBest.relevance}),G("after:highlightElement",{el:x,result:k,text:L})}let E=!1;function v(){"loading"!==document.readyState?document.querySelectorAll(i.cssSelector).forEach(b):E=!0}function q(x){return x=(x||"").toLowerCase(),t[x]||t[n[x]]}function I(x,{languageName:T}){"string"==typeof x&&(x=[x]),x.forEach((y=>{n[y.toLowerCase()]=T}))}function Q(x){const T=q(x);return T&&!T.disableAutodetect}function G(x,T){const y=x;r.forEach((function(L){L[y]&&L[y](T)}))}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){E&&v()}),!1),Object.assign(e,{highlight:c,highlightAuto:m,highlightAll:v,highlightElement:b,highlightBlock:function(x){return Ir("10.7.0","highlightBlock will be removed entirely in v12.0"),Ir("10.7.0","Please use highlightElement now."),b(x)},configure:function(x){i=Gf(i,x)},initHighlighting:()=>{v(),Ir("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),Ir("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(x,T){let y=null;try{y=T(e)}catch(L){if(Wn("Language definition for '{}' could not be registered.".replace("{}",x)),!o)throw L;Wn(L),y=s}y.name||(y.name=x),t[x]=y,y.rawDefinition=T.bind(null,e),y.aliases&&I(y.aliases,{languageName:x})},unregisterLanguage:function(x){delete t[x];for(const T of Object.keys(n))n[T]===x&&delete n[T]},listLanguages:function(){return Object.keys(t)},getLanguage:q,registerAliases:I,autoDetection:Q,inherit:Gf,addPlugin:function(x){(function(x){x["before:highlightBlock"]&&!x["before:highlightElement"]&&(x["before:highlightElement"]=T=>{x["before:highlightBlock"](Object.assign({block:T.el},T))}),x["after:highlightBlock"]&&!x["after:highlightElement"]&&(x["after:highlightElement"]=T=>{x["after:highlightBlock"](Object.assign({block:T.el},T))})})(x),r.push(x)},removePlugin:function(x){const T=r.indexOf(x);-1!==T&&r.splice(T,1)}}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString="11.9.0",e.regex={concat:jn,lookahead:kf,either:ku,optional:sD,anyNumberOfTimes:aD};for(const x in ws)"object"==typeof ws[x]&&wf(ws[x]);return Object.assign(e,ws),e},Mr=Zf({});Mr.newInstance=()=>Zf({});var ZD=Mr;Mr.HighlightJS=Mr,Mr.default=Mr;const X=jo(ZD);const JD=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ey=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],ty=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ny=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ry=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();var Fr="[0-9](_*[0-9])*",Rs=`\\.(${Fr})`,Ls="[0-9a-fA-F](_*[0-9a-fA-F])*",jf={className:"number",variants:[{begin:`(\\b(${Fr})((${Rs})|\\.)?|(${Rs}))[eE][+-]?(${Fr})[fFdD]?\\b`},{begin:`\\b(${Fr})((${Rs})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Rs})[fFdD]?\\b`},{begin:`\\b(${Fr})[fFdD]\\b`},{begin:`\\b0[xX]((${Ls})\\.?|(${Ls})?\\.(${Ls}))[pP][+-]?(${Fr})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ls})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Wf(e,t,n){return-1===n?"":e.replace(t,(r=>Wf(e,t,n-1)))}const Yf="[A-Za-z$_][0-9A-Za-z$_]*",cy=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],dy=["true","false","null","undefined","NaN","Infinity"],Kf=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Xf=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Qf=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],py=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],fy=[].concat(Qf,Kf,Xf);var Br="[0-9](_*[0-9])*",Os=`\\.(${Br})`,ks="[0-9a-fA-F](_*[0-9a-fA-F])*",hy={className:"number",variants:[{begin:`(\\b(${Br})((${Os})|\\.)?|(${Os}))[eE][+-]?(${Br})[fFdD]?\\b`},{begin:`\\b(${Br})((${Os})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Os})[fFdD]?\\b`},{begin:`\\b(${Br})[fFdD]\\b`},{begin:`\\b0[xX]((${ks})\\.?|(${ks})?\\.(${ks}))[pP][+-]?(${Br})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ks})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};const by=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],_y=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Jf=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],e1=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],vy=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),Dy=Jf.concat(e1);const qy=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Hy=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Vy=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],zy=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Gy=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function t1(e){return e?"string"==typeof e?e:e.source:null}function Is(e){return de("(?=",e,")")}function de(...e){return e.map((n=>t1(n))).join("")}function ot(...e){return"("+(function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map((r=>t1(r))).join("|")+")"}const Bu=e=>de(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Yy=["Protocol","Type"].map(Bu),n1=["init","self"].map(Bu),Ky=["Any","Self"],Pu=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],r1=["false","nil","true"],Xy=["assignment","associativity","higherThan","left","lowerThan","none","right"],Qy=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],o1=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],a1=ot(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),s1=ot(a1,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Uu=de(a1,s1,"*"),i1=ot(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ms=ot(i1,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),on=de(i1,Ms,"*"),qu=de(/[A-Z]/,Ms,"*"),Jy=["attached","autoclosure",de(/convention\(/,ot("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",de(/objc\(/,on,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],e3=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];const Fs="[A-Za-z$_][0-9A-Za-z$_]*",l1=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],u1=["true","false","null","undefined","NaN","Infinity"],c1=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],d1=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],p1=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],f1=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],g1=[].concat(p1,c1,d1);X.registerLanguage("apache",(function(e){const r={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[r,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},r,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}})),X.registerLanguage("bash",(function(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,o]};o.contains.push(s);const c={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},d=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[d,e.SHEBANG(),m,c,e.HASH_COMMENT_MODE,a,{match:/(\/[a-z._-]+)+/},s,{match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},n]}})),X.registerLanguage("c",(function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",s="("+r+"|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},m=t.optional(o)+e.IDENT_RE+"\\s*\\(",C={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},h=[p,i,n,e.C_BLOCK_COMMENT_MODE,c,u],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:h.concat([{begin:/\(/,end:/\)/,keywords:C,contains:h.concat(["self"]),relevance:0}]),relevance:0},E={begin:"("+s+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:C,relevance:0},{begin:m,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,i,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,p]};return{name:"C",aliases:["h"],keywords:C,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:p,strings:u,keywords:C}}})),X.registerLanguage("cpp",(function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",s="(?!struct)("+r+"|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},m=t.optional(o)+e.IDENT_RE+"\\s*\\(",v={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},N={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[N,p,i,n,e.C_BLOCK_COMMENT_MODE,c,u],S={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},R={className:"function",begin:"("+s+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:m,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,c]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,i,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,p]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}})),X.registerLanguage("csharp",(function(e){const s={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},c=e.inherit(u,{illegal:/\n/}),p={className:"subst",begin:/\{/,end:/\}/,keywords:s},d=e.inherit(p,{illegal:/\n/}),m={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,d]},A={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]},b=e.inherit(A,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},d]});p.contains=[A,m,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],d.contains=[b,m,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const C={variants:[A,m,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},g=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",E={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},C,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+g+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,h],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[C,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},E]}})),X.registerLanguage("css",(function(e){const t=e.regex,n=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),i=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ty.join("|")+")"},{begin:":(:)?("+ny.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ry.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...i,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...i,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ey.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...i,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+JD.join("|")+")\\b"}]}})),X.registerLanguage("diff",(function(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}})),X.registerLanguage("go",(function(e){const a={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:")?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},u={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,jf,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},jf,u]}})),X.registerLanguage("javascript",(function(e){const t=e.regex,r=Yf,o_begin="<>",o_end="",s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(T,y)=>{const L=T[0].length+T.index,k=T.input[L];if("<"===k||","===k)return void y.ignoreMatch();let H;">"===k&&(((T,{after:y})=>{const L="",x={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(P)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};var T;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,A,b,C,g,{match:/\$\d+/},p,R,{className:"attr",begin:r+t.lookahead(":"),relevance:0},x,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[g,e.REGEXP_MODE,{className:"function",begin:P,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o_begin,end:o_end},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},Y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,G,{match:/\$[(.]/}]}})),X.registerLanguage("json",(function(e){const r=["true","false","null"],o={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",keywords:{literal:r},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,o,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}})),X.registerLanguage("kotlin",(function(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},o={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,o]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,o]}]};o.contains.push(s);const i={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},u=hy,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=p;return d.variants[1].contains=[p],p.variants[1].contains=[d],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r,i,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,i,l,s,e.C_NUMBER_MODE]},c]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},i,l]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},u]}})),X.registerLanguage("less",(function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),n=Dy,o="[\\w-]+",a="("+o+"|@\\{"+o+"\\})",s=[],i=[],l=function(E){return{className:"string",begin:"~?"+E+".*?"+E}},u=function(E,v,N){return{className:E,begin:v,relevance:N}},c={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:_y.join(" ")},p={begin:"\\(",end:"\\)",contains:i,keywords:c,relevance:0};i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,p,u("variable","@@?"+o,10),u("variable","@\\{"+o+"\\}"),u("built_in","~?`[^`]*?`"),{className:"attribute",begin:o+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const d=i.concat({begin:/\{/,end:/\}/,contains:s}),m={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(i)},A={begin:a+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+vy.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:i}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:i,relevance:0}},C={className:"variable",variants:[{begin:"@"+o+"\\s*:",relevance:15},{begin:"@"+o}],starts:{end:"[;}]",returnEnd:!0,contains:d}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,u("keyword","all\\b"),u("variable","@\\{"+o+"\\}"),{begin:"\\b("+by.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,u("selector-tag",a,0),u("selector-id","#"+a),u("selector-class","\\."+a,0),u("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Jf.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+e1.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:d},{begin:"!important"},t.FUNCTION_DISPATCH]},g={begin:o+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[h]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,C,g,A,h,m,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:s}})),X.registerLanguage("lua",(function(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},o=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:o}].concat(o)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}})),X.registerLanguage("makefile",(function(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},c={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(u,{contains:[]}),d=e.inherit(c,{contains:[]});u.contains.push(d),c.contains.push(p);let m=[n,l];return[u,c,p,d].forEach((C=>{C.contains=C.contains.concat(m)})),m=m.concat(u,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:m},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:m}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u,c,{className:"quote",begin:"^>\\s+",contains:m,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},l,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}})),X.registerLanguage("nginx",(function(e){const t=e.regex,n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},o={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:o.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:o}],relevance:0}],illegal:"[^\\s\\}\\{]"}})),X.registerLanguage("objectivec",(function(e){const n=/[a-zA-Z@][a-zA-Z0-9_]*/,l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}})),X.registerLanguage("perl",(function(e){const t=e.regex,r=/[dualxmsipngr]{0,12}/,o={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:o},s={begin:/->\{/,end:/\}/},i={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},l=[e.BACKSLASH_ESCAPE,a,i],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(m,A,b="\\1")=>{const C="\\1"===b?b:t.concat(b,A);return t.concat(t.concat("(?:",m,")"),A,/(?:\\.|[^\\\/])*?/,C,/(?:\\.|[^\\\/])*?/,b,r)},p=(m,A,b)=>t.concat(t.concat("(?:",m,")"),A,/(?:\\.|[^\\\/])*?/,b,r),d=[i,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:l,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...u,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=d,s.contains=d,{name:"Perl",aliases:["pl","pm"],keywords:o,contains:d}})),X.registerLanguage("pgsql",(function(e){const t=e.COMMENT("--","$"),r="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",l="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",u=l.trim().split(" ").map((function(b){return b.split("|")[0]})).join("|"),A="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map((function(b){return b.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+A+")\\s*\\("},{begin:"\\.("+u+")\\b"},{begin:"\\b("+u+")\\s+PATH\\b",keywords:{keyword:"PATH",type:l.replace("PATH ","")}},{className:"type",begin:"\\b("+u+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:r,end:r,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}})),X.registerLanguage("php",(function(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),o=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a={scope:"variable",match:"\\$+"+r},i={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d="[ \t\n]",m={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(i)}),l,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(i),"on:begin":(Y,O)=>{O.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,O)=>{O.data._beginMatch!==Y[1]&&O.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},A={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},b=["false","null","true"],C=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],h=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],E={keyword:C,literal:(Y=>{const O=[];return Y.forEach((G=>{O.push(G),G.toLowerCase()===G?O.push(G.toUpperCase()):O.push(G.toLowerCase())})),O})(b),built_in:h},v=Y=>Y.map((O=>O.replace(/\|\d+$/,""))),N={variants:[{match:[/new/,t.concat(d,"+"),t.concat("(?!",v(h).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},_=t.concat(r,"\\b(?!\\()"),S={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),_],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,t.concat(/::/,t.lookahead(/(?!class\b)/)),_],scope:{1:"title.class",3:"variable.constant"}},{match:[o,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},R={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},q={relevance:0,begin:/\(/,end:/\)/,keywords:E,contains:[R,a,S,e.C_BLOCK_COMMENT_MODE,m,A,N]},I={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",v(C).join("\\b|"),"|",v(h).join("\\b|"),"\\b)"),r,t.concat(d,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[q]};q.contains.push(I);const Q=[R,S,e.C_BLOCK_COMMENT_MODE,m,A,N];return{case_insensitive:!1,keywords:E,contains:[{begin:t.concat(/#\[\s*/,o),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:b,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:b,keyword:["new","array"]},contains:["self",...Q]},...Q,{scope:"meta",match:o}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},a,I,S,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},N,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:E,contains:["self",a,S,e.C_BLOCK_COMMENT_MODE,m,A]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},m,A]}})),X.registerLanguage("php-template",(function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}})),X.registerLanguage("plaintext",(function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}})),X.registerLanguage("python",(function(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},u={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},c={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,c,u]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,u]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},d="[0-9](_?[0-9])*",m=`(\\b(${d}))?\\.(${d})|\\b(${d})\\.`,A=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${d})|(${m}))[eE][+-]?(${d})[jJ]?(?=${A})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${A})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${A})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${A})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${A})`},{begin:`\\b(${d})[jJ](?=${A})`}]},C={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},h={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",l,b,p,e.HASH_COMMENT_MODE]}]};return u.contains=[p,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[l,b,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},p,C,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[h]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,h,p]}]}})),X.registerLanguage("python-repl",(function(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),X.registerLanguage("r",(function(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[o,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[a,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}})),X.registerLanguage("ruby",(function(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),o=t.concat(r,/(::\w+)*/),s={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},i={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},u=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^=begin","^=end",{contains:[i],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:s},p={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},m="[0-9](_?[0-9])*",A={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${m}))?([eE][+-]?(${m})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:s}]},_=[p,{variants:[{match:[/class\s+/,o,/\s+<\s+/,o]},{match:[/\b(class|module)\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:s},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:s},{relevance:0,match:[o,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[p,{begin:n}],relevance:0},A,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:s},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,u),relevance:0}].concat(l,u);c.contains=_,b.contains=_;const I=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:s,contains:_}}];return u.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:s,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(I).concat(u).concat(_)}})),X.registerLanguage("rust",(function(e){const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(32|64))?",s=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],i=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:i,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:s},illegal:""},n]}})),X.registerLanguage("scss",(function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),n=zy,r=Vy,o="@[a-z-]+",i={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+qy.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},i,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Gy.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,i,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:o,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Hy.join(" ")},contains:[{begin:o,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},i,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}})),X.registerLanguage("shell",(function(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}})),X.registerLanguage("sql",(function(e){const t=e.regex,n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],c=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],m=c,A=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((E=>!c.includes(E))),h={begin:t.concat(/\b/,t.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(E,{exceptions:v,when:N}={}){const _=N;return v=v||[],E.map((S=>S.match(/\|\d+$/)||v.includes(S)?S:_(S)?`${S}|0`:S))}(A,{when:E=>E.length<3}),literal:a,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...d),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:A.concat(d),literal:a,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},h,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}})),X.registerLanguage("swift",(function(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],o={match:[/\./,ot(...Yy,...n1)],className:{2:"keyword"}},a={match:de(/\./,ot(...Pu)),relevance:0},s=Pu.filter((te=>"string"==typeof te)).concat(["_|0"]),l={variants:[{className:"keyword",match:ot(...Pu.filter((te=>"string"!=typeof te)).concat(Ky).map(Bu),...n1)}]},u={$pattern:ot(/\b\w+/,/#\w+/),keyword:s.concat(Qy),literal:r1},c=[o,a,l],m=[{match:de(/\./,ot(...o1)),relevance:0},{className:"built_in",match:de(/\b/,ot(...o1),/(?=\()/)}],A={match:/->/,relevance:0},C=[A,{className:"operator",relevance:0,variants:[{match:Uu},{match:`\\.(\\.|${s1})+`}]}],h="([0-9]_*)+",g="([0-9a-fA-F]_*)+",E={className:"number",relevance:0,variants:[{match:`\\b(${h})(\\.(${h}))?([eE][+-]?(${h}))?\\b`},{match:`\\b0x(${g})(\\.(${g}))?([pP][+-]?(${h}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(te="")=>({className:"subst",variants:[{match:de(/\\/,te,/[0\\tnr"']/)},{match:de(/\\/,te,/u\{[0-9a-fA-F]{1,8}\}/)}]}),N=(te="")=>({className:"subst",match:de(/\\/,te,/[\t ]*(?:[\r\n]|\r\n)/)}),_=(te="")=>({className:"subst",label:"interpol",begin:de(/\\/,te,/\(/),end:/\)/}),S=(te="")=>({begin:de(te,/"""/),end:de(/"""/,te),contains:[v(te),N(te),_(te)]}),R=(te="")=>({begin:de(te,/"/),end:de(/"/,te),contains:[v(te),_(te)]}),q={className:"string",variants:[S(),S("#"),S("##"),S("###"),R(),R("#"),R("##"),R("###")]},I=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],Q={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:I},ie=te=>{const Re=de(te,/\//),ke=de(/\//,te);return{begin:Re,end:ke,contains:[...I,{scope:"comment",begin:`#(?!.*${ke})`,end:/$/}]}},Y={scope:"regexp",variants:[ie("###"),ie("##"),ie("#"),Q]},O={match:de(/`/,on,/`/)},x=[O,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${Ms}+`}],k=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:e3,contains:[...C,E,q]}]}},{scope:"keyword",match:de(/@/,ot(...Jy))},{scope:"meta",match:de(/@/,on)}],H={match:Is(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:de(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ms,"+")},{className:"type",match:qu,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:de(/\s+&\s+/,Is(qu)),relevance:0}]},j={begin://,keywords:u,contains:[...r,...c,...k,A,H]};H.contains.push(j);const ce={begin:/\(/,end:/\)/,relevance:0,keywords:u,contains:["self",{match:de(on,/\s*:/),keywords:"_|0",relevance:0},...r,Y,...c,...m,...C,E,q,...x,...k,H]},se={begin://,keywords:"repeat each",contains:[...r,H]},mt={begin:/\(/,end:/\)/,keywords:u,contains:[{begin:ot(Is(de(on,/\s*:/)),Is(de(on,/\s+/,on,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:on}]},...r,...c,...C,E,q,...k,H,ce],endsParent:!0,illegal:/["']/},Ft={match:[/(func|macro)/,/\s+/,ot(O.match,on,Uu)],className:{1:"keyword",3:"title.function"},contains:[se,mt,t],illegal:[/\[/,/%/]},ht={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[se,mt,t],illegal:/\[|%/},Ge={match:[/operator/,/\s+/,Uu],className:{1:"keyword",3:"title"}},Ct={begin:[/precedencegroup/,/\s+/,qu],className:{1:"keyword",3:"title"},contains:[H],keywords:[...Xy,...r1],end:/}/};for(const te of q.variants){const Re=te.contains.find((Ce=>"interpol"===Ce.label));Re.keywords=u;const ke=[...c,...m,...C,E,q,...x];Re.contains=[...ke,{begin:/\(/,end:/\)/,contains:["self",...ke]}]}return{name:"Swift",keywords:u,contains:[...r,Ft,ht,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:u,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]},Ge,Ct,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},Y,...c,...m,...C,E,q,...x,...k,H,ce]}})),X.registerLanguage("typescript",(function(e){const t=function(e){const t=e.regex,r=Fs,o_begin="<>",o_end="",s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(T,y)=>{const L=T[0].length+T.index,k=T.input[L];if("<"===k||","===k)return void y.ignoreMatch();let H;">"===k&&(((T,{after:y})=>{const L="",x={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(P)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};var T;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,A,b,C,g,{match:/\$\d+/},p,R,{className:"attr",begin:r+t.lookahead(":"),relevance:0},x,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[g,e.REGEXP_MODE,{className:"function",begin:P,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o_begin,end:o_end},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},Y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,G,{match:/\$[(.]/}]}}(e),n=Fs,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},l={$pattern:Fs,keyword:l1.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:u1,built_in:g1.concat(r),"variable.language":f1},u={className:"meta",begin:"@"+n},c=(d,m,A)=>{const b=d.contains.findIndex((C=>C.label===m));if(-1===b)throw new Error("can not find mode to replace");d.contains.splice(b,1,A)};return Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(u),t.contains=t.contains.concat([u,o,a]),c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),t.contains.find((d=>"func.def"===d.label)).relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t})),X.registerLanguage("vbnet",(function(e){const t=e.regex,o=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,i=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,o),/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,t.either(a,o),/ +/,t.either(s,i),/ *#/)}]},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),d=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},l,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},p,d,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[d]}]}})),X.registerLanguage("wasm",(function(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}})),X.registerLanguage("xml",(function(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=e.inherit(a,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),u={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[a,l,i,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[a,s,l,i]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[u],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[u],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:u}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}})),X.registerLanguage("yaml",(function(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},s=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),d={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},m={begin:/\{/,end:/\}/,contains:[d],illegal:"\\n",relevance:0},A={begin:"\\[",end:"\\]",contains:[d],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},m,A,a],C=[...b];return C.pop(),C.push(s),d.contains=C,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:b}}));const m1=X,l3=eD({html:!1,typographer:!0,highlight:function(e,t){const n=zn();if(t&&m1.getLanguage(t))try{return`
\n
\n
${t}
\n \n
\n
`+m1.highlight(e,{language:t,ignoreIllegals:!0}).value+"
"}catch{}return`
\n
\n
\n \n
\n
`+db.encode(e)+"
"}}).disable("list");function h1(e=""){return l3.render(e)}/*! @license DOMPurify 3.0.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.8/LICENSE */const{entries:E1,setPrototypeOf:A1,isFrozen:u3,getPrototypeOf:c3,getOwnPropertyDescriptor:Hu}=Object;let{freeze:Qe,seal:Mt,create:b1}=Object,{apply:Vu,construct:zu}=typeof Reflect<"u"&&Reflect;Qe||(Qe=function(t){return t}),Mt||(Mt=function(t){return t}),Vu||(Vu=function(t,n,r){return t.apply(n,r)}),zu||(zu=function(t,n){return new t(...n)});const Bs=Tt(Array.prototype.forEach),_1=Tt(Array.prototype.pop),qo=Tt(Array.prototype.push),Ps=Tt(String.prototype.toLowerCase),Gu=Tt(String.prototype.toString),d3=Tt(String.prototype.match),Ho=Tt(String.prototype.replace),p3=Tt(String.prototype.indexOf),f3=Tt(String.prototype.trim),gt=Tt(RegExp.prototype.test),Vo=function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:Ps;A1&&A1(e,null);let r=t.length;for(;r--;){let o=t[r];if("string"==typeof o){const a=n(o);a!==o&&(u3(t)||(t[r]=a),o=a)}e[o]=!0}return e}function m3(e){for(let t=0;t/gm),_3=Mt(/\${[\w\W]*}/gm),v3=Mt(/^data-[\-\w.\u00B7-\uFFFF]/),D3=Mt(/^aria-[\-\w]+$/),C1=Mt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),y3=Mt(/^(?:\w+script|data):/i),T3=Mt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),N1=Mt(/^html$/i);var S1=Object.freeze({__proto__:null,MUSTACHE_EXPR:A3,ERB_EXPR:b3,TMPLIT_EXPR:_3,DATA_ATTR:v3,ARIA_ATTR:D3,IS_ALLOWED_URI:C1,IS_SCRIPT_OR_DATA:y3,ATTR_WHITESPACE:T3,DOCTYPE_NAME:N1});var S3=function w1(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:typeof window>"u"?null:window;const t=$=>w1($);if(t.version="3.0.8",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;let{document:n}=e;const r=n,o=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:i,Element:l,NodeFilter:u,NamedNodeMap:c=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:p,DOMParser:d,trustedTypes:m}=e,A=l.prototype,b=Us(A,"cloneNode"),C=Us(A,"nextSibling"),h=Us(A,"childNodes"),g=Us(A,"parentNode");if("function"==typeof s){const $=n.createElement("template");$.content&&$.content.ownerDocument&&(n=$.content.ownerDocument)}let E,v="";const{implementation:N,createNodeIterator:_,createDocumentFragment:S,getElementsByTagName:R}=n,{importNode:q}=r;let I={};t.isSupported="function"==typeof E1&&"function"==typeof g&&N&&void 0!==N.createHTMLDocument;const{MUSTACHE_EXPR:Q,ERB_EXPR:ie,TMPLIT_EXPR:Y,DATA_ATTR:O,ARIA_ATTR:G,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:x}=S1;let{IS_ALLOWED_URI:T}=S1,y=null;const L=J({},[...v1,...$u,...Zu,...ju,...D1]);let k=null;const H=J({},[...y1,...Wu,...T1,...qs]);let j=Object.seal(b1(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),fe=null,ce=null,se=!0,le=!0,mt=!1,Ft=!0,ht=!1,Ge=!1,Ct=!1,te=!1,Re=!1,ke=!1,Ce=!1,Hs=!0,Pr=!1,Ur=!0,De=!1,oe={},Bt=null;const jt=J({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let qr=null;const Hr=J({},["audio","video","img","source","image","track"]);let B=null;const V=J({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),K="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",ge="http://www.w3.org/1999/xhtml";let $e=ge,zo=!1,Go=null;const l8=J({},[K,ne,ge],Gu);let $o=null;const u8=["application/xhtml+xml","text/html"];let Ie=null,Vr=null;const d8=n.createElement("form"),M1=function(D){return D instanceof RegExp||D instanceof Function},Xu=function(){let D=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Vr||Vr!==D){if((!D||"object"!=typeof D)&&(D={}),D=Yn(D),$o=-1===u8.indexOf(D.PARSER_MEDIA_TYPE)?"text/html":D.PARSER_MEDIA_TYPE,Ie="application/xhtml+xml"===$o?Gu:Ps,y="ALLOWED_TAGS"in D?J({},D.ALLOWED_TAGS,Ie):L,k="ALLOWED_ATTR"in D?J({},D.ALLOWED_ATTR,Ie):H,Go="ALLOWED_NAMESPACES"in D?J({},D.ALLOWED_NAMESPACES,Gu):l8,B="ADD_URI_SAFE_ATTR"in D?J(Yn(V),D.ADD_URI_SAFE_ATTR,Ie):V,qr="ADD_DATA_URI_TAGS"in D?J(Yn(Hr),D.ADD_DATA_URI_TAGS,Ie):Hr,Bt="FORBID_CONTENTS"in D?J({},D.FORBID_CONTENTS,Ie):jt,fe="FORBID_TAGS"in D?J({},D.FORBID_TAGS,Ie):{},ce="FORBID_ATTR"in D?J({},D.FORBID_ATTR,Ie):{},oe="USE_PROFILES"in D&&D.USE_PROFILES,se=!1!==D.ALLOW_ARIA_ATTR,le=!1!==D.ALLOW_DATA_ATTR,mt=D.ALLOW_UNKNOWN_PROTOCOLS||!1,Ft=!1!==D.ALLOW_SELF_CLOSE_IN_ATTR,ht=D.SAFE_FOR_TEMPLATES||!1,Ge=D.WHOLE_DOCUMENT||!1,Re=D.RETURN_DOM||!1,ke=D.RETURN_DOM_FRAGMENT||!1,Ce=D.RETURN_TRUSTED_TYPE||!1,te=D.FORCE_BODY||!1,Hs=!1!==D.SANITIZE_DOM,Pr=D.SANITIZE_NAMED_PROPS||!1,Ur=!1!==D.KEEP_CONTENT,De=D.IN_PLACE||!1,T=D.ALLOWED_URI_REGEXP||C1,$e=D.NAMESPACE||ge,j=D.CUSTOM_ELEMENT_HANDLING||{},D.CUSTOM_ELEMENT_HANDLING&&M1(D.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=D.CUSTOM_ELEMENT_HANDLING.tagNameCheck),D.CUSTOM_ELEMENT_HANDLING&&M1(D.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=D.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),D.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof D.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(j.allowCustomizedBuiltInElements=D.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ht&&(le=!1),ke&&(Re=!0),oe&&(y=J({},D1),k=[],!0===oe.html&&(J(y,v1),J(k,y1)),!0===oe.svg&&(J(y,$u),J(k,Wu),J(k,qs)),!0===oe.svgFilters&&(J(y,Zu),J(k,Wu),J(k,qs)),!0===oe.mathMl&&(J(y,ju),J(k,T1),J(k,qs))),D.ADD_TAGS&&(y===L&&(y=Yn(y)),J(y,D.ADD_TAGS,Ie)),D.ADD_ATTR&&(k===H&&(k=Yn(k)),J(k,D.ADD_ATTR,Ie)),D.ADD_URI_SAFE_ATTR&&J(B,D.ADD_URI_SAFE_ATTR,Ie),D.FORBID_CONTENTS&&(Bt===jt&&(Bt=Yn(Bt)),J(Bt,D.FORBID_CONTENTS,Ie)),Ur&&(y["#text"]=!0),Ge&&J(y,["html","head","body"]),y.table&&(J(y,["tbody"]),delete fe.tbody),D.TRUSTED_TYPES_POLICY){if("function"!=typeof D.TRUSTED_TYPES_POLICY.createHTML)throw Vo('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof D.TRUSTED_TYPES_POLICY.createScriptURL)throw Vo('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=D.TRUSTED_TYPES_POLICY,v=E.createHTML("")}else void 0===E&&(E=function(t,n){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let r=null;const o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML:s=>s,createScriptURL:s=>s})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}}(m,o)),null!==E&&"string"==typeof v&&(v=E.createHTML(""));Qe&&Qe(D),Vr=D}},F1=J({},["mi","mo","mn","ms","mtext"]),B1=J({},["foreignobject","desc","title","annotation-xml"]),p8=J({},["title","style","font","a","script"]),P1=J({},[...$u,...Zu,...h3]),U1=J({},[...ju,...E3]),Xn=function(D){qo(t.removed,{element:D});try{D.parentNode.removeChild(D)}catch{D.remove()}},Qu=function(D,F){try{qo(t.removed,{attribute:F.getAttributeNode(D),from:F})}catch{qo(t.removed,{attribute:null,from:F})}if(F.removeAttribute(D),"is"===D&&!k[D])if(Re||ke)try{Xn(F)}catch{}else try{F.setAttribute(D,"")}catch{}},q1=function(D){let F=null,z=null;if(te)D=""+D;else{const je=d3(D,/^[\r\n\t ]+/);z=je&&je[0]}"application/xhtml+xml"===$o&&$e===ge&&(D=''+D+"");const me=E?E.createHTML(D):D;if($e===ge)try{F=(new d).parseFromString(me,$o)}catch{}if(!F||!F.documentElement){F=N.createDocument($e,"template",null);try{F.documentElement.innerHTML=zo?v:me}catch{}}const Ze=F.body||F.documentElement;return D&&z&&Ze.insertBefore(n.createTextNode(z),Ze.childNodes[0]||null),$e===ge?R.call(F,Ge?"html":"body")[0]:Ge?F.documentElement:Ze},H1=function(D){return _.call(D.ownerDocument||D,D,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null)},V1=function(D){return"function"==typeof i&&D instanceof i},an=function(D,F,z){I[D]&&Bs(I[D],(me=>{me.call(t,F,z,Vr)}))},z1=function(D){let F=null;if(an("beforeSanitizeElements",D,null),function(D){return D instanceof p&&("string"!=typeof D.nodeName||"string"!=typeof D.textContent||"function"!=typeof D.removeChild||!(D.attributes instanceof c)||"function"!=typeof D.removeAttribute||"function"!=typeof D.setAttribute||"string"!=typeof D.namespaceURI||"function"!=typeof D.insertBefore||"function"!=typeof D.hasChildNodes)}(D))return Xn(D),!0;const z=Ie(D.nodeName);if(an("uponSanitizeElement",D,{tagName:z,allowedTags:y}),D.hasChildNodes()&&!V1(D.firstElementChild)&>(/<[/\w]/g,D.innerHTML)&>(/<[/\w]/g,D.textContent))return Xn(D),!0;if(!y[z]||fe[z]){if(!fe[z]&&$1(z)&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,z)||j.tagNameCheck instanceof Function&&j.tagNameCheck(z)))return!1;if(Ur&&!Bt[z]){const me=g(D)||D.parentNode,Ze=h(D)||D.childNodes;if(Ze&&me){for(let at=Ze.length-1;at>=0;--at)me.insertBefore(b(Ze[at],!0),C(D))}}return Xn(D),!0}return D instanceof l&&!function(D){let F=g(D);(!F||!F.tagName)&&(F={namespaceURI:$e,tagName:"template"});const z=Ps(D.tagName),me=Ps(F.tagName);return!!Go[D.namespaceURI]&&(D.namespaceURI===ne?F.namespaceURI===ge?"svg"===z:F.namespaceURI===K?"svg"===z&&("annotation-xml"===me||F1[me]):!!P1[z]:D.namespaceURI===K?F.namespaceURI===ge?"math"===z:F.namespaceURI===ne?"math"===z&&B1[me]:!!U1[z]:D.namespaceURI===ge?!(F.namespaceURI===ne&&!B1[me]||F.namespaceURI===K&&!F1[me])&&!U1[z]&&(p8[z]||!P1[z]):!("application/xhtml+xml"!==$o||!Go[D.namespaceURI]))}(D)||("noscript"===z||"noembed"===z||"noframes"===z)&>(/<\/no(script|embed|frames)/i,D.innerHTML)?(Xn(D),!0):(ht&&3===D.nodeType&&(F=D.textContent,Bs([Q,ie,Y],(me=>{F=Ho(F,me," ")})),D.textContent!==F&&(qo(t.removed,{element:D.cloneNode()}),D.textContent=F)),an("afterSanitizeElements",D,null),!1)},G1=function(D,F,z){if(Hs&&("id"===F||"name"===F)&&(z in n||z in d8))return!1;if((!le||ce[F]||!gt(O,F))&&(!se||!gt(G,F)))if(!k[F]||ce[F]){if(!($1(D)&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,D)||j.tagNameCheck instanceof Function&&j.tagNameCheck(D))&&(j.attributeNameCheck instanceof RegExp&>(j.attributeNameCheck,F)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(F))||"is"===F&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,z)||j.tagNameCheck instanceof Function&&j.tagNameCheck(z))))return!1}else if(!B[F]&&!gt(T,Ho(z,x,""))&&("src"!==F&&"xlink:href"!==F&&"href"!==F||"script"===D||0!==p3(z,"data:")||!qr[D])&&(!mt||gt(P,Ho(z,x,"")))&&z)return!1;return!0},$1=function(D){return D.indexOf("-")>0},Z1=function(D){an("beforeSanitizeAttributes",D,null);const{attributes:F}=D;if(!F)return;const z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:k};let me=F.length;for(;me--;){const Ze=F[me],{name:je,namespaceURI:at,value:Qn}=Ze,Zo=Ie(je);let st="value"===je?Qn:f3(Qn);if(z.attrName=Zo,z.attrValue=st,z.keepAttr=!0,z.forceKeepAttr=void 0,an("uponSanitizeAttribute",D,z),st=z.attrValue,z.forceKeepAttr||(Qu(je,D),!z.keepAttr))continue;if(!Ft&>(/\/>/i,st)){Qu(je,D);continue}ht&&Bs([Q,ie,Y],(W1=>{st=Ho(st,W1," ")}));const j1=Ie(D.nodeName);if(G1(j1,Zo,st)){if(Pr&&("id"===Zo||"name"===Zo)&&(Qu(je,D),st="user-content-"+st),E&&"object"==typeof m&&"function"==typeof m.getAttributeType&&!at)switch(m.getAttributeType(j1,Zo)){case"TrustedHTML":st=E.createHTML(st);break;case"TrustedScriptURL":st=E.createScriptURL(st)}try{at?D.setAttributeNS(at,je,st):D.setAttribute(je,st),_1(t.removed)}catch{}}}an("afterSanitizeAttributes",D,null)},m8=function $(D){let F=null;const z=H1(D);for(an("beforeSanitizeShadowDOM",D,null);F=z.nextNode();)an("uponSanitizeShadowNode",F,null),!z1(F)&&(F.content instanceof a&&$(F.content),Z1(F));an("afterSanitizeShadowDOM",D,null)};return t.sanitize=function($){let D=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=null,z=null,me=null,Ze=null;if(zo=!$,zo&&($="\x3c!--\x3e"),"string"!=typeof $&&!V1($)){if("function"!=typeof $.toString)throw Vo("toString is not a function");if("string"!=typeof($=$.toString()))throw Vo("dirty is not a string, aborting")}if(!t.isSupported)return $;if(Ct||Xu(D),t.removed=[],"string"==typeof $&&(De=!1),De){if($.nodeName){const Qn=Ie($.nodeName);if(!y[Qn]||fe[Qn])throw Vo("root node is forbidden and cannot be sanitized in-place")}}else if($ instanceof i)F=q1("\x3c!----\x3e"),z=F.ownerDocument.importNode($,!0),1===z.nodeType&&"BODY"===z.nodeName||"HTML"===z.nodeName?F=z:F.appendChild(z);else{if(!Re&&!ht&&!Ge&&-1===$.indexOf("<"))return E&&Ce?E.createHTML($):$;if(F=q1($),!F)return Re?null:Ce?v:""}F&&te&&Xn(F.firstChild);const je=H1(De?$:F);for(;me=je.nextNode();)z1(me)||(me.content instanceof a&&m8(me.content),Z1(me));if(De)return $;if(Re){if(ke)for(Ze=S.call(F.ownerDocument);F.firstChild;)Ze.appendChild(F.firstChild);else Ze=F;return(k.shadowroot||k.shadowrootmode)&&(Ze=q.call(r,Ze,!0)),Ze}let at=Ge?F.outerHTML:F.innerHTML;return Ge&&y["!doctype"]&&F.ownerDocument&&F.ownerDocument.doctype&&F.ownerDocument.doctype.name&>(N1,F.ownerDocument.doctype.name)&&(at="\n"+at),ht&&Bs([Q,ie,Y],(Qn=>{at=Ho(at,Qn," ")})),E&&Ce?E.createHTML(at):at},t.setConfig=function(){Xu(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ct=!0},t.clearConfig=function(){Vr=null,Ct=!1},t.isValidAttribute=function($,D,F){Vr||Xu({});const z=Ie($),me=Ie(D);return G1(z,me,F)},t.addHook=function($,D){"function"==typeof D&&(I[$]=I[$]||[],qo(I[$],D))},t.removeHook=function($){if(I[$])return _1(I[$])},t.removeHooks=function($){I[$]&&(I[$]=[])},t.removeAllHooks=function(){I={}},t}();function x1(e){return new Date(1e3*e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})}const w3=S3(window),x3=Z.forwardRef((({uuid:e=zn(),message:t,role:n,sources:r=[],error:o=!1,sentAt:a},s)=>{const i=Te.settings.textSize?`text-[${Te.settings.textSize}px]`:"text-sm";return w.jsxs("div",{className:"py-[5px]",children:["assistant"===n&&w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mb-2 text-left",children:Te.settings.assistantName||"Anything LLM Chat Assistant"}),w.jsxs("div",{ref:s,className:"flex items-start w-full h-fit "+("user"===n?"justify-end":"justify-start"),children:["assistant"===n&&w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2 mt-2",id:"anything-llm-icon"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${o?"bg-red-200 rounded-lg mr-[37px] ml-[9px]":"user"===n?`${Te.USER_STYLES} anything-llm-user-message`:`${Te.ASSISTANT_STYLES} anything-llm-assistant-message`} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex",children:o?w.jsxs("div",{className:"p-2 rounded-lg bg-red-50 text-red-500",children:[w.jsxs("span",{className:"inline-block ",children:[w.jsx(ru,{className:"h-4 w-4 mb-1 inline-block"})," Could not respond to message."]}),w.jsx("p",{className:"text-xs font-mono mt-2 border-l-2 border-red-500 pl-2 bg-red-300 p-2 rounded-sm",children:o})]}):w.jsx("span",{className:`whitespace-pre-line font-medium flex flex-col gap-y-1 ${i} leading-[20px]`,dangerouslySetInnerHTML:{__html:w3.sanitize(h1(t))}})})})]},e),a&&w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mt-2 "+("user"===n?"text-right":"text-left"),children:x1(a)})]})})),R3=Z.memo(x3),L3=Z.forwardRef((({uuid:e,reply:t,pending:n,error:r,sources:o=[]},a)=>t||0!==o.length||n||r?n?w.jsxs("div",{className:"flex items-start w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${Te.ASSISTANT_STYLES} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex gap-x-5",children:w.jsx("div",{className:"mx-4 my-1 dot-falling"})})})]}):r?w.jsxs("div",{className:"flex items-end w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:"py-[11px] px-4 rounded-lg flex flex-col bg-red-200 shadow-[0_4px_14px_rgba(0,0,0,0.25)] mr-[37px] ml-[9px]",children:w.jsx("div",{className:"flex gap-x-5",children:w.jsxs("span",{className:"inline-block p-2 rounded-lg bg-red-50 text-red-500",children:[w.jsx(ru,{className:"h-4 w-4 mb-1 inline-block"})," Could not respond to message.",w.jsxs("span",{className:"text-xs",children:["Reason: ",r||"unknown"]})]})})})]}):w.jsxs("div",{className:"py-[5px]",children:[w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mb-2 text-left",children:Te.settings.assistantName||"Anything LLM Chat Assistant"}),w.jsxs("div",{ref:a,className:"flex items-start w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${r?"bg-red-200":Te.ASSISTANT_STYLES} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex gap-x-5",children:w.jsx("span",{className:"reply whitespace-pre-line font-normal text-sm md:text-sm flex flex-col gap-y-1",dangerouslySetInnerHTML:{__html:h1(t)}})})})]},e),w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mt-2 text-left",children:x1(Date.now()/1e3)})]}):null)),O3=Z.memo(L3);var R1=NaN,I3="[object Symbol]",M3=/^\s+|\s+$/g,F3=/^[-+]0x[0-9a-f]+$/i,B3=/^0b[01]+$/i,P3=/^0o[0-7]+$/i,U3=parseInt,q3="object"==typeof Nt&&Nt&&Nt.Object===Object&&Nt,H3="object"==typeof self&&self&&self.Object===Object&&self,V3=q3||H3||Function("return this")(),G3=Object.prototype.toString,$3=Math.max,Z3=Math.min,Yu=function(){return V3.Date.now()};function Ku(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function L1(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&G3.call(e)==I3}(e))return R1;if(Ku(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ku(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(M3,"");var n=B3.test(e);return n||P3.test(e)?U3(e.slice(2),n?2:8):F3.test(e)?R1:+e}var K3=function(e,t,n){var r,o,a,s,i,l,u=0,c=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(_){var S=r,R=o;return r=o=void 0,u=_,s=e.apply(R,S)}function C(_){var S=_-l;return void 0===l||S>=t||S<0||p&&_-u>=a}function h(){var _=Yu();if(C(_))return g(_);i=setTimeout(h,function(_){var q=t-(_-l);return p?Z3(q,a-(_-u)):q}(_))}function g(_){return i=void 0,d&&r?m(_):(r=o=void 0,s)}function N(){var _=Yu(),S=C(_);if(r=arguments,o=this,l=_,S){if(void 0===i)return function(_){return u=_,i=setTimeout(h,t),c?m(_):s}(l);if(p)return i=setTimeout(h,t),m(l)}return void 0===i&&(i=setTimeout(h,t)),s}return t=L1(t)||0,Ku(n)&&(c=!!n.leading,a=(p="maxWait"in n)?$3(L1(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),N.cancel=function(){void 0!==i&&clearTimeout(i),u=0,r=l=o=i=void 0},N.flush=function(){return void 0===i?s:g(Yu())},N};const X3=jo(K3);function Q3({settings:e={},history:t=[]}){const n=Z.useRef(null),[r,o]=Z.useState(!0),a=Z.useRef(null);Z.useEffect((()=>{l()}),[t]);const i=X3((()=>{if(!a.current)return;const c=a.current.scrollHeight-a.current.scrollTop-a.current.clientHeight<=40;o(c)}),100);Z.useEffect((()=>{!function(){if(!a.current)return null;const c=a.current;if(!c)return null;c.addEventListener("scroll",i)}()}),[]);const l=()=>{a.current&&a.current.scrollTo({top:a.current.scrollHeight,behavior:"smooth"})};return 0===t.length?w.jsx("div",{className:"pb-[100px] pt-[5px] rounded-lg px-2 h-full mt-2 gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll",children:w.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:w.jsx("p",{className:"text-slate-400 text-sm font-base py-4 text-center",children:(null==e?void 0:e.greeting)??"Send a chat to get started."})})}):w.jsxs("div",{className:"pb-[30px] pt-[5px] rounded-lg px-2 h-full gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll md:max-h-[500px]",id:"chat-history",ref:a,children:[t.map(((u,c)=>{const p=c===t.length-1;return c===t.length-1&&"assistant"===u.role&&u.animate?w.jsx(O3,{ref:p?n:null,uuid:u.uuid,reply:u.content,pending:u.pending,sources:u.sources,error:u.error,closed:u.closed},u.uuid):w.jsx(R3,{ref:p?n:null,message:u.content,sentAt:u.sentAt||Date.now()/1e3,role:u.role,sources:u.sources,chatId:u.chatId,feedbackScore:u.feedbackScore,error:u.error},c)})),!r&&w.jsx("div",{className:"fixed bottom-[10rem] right-[50px] z-50 cursor-pointer animate-pulse",children:w.jsx("div",{className:"flex flex-col items-center",children:w.jsx("div",{className:"p-1 rounded-full border border-white/10 bg-black/20 hover:bg-black/50",children:w.jsx(I2,{weight:"bold",className:"text-white/50 w-5 h-5",onClick:l,id:"scroll-to-bottom-button","aria-label":"Scroll to bottom"})})})})]})}function J3(){return w.jsx("div",{className:"h-full w-full relative",children:w.jsx("div",{className:"h-full max-h-[82vh] pb-[100px] pt-[5px] bg-gray-100 rounded-lg px-2 h-full mt-2 gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll",children:w.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:w.jsx(nu,{size:14,className:"text-slate-400 animate-spin"})})})})}function e8({message:e,submit:t,onChange:n,inputDisabled:r,buttonDisabled:o}){const a=Z.useRef(null),s=Z.useRef(null),[i,l]=Z.useState(!1);Z.useEffect((()=>{!r&&s.current&&s.current.focus(),c()}),[r]);const c=()=>{s.current&&(s.current.style.height="auto")},d=m=>{const A=m.target;A.style.height="auto",A.style.height=0!==m.target.value.length?A.scrollHeight+"px":"auto"};return w.jsx("div",{className:"w-full sticky bottom-0 z-10 flex justify-center items-center px-5 bg-white",children:w.jsx("form",{onSubmit:m=>{l(!1),t(m)},className:"flex flex-col gap-y-1 rounded-t-lg w-full items-center justify-center",children:w.jsx("div",{className:"flex items-center w-full",children:w.jsx("div",{className:"bg-white border-[1.5px] border-[#22262833]/20 rounded-2xl flex flex-col px-4 overflow-hidden w-full",children:w.jsxs("div",{className:"flex items-center w-full",children:[w.jsx("textarea",{ref:s,onKeyUp:d,onKeyDown:m=>{13==m.keyCode&&(m.shiftKey||t(m))},onChange:n,required:!0,disabled:r,onFocus:()=>l(!0),onBlur:m=>{l(!1),d(m)},value:e,className:"cursor-text max-h-[100px] text-[14px] mx-2 py-2 w-full text-black bg-transparent placeholder:text-slate-800/60 resize-none active:outline-none focus:outline-none flex-grow",placeholder:"Send a message",id:"message-input"}),w.jsxs("button",{ref:a,type:"submit",disabled:o,className:"inline-flex justify-center rounded-2xl cursor-pointer text-black group ml-4",id:"send-message-button","aria-label":"Send message",children:[o?w.jsx(nu,{className:"w-4 h-4 animate-spin"}):w.jsx(pp,{size:24,className:"my-3 text-[#22262899]/60 group-hover:text-[#22262899]/90",weight:"fill"}),w.jsx("span",{className:"sr-only",children:"Send message"})]})]})})})})})}function n8({sessionId:e,settings:t,knownHistory:n=[]}){const[r,o]=Z.useState(""),[a,s]=Z.useState(!1),[i,l]=Z.useState(n);Z.useEffect((()=>{n.length!==i.length&&l([...n])}),[n]);return Z.useEffect((()=>{!0===a&&async function(){const d=i.length>0?i[i.length-1]:null,m=i.length>0?i.slice(0,-1):[];var A=[...m];if(!d||null==d||!d.userMessage)return s(!1),!1;await ds.streamChat(e,t,d.userMessage,(b=>function(e,t,n,r,o){const{uuid:a,textResponse:s,type:i,sources:l=[],error:u,close:c}=e;if("abort"===i)t(!1),n([...r,{uuid:a,content:s,role:"assistant",sources:l,closed:!0,error:u,animate:!1,pending:!1}]),o.push({uuid:a,content:s,role:"assistant",sources:l,closed:!0,error:u,animate:!1,pending:!1});else if("textResponse"===i)t(!1),n([...r,{uuid:a,content:s,role:"assistant",sources:l,closed:c,error:u,animate:!c,pending:!1}]),o.push({uuid:a,content:s,role:"assistant",sources:l,closed:c,error:u,animate:!c,pending:!1});else if("textResponseChunk"===i){const p=o.findIndex((d=>d.uuid===a));if(-1!==p){const d={...o[p]},m={...d,content:d.content+s,sources:l,error:u,closed:c,animate:!c,pending:!1};o[p]=m}else o.push({uuid:a,sources:l,error:u,content:s,role:"assistant",closed:c,animate:!c,pending:!1});n([...o])}}(b,s,l,m,A)))}()}),[a,i]),w.jsxs("div",{className:"h-full w-full flex flex-col",children:[w.jsx("div",{className:"flex-grow overflow-y-auto",children:w.jsx(Q3,{settings:t,history:i})}),w.jsx(e8,{message:r,submit:async p=>{if(p.preventDefault(),!r||""===r)return!1;const d=[...i,{content:r,role:"user"},{content:"",role:"assistant",pending:!0,userMessage:r,animate:!0}];l(d),o(""),s(!0)},onChange:p=>{o(p.target.value)},inputDisabled:a,buttonDisabled:a})]})}function O1({settings:e}){return e.noSponsor?null:w.jsx("div",{className:"flex w-full items-center justify-center",children:w.jsx("a",{href:e.sponsorLink??"#",target:"_blank",rel:"noreferrer",className:"text-xs text-[#0119D9] hover:text-[#0119D9]/80 hover:underline",children:e.sponsorText})})}function r8({setChatHistory:e,settings:t,sessionId:n}){return w.jsx("div",{className:"w-full flex justify-center",children:w.jsx("button",{className:"text-sm text-[#7A7D7E] hover:text-[#7A7D7E]/80 hover:underline",onClick:()=>(async()=>{await ds.resetEmbedChatSession(t,n),e([])})(),children:"Reset Chat"})})}function o8({closeChat:e,settings:t,sessionId:n}){const{chatHistory:r,setChatHistory:o,loading:a}=function(e=null,t=null){const[n,r]=Z.useState(!0),[o,a]=Z.useState([]);return Z.useEffect((()=>{!async function(){if(t&&e)try{const i=await ds.embedSessionHistory(e,t);a(i),r(!1)}catch(i){console.error("Error fetching historical chats:",i),r(!1)}}()}),[t,e]),{chatHistory:o,setChatHistory:a,loading:n}}(t,n);return a?w.jsxs("div",{className:"flex flex-col h-full",children:[w.jsx(yp,{sessionId:n,settings:t,iconUrl:t.brandImageUrl,closeChat:e,setChatHistory:o}),w.jsx(J3,{}),w.jsxs("div",{className:"pt-4 pb-2 h-fit gap-y-1",children:[w.jsx(ub,{}),w.jsx(O1,{settings:t})]})]}):(null==document||document.addEventListener("click",(function(e){var r;const t=e.target.closest("[data-code-snippet]"),n=null==(r=null==t?void 0:t.dataset)?void 0:r.code;if(!n)return!1;!function(e){var o,a,s;const t=document.querySelector(`[data-code="${e}"]`);if(!t)return!1;const n=null==(s=null==(a=null==(o=t.parentElement)?void 0:o.parentElement)?void 0:a.querySelector("pre:first-of-type"))?void 0:s.innerText;if(!n)return!1;window.navigator.clipboard.writeText(n),t.classList.add("text-green-500");const r=t.innerHTML;t.innerText="Copied!",t.setAttribute("disabled",!0),setTimeout((()=>{t.classList.remove("text-green-500"),t.innerHTML=r,t.removeAttribute("disabled")}),2500)}(n)})),w.jsxs("div",{className:"flex flex-col h-full",children:[w.jsx(yp,{sessionId:n,settings:t,iconUrl:t.brandImageUrl,closeChat:e,setChatHistory:o}),w.jsx("div",{className:"flex-grow overflow-y-auto",children:w.jsx(n8,{sessionId:n,settings:t,knownHistory:r})}),w.jsxs("div",{className:"mt-4 pb-4 h-fit gap-y-2 z-10",children:[w.jsx(O1,{settings:t}),w.jsx(r8,{setChatHistory:o,settings:t,sessionId:n})]})]}))}const k1=document.createElement("div");document.body.appendChild(k1),js.createRoot(k1).render(w.jsx(f.StrictMode,{children:w.jsx((function(){const{isChatOpen:e,toggleOpenChat:t}=function(){var r;const[e,t]=Z.useState(!(null==(r=null==window?void 0:window.localStorage)||!r.getItem(tu))||!1);return{isChatOpen:e,toggleOpenChat:function(o){!0===o&&window.localStorage.setItem(tu,"1"),!1===o&&window.localStorage.removeItem(tu),t(o)}}}(),n=function(){const[e,t]=Z.useState({loaded:!1,...v2});return Z.useEffect((()=>{!function(){if(!document)return!1;if(!Te.settings.baseApiUrl||!Te.settings.embedId)throw new Error("[AnythingLLM Embed Module::Abort] - Invalid script tag setup detected. Missing required parameters for boot!");t({...v2,...Te.settings,loaded:!0})}()}),[document]),e}(),r=y2();if(Z.useEffect((()=>{"on"===n.openOnLoad&&t(!0)}),[n.loaded]),!n.loaded)return null;const o={"bottom-left":"bottom-0 left-0 ml-4","bottom-right":"bottom-0 right-0 mr-4","top-left":"top-0 left-0 ml-4 mt-4","top-right":"top-0 right-0 mr-4 mt-4"},a=n.position||"bottom-right",s=n.windowWidth?`md:max-w-[${n.windowWidth}]`:"md:max-w-[400px]",i=n.windowHeight?`md:max-h-[${n.windowHeight}]`:"md:max-h-[700px]";return w.jsxs(w.Fragment,{children:[w.jsx(wh,{}),w.jsx("div",{className:"fixed inset-0 z-50 "+(e?"block":"hidden"),children:w.jsx("div",{className:`${i} ${s} h-full w-full bg-white md:fixed md:bottom-0 md:right-0 md:mb-4 md:mr-4 md:rounded-2xl md:border md:border-gray-300 md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] ${o[a]}`,id:"anything-llm-chat",children:e&&w.jsx(o8,{closeChat:()=>t(!1),settings:n,sessionId:r})})}),!e&&w.jsx("div",{className:`fixed bottom-0 ${o[a]} mb-4 z-50`,children:w.jsx(XA,{settings:n,isOpen:e,toggleOpen:()=>t(!0)})})]})}),{})}));const Kn=Object.assign({},(null==(I1=null==document?void 0:document.currentScript)?void 0:I1.dataset)||{}),Te={settings:Kn,USER_STYLES:`bg-[${(null==Kn?void 0:Kn.userBgColor)??"#3DBEF5"}] text-white rounded-t-[18px] rounded-bl-[18px] rounded-br-[4px] mx-[20px]`,ASSISTANT_STYLES:`bg-[${(null==Kn?void 0:Kn.assistantBgColor)??"#FFFFFF"}] text-[#222628] rounded-t-[18px] rounded-br-[18px] rounded-bl-[4px] mr-[37px] ml-[9px]`};Jn.embedderSettings=Te,Object.defineProperty(Jn,Symbol.toStringTag,{value:"Module"})})),(()=>{var h,Ob,re,du,xb=Object.create,li=Object.defineProperty,kb=Object.getOwnPropertyDescriptor,Sb=Object.getOwnPropertyNames,Cb=Object.getPrototypeOf,Ab=Object.prototype.hasOwnProperty,uu=i=>li(i,"__esModule",{value:!0}),fu=i=>{if("undefined"!=typeof require)return require(i);throw new Error('Dynamic require of "'+i+'" is not supported')},C=(i,e)=>()=>(i&&(e=i(i=0)),e),v=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Ae=(i,e)=>{for(var t in uu(i),e)li(i,t,{get:e[t],enumerable:!0})},K=i=>((i,e,t)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let r of Sb(e))!Ab.call(i,r)&&"default"!==r&&li(i,r,{get:()=>e[r],enumerable:!(t=kb(e,r))||t.enumerable});return i})(uu(li(null!=i?xb(Cb(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i),l=C((()=>{h={platform:"",env:{},versions:{node:"14.17.6"}}})),je=C((()=>{l(),Ob=0,re={readFileSync:i=>self[i]||"",statSync:()=>({mtimeMs:Ob++}),promises:{readFile:i=>Promise.resolve(self[i]||"")}}})),Qn=v(((XO,pu)=>{l();var cu=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(let[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,r]=e;this.cache.has(t)||!1===this._deleteIfExpired(t,r)&&(yield e)}for(let e of this.cache){let[t,r]=e;!1===this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=(this.maxAge===1/0?void 0:Date.now()+this.maxAge)}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:r}):this._set(e,{value:t,expiry:r})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,r]=e;!1===this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(let e of this.oldCache){let[t,r]=e;this.cache.has(t)||!1===this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let r=e[t],[n,a]=r;!1===this._deleteIfExpired(n,a)&&(yield[n,a.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let r=e[t],[n,a]=r;this.cache.has(n)||!1===this._deleteIfExpired(n,a)&&(yield[n,a.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};pu.exports=cu})),hu=C((()=>{l(),du=i=>i&&i._hash}));function ui(i){return du(i,{ignoreUnknown:!0})}var mu=C((()=>{l(),hu()}));function Xe(i){if("0"===(i=`${i}`))return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(i))return i.replace(/^[+-]?/,(t=>"-"===t?"":"-"));let e=["var","calc","min","max","clamp"];for(let t of e)if(i.includes(`${t}(`))return`calc(${i} * -1)`}var gu,fi=C((()=>{l()})),yu=C((()=>{l(),gu=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","content","forcedColorAdjust"]}));var bu=C((()=>{l()})),vu={};Ae(vu,{default:()=>_e});var _e,ci=C((()=>{l(),_e=new Proxy({},{get:()=>String})}));function Jn(i,e,t){void 0!==h&&h.env.JEST_WORKER_ID||t&&xu.has(t)||(t&&xu.add(t),console.warn(""),e.forEach((r=>console.warn(i,"-",r))))}function Xn(i){return _e.dim(i)}var xu,F,Oe=C((()=>{l(),ci(),xu=new Set,F={info(i,e){Jn(_e.bold(_e.cyan("info")),...Array.isArray(i)?[i]:[e,i])},warn(i,e){["content-problems"].includes(i)||Jn(_e.bold(_e.yellow("warn")),...Array.isArray(i)?[i]:[e,i])},risk(i,e){Jn(_e.bold(_e.magenta("risk")),...Array.isArray(i)?[i]:[e,i])}}})),ku={};function sr({version:i,from:e,to:t}){F.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${i}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}Ae(ku,{default:()=>Kn});var Kn,Zn=C((()=>{l(),Oe(),Kn={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return sr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return sr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return sr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return sr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return sr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}}));function es(i,...e){for(let t of e){for(let r in t)i?.hasOwnProperty?.(r)||(i[r]=t[r]);for(let r of Object.getOwnPropertySymbols(t))i?.hasOwnProperty?.(r)||(i[r]=t[r])}return i}var Su=C((()=>{l()}));function Ke(i){if(Array.isArray(i))return i;if(i.split("[").length-1!==i.split("]").length-1)throw new Error(`Path is invalid. Has unbalanced brackets: ${i}`);return i.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var pi=C((()=>{l()}));function Z(i,e){return di.future.includes(e)?"all"===i.future||(i?.future?.[e]??Cu[e]??!1):!!di.experimental.includes(e)&&("all"===i.experimental||(i?.experimental?.[e]??Cu[e]??!1))}function Au(i){return"all"===i.experimental?di.experimental:Object.keys(i?.experimental??{}).filter((e=>di.experimental.includes(e)&&i.experimental[e]))}var Cu,di,ze=C((()=>{l(),ci(),Oe(),Cu={optimizeUniversalDefaults:!1,generalizedModifiers:!0,get disableColorOpacityUtilitiesByDefault(){return!1},get relativeContentPathsByDefault(){return!1}},di={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}}));var Eu=C((()=>{l(),ze(),Oe()}));function ne(i){if("[object Object]"!==Object.prototype.toString.call(i))return!1;let e=Object.getPrototypeOf(i);return null===e||null===Object.getPrototypeOf(e)}var kt=C((()=>{l()}));function Ze(i){return Array.isArray(i)?i.map((e=>Ze(e))):"object"==typeof i&&null!==i?Object.fromEntries(Object.entries(i).map((([e,t])=>[e,Ze(t)]))):i}var hi=C((()=>{l()}));function mt(i){return i.replace(/\\,/g,"\\2c ")}var ts,mi=C((()=>{l()})),Tu=C((()=>{l(),ts={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}));function ar(i,{loose:e=!1}={}){if("string"!=typeof i)return null;if("transparent"===(i=i.trim()))return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(i in ts)return{mode:"rgb",color:ts[i].map((a=>a.toString()))};let t=i.replace(Tb,((a,s,o,u,c)=>["#",s,s,o,o,u,u,c?c+c:""].join(""))).match(Eb);if(null!==t)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map((a=>a.toString())),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let r=i.match(Pb)??i.match(Db);if(null===r)return null;let n=[r[2],r[3],r[4]].filter(Boolean).map((a=>a.toString()));return 2===n.length&&n[0].startsWith("var(")?{mode:r[1],color:[n[0]],alpha:n[1]}:!e&&3!==n.length||n.length<3&&!n.some((a=>/^var\(.*?\)$/.test(a)))?null:{mode:r[1],color:n,alpha:r[5]?.toString?.()}}function rs({mode:i,color:e,alpha:t}){let r=void 0!==t;return"rgba"===i||"hsla"===i?`${i}(${e.join(", ")}${r?`, ${t}`:""})`:`${i}(${e.join(" ")}${r?` / ${t}`:""})`}var Eb,Tb,et,gi,Pu,tt,Pb,Db,is=C((()=>{l(),Tu(),Eb=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,Tb=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,et=/(?:\d+|\d*\.\d+)%?/,gi=/(?:\s*,\s*|\s+)/,Pu=/\s*[,/]\s*/,tt=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Pb=new RegExp(`^(rgba?)\\(\\s*(${et.source}|${tt.source})(?:${gi.source}(${et.source}|${tt.source}))?(?:${gi.source}(${et.source}|${tt.source}))?(?:${Pu.source}(${et.source}|${tt.source}))?\\s*\\)$`),Db=new RegExp(`^(hsla?)\\(\\s*((?:${et.source})(?:deg|rad|grad|turn)?|${tt.source})(?:${gi.source}(${et.source}|${tt.source}))?(?:${gi.source}(${et.source}|${tt.source}))?(?:${Pu.source}(${et.source}|${tt.source}))?\\s*\\)$`)}));function De(i,e,t){if("function"==typeof i)return i({opacityValue:e});let r=ar(i,{loose:!0});return null===r?t:rs({...r,alpha:e})}function ae({color:i,property:e,variable:t}){let r=[].concat(e);if("function"==typeof i)return{[t]:"1",...Object.fromEntries(r.map((a=>[a,i({opacityVariable:t,opacityValue:`var(${t})`})])))};let n=ar(i);return null===n||void 0!==n.alpha?Object.fromEntries(r.map((a=>[a,i]))):{[t]:"1",...Object.fromEntries(r.map((a=>[a,rs({...n,alpha:`var(${t})`})])))}}var or=C((()=>{l(),is()}));function oe(i,e){let t=[],r=[],n=0,a=!1;for(let s=0;s{l()}));function yi(i){return oe(i,",").map((t=>{let r=t.trim(),n={raw:r},a=r.split(qb),s=new Set;for(let o of a)Du.lastIndex=0,!s.has("KEYWORD")&&Ib.has(o)?(n.keyword=o,s.add("KEYWORD")):Du.test(o)?s.has("X")?s.has("Y")?s.has("BLUR")?s.has("SPREAD")||(n.spread=o,s.add("SPREAD")):(n.blur=o,s.add("BLUR")):(n.y=o,s.add("Y")):(n.x=o,s.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=void 0!==n.x&&void 0!==n.y,n}))}function Iu(i){return i.map((e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw)).join(", ")}var Ib,qb,Du,ns=C((()=>{l(),St(),Ib=new Set(["inset","inherit","initial","revert","unset"]),qb=/\ +(?![^(]*\))/g,Du=/^-?(\d+|\.\d+)(.*?)$/g}));function ss(i){return Rb.some((e=>new RegExp(`^${e}\\(.*\\)`).test(i)))}function N(i,e=null,t=!0){let r=e&&Mb.has(e.property);return i.startsWith("--")&&!r?`var(${i})`:i.includes("url(")?i.split(/(url\(.*?\))/g).filter(Boolean).map((n=>/^url\(.*?\)$/.test(n)?n:N(n,e,!1))).join(""):(i=i.replace(/([^\\])_+/g,((n,a)=>a+" ".repeat(n.length-1))).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(i=i.trim()),i=function(i){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient"];return i.replace(/(calc|min|max|clamp)\(.+\)/g,(r=>{let n="";function a(){let s=n.trimEnd();return s[s.length-1]}for(let s=0;sr[s+p]===d))},u=function(f){let d=1/0;for(let m of f){let w=r.indexOf(m,s);-1!==w&&wo(f)))){let f=t.find((d=>o(d)));n+=f,s+=f.length-1}else e.some((f=>o(f)))?n+=u([")"]):o("[")?n+=u(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(a())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")}))}(i),i)}function as(i){return i.startsWith("url(")}function os(i){return!isNaN(Number(i))||ss(i)}function lr(i){return i.endsWith("%")&&os(i.slice(0,-1))||ss(i)}function ur(i){return"0"===i||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Nb}$`).test(i)||ss(i)}function qu(i){return Lb.has(i)}function Ru(i){let e=yi(N(i));for(let t of e)if(!t.valid)return!1;return!0}function Mu(i){let e=0;return!!oe(i,"_").every((r=>!!(r=N(r)).startsWith("var(")||null!==ar(r,{loose:!0})&&(e++,!0)))&&e>0}function Bu(i){let e=0;return!!oe(i,",").every((r=>!!(r=N(r)).startsWith("var(")||!!(as(r)||function(i){i=N(i);for(let e of $b)if(i.startsWith(`${e}(`))return!0;return!1}(r)||["element(","image(","cross-fade(","image-set("].some((n=>r.startsWith(n))))&&(e++,!0)))&&e>0}function Fu(i){let e=0;return!!oe(i,"_").every((r=>!!(r=N(r)).startsWith("var(")||!!(zb.has(r)||ur(r)||lr(r))&&(e++,!0)))&&e>0}function Nu(i){let e=0;return!!oe(i,",").every((r=>!!(r=N(r)).startsWith("var(")||!(r.includes(" ")&&!/(['"])([^"']+)\1/g.test(r)||/^\d/g.test(r))&&(e++,!0)))&&e>0}function Lu(i){return Vb.has(i)}function $u(i){return Ub.has(i)}function ju(i){return Wb.has(i)}var Rb,Mb,Nb,Lb,$b,zb,Vb,Ub,Wb,fr=C((()=>{l(),is(),ns(),St(),Rb=["min","max","clamp","calc"],Mb=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","scroll-timeline","animation-timeline","view-timeline"]),Nb=`(?:${["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"].join("|")})`,Lb=new Set(["thin","medium","thick"]),$b=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]),zb=new Set(["center","top","right","bottom","left"]),Vb=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),Ub=new Set(["xx-small","x-small","small","medium","large","x-large","x-large","xxx-large"]),Wb=new Set(["larger","smaller"])}));function zu(i){let e=["cover","contain"];return oe(i,",").every((t=>{let r=oe(t,"_").filter(Boolean);return!(1!==r.length||!e.includes(r[0]))||(1===r.length||2===r.length)&&r.every((n=>ur(n)||lr(n)||"auto"===n))}))}var Vu=C((()=>{l(),fr(),St()}));function Uu(i,e){i.walkClasses((t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=mt(t.raws.value))}))}function Wu(i,e){if(!rt(i))return;let t=i.slice(1,-1);return e(t)?N(t):void 0}function wi(i,e={},{validate:t=(()=>!0)}={}){let r=e.values?.[i];return void 0!==r?r:e.supportsNegativeValues&&i.startsWith("-")?function(i,e={},t){let r=e[i];if(void 0!==r)return Xe(r);if(rt(i)){let n=Wu(i,t);return void 0===n?void 0:Xe(n)}}(i.slice(1),e.values,t):Wu(i,t)}function rt(i){return i.startsWith("[")&&i.endsWith("]")}function Gu(i){let e=i.lastIndexOf("/"),t=i.lastIndexOf("[",e),r=i.indexOf("]",e);return"]"===i[e-1]||"["===i[e+1]||-1!==t&&-1!==r&&t")){let e=i;return({opacityValue:t=1})=>e.replace("",t)}return i}function Hu(i){return N(i.slice(1,-1))}function Hb(i,e={},{tailwindConfig:t={}}={}){if(void 0!==e.values?.[i])return Ct(e.values?.[i]);let[r,n]=Gu(i);if(void 0!==n){let a=e.values?.[r]??(rt(r)?r.slice(1,-1):void 0);return void 0===a?void 0:(a=Ct(a),rt(n)?De(a,Hu(n)):void 0===t.theme?.opacity?.[n]?void 0:De(a,t.theme.opacity[n]))}return wi(i,e,{validate:Mu})}function Yb(i,e={}){return e.values?.[i]}function me(i){return(e,t)=>wi(e,t,{validate:i})}function us(i,e,t,r){if(t.values&&e in t.values)for(let{type:a}of i??[]){let s=ls[a](e,t,{tailwindConfig:r});if(void 0!==s)return[s,a,null]}if(rt(e)){let a=e.slice(1,-1),[s,o]=function(i,e){let t=i.indexOf(e);return-1===t?[void 0,i]:[i.slice(0,t),i.slice(t+1)]}(a,":");if(/^[\w-_]+$/g.test(s)){if(void 0!==s&&!Yu.includes(s))return[]}else o=a;if(o.length>0&&Yu.includes(s))return[wi(`[${o}]`,t),s,null]}let n=fs(i,e,t,r);for(let a of n)return a;return[]}function*fs(i,e,t,r){let n=Z(r,"generalizedModifiers"),[a,s]=Gu(e);if(n&&null!=t.modifiers&&("any"===t.modifiers||"object"==typeof t.modifiers&&(s&&rt(s)||s in t.modifiers))||(a=e,s=void 0),void 0!==s&&""===a&&(a="DEFAULT"),void 0!==s&&"object"==typeof t.modifiers){let u=t.modifiers?.[s]??null;null!==u?s=u:rt(s)&&(s=Hu(s))}for(let{type:u}of i??[]){let c=ls[u](a,t,{tailwindConfig:r});void 0!==c&&(yield[c,u,s??null])}}var ls,Yu,cr=C((()=>{l(),mi(),or(),fr(),fi(),Vu(),ze(),ls={any:wi,color:Hb,url:me(as),image:me(Bu),length:me(ur),percentage:me(lr),position:me(Fu),lookup:Yb,"generic-name":me(Lu),"family-name":me(Nu),number:me(os),"line-width":me(qu),"absolute-size":me($u),"relative-size":me(ju),shadow:me(Ru),size:me(zu)},Yu=Object.keys(ls)}));function L(i){return"function"==typeof i?i({}):i}var cs=C((()=>{l()}));function At(i){return"function"==typeof i}function pr(i,...e){let t=e.pop();for(let r of e)for(let n in r){let a=t(i[n],r[n]);void 0===a?ne(i[n])&&ne(r[n])?i[n]=pr({},i[n],r[n],t):i[n]=r[n]:i[n]=a}return i}function Xb(i){return i.reduce(((e,{extend:t})=>pr(e,t,((r,n)=>void 0===r?[n]:Array.isArray(r)?[n,...r]:[n,r]))),{})}function Kb(i){return{...i.reduce(((e,t)=>es(e,t)),{}),extend:Xb(i)}}function Qu(i,e){return Array.isArray(i)&&ne(i[0])?i.concat(e):Array.isArray(e)&&ne(e[0])&&ne(i)?[i,...e]:Array.isArray(e)?e:void 0}function Zb({extend:i,...e}){return pr(e,i,((t,r)=>At(t)||r.some(At)?(n,a)=>pr({},...[t,...r].map((s=>function(i,...e){return At(i)?i(...e):i}(s,n,a))),Qu):pr({},t,...r,Qu)))}function t0(i){let e=(t,r)=>{for(let n of function*(i){let e=Ke(i);if(0===e.length||(yield e,Array.isArray(i)))return;let r=i.match(/^(.*?)\s*\/\s*([^/]+)$/);if(null!==r){let[,n,a]=r,s=Ke(n);s.alpha=a,yield s}}(t)){let a=0,s=i;for(;null!=s&&a(t[r]=At(i[r])?i[r](e,ps):i[r],t)),{})}function Ju(i){let e=[];return i.forEach((t=>{e=[...e,t];let r=t?.plugins??[];0!==r.length&&r.forEach((n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...Ju([n?.config??{}])]}))})),e}function r0(i){return[...i].reduceRight(((t,r)=>At(r)?r({corePlugins:t}):function(i,e){return void 0===i?e:Array.isArray(i)?i:[...new Set(e.filter((r=>!1!==i&&!1!==i[r])).concat(Object.keys(i).filter((r=>!1!==i[r]))))]}(r,t)),gu)}function i0(i){return[...i].reduceRight(((t,r)=>[...t,...r]),[])}function ds(i){let e=[...Ju(i),{prefix:"",important:!1,separator:":"}];return function(i){(()=>{if(i.purge||!i.content||!Array.isArray(i.content)&&("object"!=typeof i.content||null===i.content))return!1;if(Array.isArray(i.content))return i.content.every((t=>"string"==typeof t||!("string"!=typeof t?.raw||t?.extension&&"string"!=typeof t?.extension)));if("object"==typeof i.content&&null!==i.content){if(Object.keys(i.content).some((t=>!["files","relative","extract","transform"].includes(t))))return!1;if(Array.isArray(i.content.files)){if(!i.content.files.every((t=>"string"==typeof t||!("string"!=typeof t?.raw||t?.extension&&"string"!=typeof t?.extension))))return!1;if("object"==typeof i.content.extract){for(let t of Object.values(i.content.extract))if("function"!=typeof t)return!1}else if(void 0!==i.content.extract&&"function"!=typeof i.content.extract)return!1;if("object"==typeof i.content.transform){for(let t of Object.values(i.content.transform))if("function"!=typeof t)return!1}else if(void 0!==i.content.transform&&"function"!=typeof i.content.transform)return!1;if("boolean"!=typeof i.content.relative&&void 0!==i.content.relative)return!1}return!0}return!1})()||F.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),i.safelist=(()=>{let{content:t,purge:r,safelist:n}=i;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(r?.safelist)?r.safelist:Array.isArray(r?.options?.safelist)?r.options.safelist:[]})(),i.blocklist=(()=>{let{blocklist:t}=i;if(Array.isArray(t)){if(t.every((r=>"string"==typeof r)))return t;F.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),"function"==typeof i.prefix?(F.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),i.prefix=""):i.prefix=i.prefix??"",i.content={relative:(()=>{let{content:t}=i;return t?.relative?t.relative:Z(i,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:r}=i;return Array.isArray(r)?r:Array.isArray(r?.content)?r.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=i.purge?.extract?i.purge.extract:i.content?.extract?i.content.extract:i.purge?.extract?.DEFAULT?i.purge.extract.DEFAULT:i.content?.extract?.DEFAULT?i.content.extract.DEFAULT:i.purge?.options?.extractors?i.purge.options.extractors:i.content?.options?.extractors?i.content.options.extractors:{},r={},n=i.purge?.options?.defaultExtractor?i.purge.options.defaultExtractor:i.content?.options?.defaultExtractor?i.content.options.defaultExtractor:void 0;if(void 0!==n&&(r.DEFAULT=n),"function"==typeof t)r.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:a,extractor:s}of t??[])for(let o of a)r[o]=s;else"object"==typeof t&&null!==t&&Object.assign(r,t);return r})(),transform:(()=>{let t=i.purge?.transform?i.purge.transform:i.content?.transform?i.content.transform:i.purge?.transform?.DEFAULT?i.purge.transform.DEFAULT:i.content?.transform?.DEFAULT?i.content.transform.DEFAULT:{},r={};return"function"==typeof t&&(r.DEFAULT=t),"object"==typeof t&&null!==t&&Object.assign(r,t),r})()};for(let t of i.content.files)if("string"==typeof t&&/{([^,]*?)}/g.test(t)){F.warn("invalid-glob-braces",[`The glob pattern ${Xn(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${Xn(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return i}(es({theme:t0(Zb(Kb(e.map((t=>t?.theme??{}))))),corePlugins:r0(e.map((t=>t.corePlugins))),plugins:i0(i.map((t=>t?.plugins??[])))},...e))}var ps,Xu=C((()=>{l(),fi(),yu(),bu(),Zn(),Su(),pi(),Eu(),kt(),hi(),cr(),or(),cs(),ps={colors:Kn,negative:i=>Object.keys(i).filter((e=>"0"!==i[e])).reduce(((e,t)=>{let r=Xe(i[t]);return void 0!==r&&(e[`-${t}`]=r),e}),{}),breakpoints:i=>Object.keys(i).filter((e=>"string"==typeof i[e])).reduce(((e,t)=>({...e,[`screen-${t}`]:i[t]})),{})}})),bi=v(((eT,Ku)=>{l(),Ku.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:i})=>({...i("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:i})=>i("blur"),backdropBrightness:({theme:i})=>i("brightness"),backdropContrast:({theme:i})=>i("contrast"),backdropGrayscale:({theme:i})=>i("grayscale"),backdropHueRotate:({theme:i})=>i("hueRotate"),backdropInvert:({theme:i})=>i("invert"),backdropOpacity:({theme:i})=>i("opacity"),backdropSaturate:({theme:i})=>i("saturate"),backdropSepia:({theme:i})=>i("sepia"),backgroundColor:({theme:i})=>i("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:i})=>i("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:i})=>({...i("colors"),DEFAULT:i("colors.gray.200","currentColor")}),borderOpacity:({theme:i})=>i("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:i})=>({...i("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:i})=>i("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:i})=>i("colors"),colors:({colors:i})=>({inherit:i.inherit,current:i.current,transparent:i.transparent,black:i.black,white:i.white,slate:i.slate,gray:i.gray,zinc:i.zinc,neutral:i.neutral,stone:i.stone,red:i.red,orange:i.orange,amber:i.amber,yellow:i.yellow,lime:i.lime,green:i.green,emerald:i.emerald,teal:i.teal,cyan:i.cyan,sky:i.sky,blue:i.blue,indigo:i.indigo,violet:i.violet,purple:i.purple,fuchsia:i.fuchsia,pink:i.pink,rose:i.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:i})=>i("borderColor"),divideOpacity:({theme:i})=>i("borderOpacity"),divideWidth:({theme:i})=>i("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:i})=>({none:"none",...i("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:i})=>i("spacing"),gradientColorStops:({theme:i})=>i("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:i})=>({auto:"auto",...i("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:i})=>({...i("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:i,breakpoints:e})=>({...i("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(i("screens"))}),minHeight:({theme:i})=>({...i("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:i})=>({...i("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:i})=>i("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:i})=>i("spacing"),placeholderColor:({theme:i})=>i("colors"),placeholderOpacity:({theme:i})=>i("opacity"),ringColor:({theme:i})=>({DEFAULT:i("colors.blue.500","#3b82f6"),...i("colors")}),ringOffsetColor:({theme:i})=>i("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:i})=>({DEFAULT:"0.5",...i("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:i})=>({...i("spacing")}),scrollPadding:({theme:i})=>i("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:i})=>({...i("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:i})=>({none:"none",...i("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:i})=>i("colors"),textDecorationColor:({theme:i})=>i("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:i})=>({...i("spacing")}),textOpacity:({theme:i})=>i("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:i})=>({...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}}));function vi(i){let e=(i?.presets??[Zu.default]).slice().reverse().flatMap((n=>vi(n instanceof Function?n():n))),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},r=Object.keys(t).filter((n=>Z(i,n))).map((n=>t[n]));return[i,...r,...e]}var Zu,ef=C((()=>{l(),Zu=K(bi()),ze()})),tf={};function dr(...i){let[,...e]=vi(i[0]);return ds([...i,...e])}Ae(tf,{default:()=>dr});var hs=C((()=>{l(),Xu(),ef()})),rf={};Ae(rf,{default:()=>ee});var ee,gt=C((()=>{l(),ee={resolve:i=>i,extname:i=>"."+i.split(".").pop()}}));function xi(i){return"object"==typeof i&&null!==i}function nf(i){return"string"==typeof i||i instanceof String}function ms(i){return xi(i)&&void 0===i.config&&!function(i){return 0===Object.keys(i).length}(i)?null:xi(i)&&void 0!==i.config&&nf(i.config)?ee.resolve(i.config):xi(i)&&void 0!==i.config&&xi(i.config)?null:nf(i)?ee.resolve(i):function(){for(let i of n0)try{let e=ee.resolve(i);return re.accessSync(e),e}catch(e){}return null}()}var n0,sf=C((()=>{l(),je(),gt(),n0=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts"]})),af={};Ae(af,{default:()=>gs});var gs,W,V,ys=C((()=>{l(),gs={parse:i=>({href:i})}})),ws=v((()=>{l()})),ki=v(((fT,uf)=>{l();var of=(ci(),vu),lf=ws(),_t=class extends Error{constructor(e,t,r,n,a,s){super(e),this.name="CssSyntaxError",this.reason=e,a&&(this.file=a),n&&(this.source=n),s&&(this.plugin=s),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,_t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=of.isColorSupported),lf&&e&&(t=lf(t));let o,u,r=t.split(/\r?\n/),n=Math.max(this.line-3,0),a=Math.min(this.line+2,r.length),s=String(a).length;if(e){let{bold:c,red:f,gray:d}=of.createColors(!0);o=p=>c(f(p)),u=p=>d(p)}else o=u=c=>c;return r.slice(n,a).map(((c,f)=>{let d=n+1+f,p=" "+(" "+d).slice(-s)+" | ";if(d===this.line){let m=u(p.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return o(">")+u(p)+c+"\n "+m+o("^")}return" "+u(p)+c})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}};uf.exports=_t,_t.default=_t})),Si=v(((cT,bs)=>{l(),bs.exports.isClean=Symbol("isClean"),bs.exports.my=Symbol("my")})),vs=v(((pT,cf)=>{l();var ff={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};var Ci=class{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)}decl(e,t){let r=this.raw(e,"between","colon"),n=e.prop+r+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let a=(e.raws.between||"")+(t?";":"");this.builder(r+n+a,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n{if(n=u.raws[t],void 0!==n)return!1}))}var i;return void 0===n&&(n=ff[r]),s.rawCache[r]=n,n}rawSemicolon(e){let t;return e.walk((r=>{if(r.nodes&&r.nodes.length&&"decl"===r.last.type&&(t=r.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((r=>{if(r.nodes&&0===r.nodes.length&&(t=r.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){let a=r.raws.before.split("\n");return t=a[a.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let r;return e.walkComments((n=>{if(void 0!==n.raws.before)return r=n.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls((n=>{if(void 0!==n.raws.before)return r=n.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(e){let t;return e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((r=>{if(r.nodes&&r.nodes.length>0&&void 0!==r.raws.after)return t=r.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((r=>{if("decl"!==r.type&&(t=r.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((r=>{if(void 0!==r.raws.between)return t=r.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let n=e.parent,a=0;for(;n&&"root"!==n.type;)a+=1,n=n.parent;if(r.includes("\n")){let s=this.raw(e,null,"indent");if(s.length)for(let o=0;o{l();var l0=vs();function xs(i,e){new l0(e).stringify(i)}pf.exports=xs,xs.default=xs})),mr=v(((hT,df)=>{l();var{isClean:Ai,my:u0}=Si(),f0=ki(),c0=vs(),p0=hr();function ks(i,e){let t=new i.constructor;for(let r in i){if(!Object.prototype.hasOwnProperty.call(i,r)||"proxyCache"===r)continue;let n=i[r],a=typeof n;"parent"===r&&"object"===a?e&&(t[r]=e):"source"===r?t[r]=n:Array.isArray(n)?t[r]=n.map((s=>ks(s,t))):("object"===a&&null!==n&&(n=ks(n)),t[r]=n)}return t}var _i=class{constructor(e={}){this.raws={},this[Ai]=!1,this[u0]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let r of e[t])"function"==typeof r.clone?this.append(r.clone()):this.append(r)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:r,end:n}=this.rangeBy(t);return this.source.input.error(e,{line:r.line,column:r.column},{line:n.line,column:n.column},t)}return new f0(e)}warn(e,t,r){let n={node:this};for(let a in r)n[a]=r[a];return e.warn(t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=p0){e.stringify&&(e=e.stringify);let t="";return e(this,(r=>{t+=r})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=ks(this);for(let r in e)t[r]=e[r];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,r=!1;for(let n of e)n===this?r=!0:r?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new c0).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let r={},n=null==t;t=t||new Map;let a=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||"parent"===s||"proxyCache"===s)continue;let o=this[s];if(Array.isArray(o))r[s]=o.map((u=>"object"==typeof u&&u.toJSON?u.toJSON(null,t):u));else if("object"==typeof o&&o.toJSON)r[s]=o.toJSON(null,t);else if("source"===s){let u=t.get(o.input);null==u&&(u=a,t.set(o.input,a),a++),r[s]={inputId:u,start:o.start,end:o.end}}else r[s]=o}return n&&(r.inputs=[...t.keys()].map((s=>s.toJSON()))),r}positionInside(e){let t=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let a=0;a(e[t]===r||(e[t]=r,("prop"===t||"value"===t||"name"===t||"params"===t||"important"===t||"text"===t)&&e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[Ai]){this[Ai]=!1;let e=this;for(;e=e.parent;)e[Ai]=!1}}get proxyOf(){return this}};df.exports=_i,_i.default=_i})),gr=v(((mT,hf)=>{l();var d0=mr(),Oi=class extends d0{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}};hf.exports=Oi,Oi.default=Oi})),Ss=v(((gT,mf)=>{l(),mf.exports=function(i,e){return{generate:()=>{let t="";return i(e,(r=>{t+=r})),[t]}}}})),yr=v(((yT,gf)=>{l();var h0=mr(),Ei=class extends h0{constructor(e){super(e),this.type="comment"}};gf.exports=Ei,Ei.default=Ei})),it=v(((wT,Af)=>{l();var xf,Cs,As,kf,{isClean:yf,my:wf}=Si(),bf=gr(),vf=yr(),m0=mr();function Sf(i){return i.map((e=>(e.nodes&&(e.nodes=Sf(e.nodes)),delete e.source,e)))}function Cf(i){if(i[yf]=!1,i.proxyOf.nodes)for(let e of i.proxyOf.nodes)Cf(e)}var we=class extends m0{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let r,n,t=this.getIterator();for(;this.indexes[t]{let n;try{n=e(t,r)}catch(a){throw t.addToError(a)}return!1!==n&&t.walk&&(n=t.walk(e)),n}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("decl"===r.type)return t(r,n)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("rule"===r.type)return t(r,n)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("atrule"===r.type)return t(r,n)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let r=this.normalize(t,this.last);for(let n of r)this.proxyOf.nodes.push(n)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let r=this.normalize(t,this.first,"prepend").reverse();for(let n of r)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+r.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let s,r=this.index(e),n=0===r&&"prepend",a=this.normalize(t,this.proxyOf.nodes[r],n).reverse();r=this.index(e);for(let o of a)this.proxyOf.nodes.splice(r,0,o);for(let o in this.indexes)s=this.indexes[o],r<=s&&(this.indexes[o]=s+a.length);return this.markDirty(),this}insertAfter(e,t){let a,r=this.index(e),n=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let s of n)this.proxyOf.nodes.splice(r+1,0,s);for(let s in this.indexes)a=this.indexes[s],r=e&&(this.indexes[r]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls((n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=Sf(xf(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new bf(e)]}else if(e.selector)e=[new Cs(e)];else if(e.name)e=[new As(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new vf(e)]}return e.map((n=>(n[wf]||we.rebuild(n),(n=n.proxyOf).parent&&n.parent.removeChild(n),n[yf]&&Cf(n),void 0===n.raws.before&&t&&void 0!==t.raws.before&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,("name"===t||"params"===t||"selector"===t)&&e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((n=>"function"==typeof n?(a,s)=>n(a.toProxy(),s):n))):"every"===t||"some"===t?r=>e[t](((n,...a)=>r(n.toProxy(),...a))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((r=>r.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};we.registerParse=i=>{xf=i},we.registerRule=i=>{Cs=i},we.registerAtRule=i=>{As=i},we.registerRoot=i=>{kf=i},Af.exports=we,we.default=we,we.rebuild=i=>{"atrule"===i.type?Object.setPrototypeOf(i,As.prototype):"rule"===i.type?Object.setPrototypeOf(i,Cs.prototype):"decl"===i.type?Object.setPrototypeOf(i,bf.prototype):"comment"===i.type?Object.setPrototypeOf(i,vf.prototype):"root"===i.type&&Object.setPrototypeOf(i,kf.prototype),i[wf]=!0,i.nodes&&i.nodes.forEach((e=>{we.rebuild(e)}))}})),Ti=v(((bT,Ef)=>{l();var _f,Of,g0=it(),Ot=class extends g0{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new _f(new Of,this,e).stringify()}};Ot.registerLazyResult=i=>{_f=i},Ot.registerProcessor=i=>{Of=i},Ef.exports=Ot,Ot.default=Ot})),_s=v(((vT,Pf)=>{l();var Tf={};Pf.exports=function(e){Tf[e]||(Tf[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}})),Os=v(((xT,Df)=>{l();var Pi=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in t)this[r]=t[r]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Df.exports=Pi,Pi.default=Pi})),Ii=v(((kT,If)=>{l();var y0=Os(),Di=class{constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new y0(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}};If.exports=Di,Di.default=Di})),Ff=v(((ST,Bf)=>{l();var Es="'".charCodeAt(0),qf='"'.charCodeAt(0),qi="\\".charCodeAt(0),Rf="/".charCodeAt(0),Ri="\n".charCodeAt(0),wr=" ".charCodeAt(0),Mi="\f".charCodeAt(0),Bi="\t".charCodeAt(0),Fi="\r".charCodeAt(0),w0="[".charCodeAt(0),b0="]".charCodeAt(0),v0="(".charCodeAt(0),x0=")".charCodeAt(0),k0="{".charCodeAt(0),S0="}".charCodeAt(0),C0=";".charCodeAt(0),A0="*".charCodeAt(0),_0=":".charCodeAt(0),O0="@".charCodeAt(0),Ni=/[\t\n\f\r "#'()/;[\\\]{}]/g,Li=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,E0=/.[\n"'(/\\]/,Mf=/[\da-f]/i;Bf.exports=function(e,t={}){let a,s,o,u,c,f,d,p,m,w,r=e.css.valueOf(),n=t.ignoreErrors,x=r.length,y=0,b=[],k=[];function _(q){throw e.error("Unclosed "+q,y)}return{back:function(q){k.push(q)},nextToken:function(q){if(k.length)return k.pop();if(y>=x)return;let X=!!q&&q.ignoreUnclosed;switch(a=r.charCodeAt(y),a){case Ri:case wr:case Bi:case Fi:case Mi:s=y;do{s+=1,a=r.charCodeAt(s)}while(a===wr||a===Ri||a===Bi||a===Fi||a===Mi);w=["space",r.slice(y,s)],y=s-1;break;case w0:case b0:case k0:case S0:case _0:case C0:case x0:{let le=String.fromCharCode(a);w=[le,le,y];break}case v0:if(p=b.length?b.pop()[1]:"",m=r.charCodeAt(y+1),"url"===p&&m!==Es&&m!==qf&&m!==wr&&m!==Ri&&m!==Bi&&m!==Mi&&m!==Fi){s=y;do{if(f=!1,s=r.indexOf(")",s+1),-1===s){if(n||X){s=y;break}_("bracket")}for(d=s;r.charCodeAt(d-1)===qi;)d-=1,f=!f}while(f);w=["brackets",r.slice(y,s+1),y,s],y=s}else s=r.indexOf(")",y+1),u=r.slice(y,s+1),-1===s||E0.test(u)?w=["(","(",y]:(w=["brackets",u,y,s],y=s);break;case Es:case qf:o=a===Es?"'":'"',s=y;do{if(f=!1,s=r.indexOf(o,s+1),-1===s){if(n||X){s=y+1;break}_("string")}for(d=s;r.charCodeAt(d-1)===qi;)d-=1,f=!f}while(f);w=["string",r.slice(y,s+1),y,s],y=s;break;case O0:Ni.lastIndex=y+1,Ni.test(r),s=0===Ni.lastIndex?r.length-1:Ni.lastIndex-2,w=["at-word",r.slice(y,s+1),y,s],y=s;break;case qi:for(s=y,c=!0;r.charCodeAt(s+1)===qi;)s+=1,c=!c;if(a=r.charCodeAt(s+1),c&&a!==Rf&&a!==wr&&a!==Ri&&a!==Bi&&a!==Fi&&a!==Mi&&(s+=1,Mf.test(r.charAt(s)))){for(;Mf.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===wr&&(s+=1)}w=["word",r.slice(y,s+1),y,s],y=s;break;default:a===Rf&&r.charCodeAt(y+1)===A0?(s=r.indexOf("*/",y+2)+1,0===s&&(n||X?s=r.length:_("comment")),w=["comment",r.slice(y,s+1),y,s],y=s):(Li.lastIndex=y+1,Li.test(r),s=0===Li.lastIndex?r.length-1:Li.lastIndex-2,w=["word",r.slice(y,s+1),y,s],b.push(w),y=s)}return y++,w},endOfFile:function(){return 0===k.length&&y>=x},position:function(){return y}}}})),$i=v(((CT,Lf)=>{l();var Nf=it(),br=class extends Nf{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Lf.exports=br,br.default=br,Nf.registerAtRule(br)})),Et=v(((AT,Vf)=>{l();var jf,zf,$f=it(),yt=class extends $f{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,t,r){let n=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let a of n)a.raws.before=t.raws.before;return n}toResult(e={}){return new jf(new zf,this,e).stringify()}};yt.registerLazyResult=i=>{jf=i},yt.registerProcessor=i=>{zf=i},Vf.exports=yt,yt.default=yt,$f.registerRoot(yt)})),Ts=v(((_T,Uf)=>{l();var vr={split(i,e,t){let r=[],n="",a=!1,s=0,o=!1,u="",c=!1;for(let f of i)c?c=!1:"\\"===f?c=!0:o?f===u&&(o=!1):'"'===f||"'"===f?(o=!0,u=f):"("===f?s+=1:")"===f?s>0&&(s-=1):0===s&&e.includes(f)&&(a=!0),a?(""!==n&&r.push(n.trim()),n="",a=!1):n+=f;return(t||""!==n)&&r.push(n.trim()),r},space(i){let e=[" ","\n","\t"];return vr.split(i,e)},comma:i=>vr.split(i,[","],!0)};Uf.exports=vr,vr.default=vr})),ji=v(((OT,Gf)=>{l();var Wf=it(),T0=Ts(),xr=class extends Wf{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return T0.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}};Gf.exports=xr,xr.default=xr,Wf.registerRule(xr)})),Xf=v(((ET,Jf)=>{l();var P0=gr(),D0=Ff(),I0=yr(),q0=$i(),R0=Et(),Hf=ji(),Yf={empty:!0,space:!0};Jf.exports=class{constructor(e){this.input=e,this.root=new R0,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=D0(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new I0;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}emptyRule(e){let t=new Hf;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,r=null,n=!1,a=null,s=[],o=e[1].startsWith("--"),u=[],c=e;for(;c;){if(r=c[0],u.push(c),"("===r||"["===r)a||(a=c),s.push("("===r?")":"]");else if(o&&n&&"{"===r)a||(a=c),s.push("}");else if(0===s.length){if(";"===r){if(n)return void this.decl(u,o);break}if("{"===r)return void this.rule(u);if("}"===r){this.tokenizer.back(u.pop()),t=!0;break}":"===r&&(n=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(a=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(a),t&&n){if(!o)for(;u.length&&(c=u[u.length-1][0],"space"===c||"comment"===c);)this.tokenizer.back(u.pop());this.decl(u,o)}else this.unknownWord(u)}rule(e){e.pop();let t=new Hf;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let r=new P0;this.init(r,e[0][2]);let a,n=e[e.length-1];for(";"===n[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(n[3]||n[2]||function(i){for(let e=i.length-1;e>=0;e--){let t=i[e],r=t[3]||t[2];if(r)return r}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let c=e[0][0];if(":"===c||"space"===c||"comment"===c)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(a=e.shift(),":"===a[0]){r.raws.between+=a[1];break}"word"===a[0]&&/\w/.test(a[1])&&this.unknownWord([a]),r.raws.between+=a[1]}("_"===r.prop[0]||"*"===r.prop[0])&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o,s=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(a=e[c],"!important"===a[1].toLowerCase()){r.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f," !important"!==f&&(r.raws.important=f);break}if("important"===a[1].toLowerCase()){let f=e.slice(0),d="";for(let p=c;p>0;p--){let m=f[p][0];if(0===d.trim().indexOf("!")&&"space"!==m)break;d=f.pop()[1]+d}0===d.trim().indexOf("!")&&(r.important=!0,r.raws.important=d,e=f)}if("space"!==a[0]&&"comment"!==a[0])break}e.some((c=>"space"!==c[0]&&"comment"!==c[0]))&&(r.raws.between+=s.map((c=>c[1])).join(""),s=[]),this.raw(r,"value",s.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t=new q0;t.name=e[1].slice(1),""===t.name&&this.unnamedAtrule(t,e),this.init(t,e[2]);let r,n,a,s=!1,o=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(r=(e=this.tokenizer.nextToken())[0],"("===r||"["===r?c.push("("===r?")":"]"):"{"===r&&c.length>0?c.push("}"):r===c[c.length-1]&&c.pop(),0===c.length){if(";"===r){t.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===r){o=!0;break}if("}"===r){if(u.length>0){for(a=u.length-1,n=u[a];n&&"space"===n[0];)n=u[--a];n&&(t.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}u.push(e)}else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(t.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(t,"params",u),s&&(e=u[u.length-1],t.source.end=this.getPosition(e[3]||e[2]),this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,r,n){let a,s,f,d,o=r.length,u="",c=!0;for(let p=0;pm+w[1]),"");e.raws[t]={value:u,raw:p}}e[t]=u}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n=0&&(n=e[a],"space"===n[0]||(r+=1,2!==r));a--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}}})),Kf=v((()=>{l()})),ec=v(((DT,Zf)=>{l();Zf.exports={nanoid:(i=21)=>{let e="",t=i;for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return e},customAlphabet:(i,e=21)=>(t=e)=>{let r="",n=t;for(;n--;)r+=i[Math.random()*i.length|0];return r}}})),Ps=v(((IT,tc)=>{l(),tc.exports={}})),Vi=v(((qT,sc)=>{l();var{SourceMapConsumer:L0,SourceMapGenerator:$0}=Kf(),{fileURLToPath:rc,pathToFileURL:zi}=(ys(),af),{resolve:Ds,isAbsolute:Is}=(gt(),rf),{nanoid:j0}=ec(),qs=ws(),ic=ki(),z0=Ps(),Rs=Symbol("fromOffsetCache"),V0=Boolean(L0&&$0),nc=Boolean(Ds&&Is),kr=class{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!nc||/^\w+:\/\//.test(t.from)||Is(t.from)?this.file=t.from:this.file=Ds(t.from)),nc&&V0){let r=new z0(this.css,t);if(r.text){this.map=r;let n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[Rs])r=this[Rs];else{let a=this.css.split("\n");r=new Array(a.length);let s=0;for(let o=0,u=a.length;o=t)n=r.length-1;else{let s,a=r.length-2;for(;n>1),e=r[s+1])){n=s;break}n=s+1}}return{line:n+1,col:e-r[n]+1}}error(e,t,r,n={}){let a,s,o;if(t&&"object"==typeof t){let c=t,f=r;if("number"==typeof c.offset){let d=this.fromOffset(c.offset);t=d.line,r=d.col}else t=c.line,r=c.column;if("number"==typeof f.offset){let d=this.fromOffset(f.offset);s=d.line,o=d.col}else s=f.line,o=f.column}else if(!r){let c=this.fromOffset(t);t=c.line,r=c.col}let u=this.origin(t,r,s,o);return a=u?new ic(e,void 0===u.endLine?u.line:{line:u.line,column:u.column},void 0===u.endLine?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):new ic(e,void 0===s?t:{line:t,column:r},void 0===s?r:{line:s,column:o},this.css,this.file,n.plugin),a.input={line:t,column:r,endLine:s,endColumn:o,source:this.css},this.file&&(zi&&(a.input.url=zi(this.file).toString()),a.input.file=this.file),a}origin(e,t,r,n){if(!this.map)return!1;let o,u,a=this.map.consumer(),s=a.originalPositionFor({line:e,column:t});if(!s.source)return!1;"number"==typeof r&&(o=a.originalPositionFor({line:r,column:n})),u=Is(s.source)?zi(s.source):new URL(s.source,this.map.consumer().sourceRoot||zi(this.map.mapFile));let c={url:u.toString(),line:s.line,column:s.column,endLine:o&&o.line,endColumn:o&&o.column};if("file:"===u.protocol){if(!rc)throw new Error("file: protocol is not available in this PostCSS build");c.file=rc(u)}let f=a.sourceContentFor(s.source);return f&&(c.source=f),c}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ds(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};sc.exports=kr,kr.default=kr,qs&&qs.registerInput&&qs.registerInput(kr)})),Wi=v(((RT,ac)=>{l();var U0=it(),W0=Xf(),G0=Vi();function Ui(i,e){let t=new G0(i,e),r=new W0(t);try{r.parse()}catch(n){throw n}return r.root}ac.exports=Ui,Ui.default=Ui,U0.registerParse(Ui)})),Fs=v(((BT,fc)=>{l();var{isClean:Ie,my:H0}=Si(),Y0=Ss(),Q0=hr(),J0=it(),X0=Ti(),oc=(_s(),Ii()),K0=Wi(),Z0=Et(),ev={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},tv={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},rv={postcssPlugin:!0,prepare:!0,Once:!0},Tt=0;function Sr(i){return"object"==typeof i&&"function"==typeof i.then}function lc(i){let e=!1,t=ev[i.type];return"decl"===i.type?e=i.prop.toLowerCase():"atrule"===i.type&&(e=i.name.toLowerCase()),e&&i.append?[t,t+"-"+e,Tt,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:i.append?[t,Tt,t+"Exit"]:[t,t+"Exit"]}function uc(i){let e;return e="document"===i.type?["Document",Tt,"DocumentExit"]:"root"===i.type?["Root",Tt,"RootExit"]:lc(i),{node:i,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function Ms(i){return i[Ie]=!1,i.nodes&&i.nodes.forEach((e=>Ms(e))),i}var Bs={},Ve=class{constructor(e,t,r){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof Ve||t instanceof oc)n=Ms(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let a=K0;r.syntax&&(a=r.syntax.parse),r.parser&&(a=r.parser),a.parse&&(a=a.parse);try{n=a(t,r)}catch(s){this.processed=!0,this.error=s}n&&!n[H0]&&J0.rebuild(n)}else n=Ms(t);this.result=new oc(e,n,r),this.helpers={...Bs,result:this.result,postcss:Bs},this.plugins=this.processor.plugins.map((a=>"object"==typeof a&&a.prepare?{...a,...a.prepare(this.result)}:a))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){if(Sr(this.runOnRoot(e)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Ie];)e[Ie]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Q0;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new Y0(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[Ie]=!0;let t=lc(e);for(let r of t)if(r===Tt)e.nodes&&e.each((n=>{n[Ie]||this.walkSync(n)}));else{let n=this.listeners[r];if(n&&this.visitSync(n,e.toProxy()))return}}visitSync(e,t){for(let[r,n]of e){let a;this.result.lastPlugin=r;try{a=n(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(Sr(a))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((r=>e.Once(r,this.helpers)));return Sr(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(n){console&&console.error&&console.error(n)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let r=this.visitTick(t);if(Sr(r))try{await r}catch(n){let a=t[t.length-1].node;throw this.handleError(n,a)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let n=e.nodes.map((a=>r(a,this.helpers)));await Promise.all(n)}else await r(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(t,r,n)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([t,n])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!tv[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!rv[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{Bs=i},fc.exports=Ve,Ve.default=Ve,Z0.registerLazyResult(Ve),X0.registerLazyResult(Ve)})),pc=v(((NT,cc)=>{l();var iv=Ss(),nv=hr(),sv=(_s(),Wi()),av=Ii(),Gi=class{constructor(e,t,r){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let n,a=nv;this.result=new av(this._processor,n,this._opts),this.result.css=t;let s=this;Object.defineProperty(this.result,"root",{get:()=>s.root});let o=new iv(a,n,this._opts,t);if(o.isMap()){let[u,c]=o.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=sv;try{e=t(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};cc.exports=Gi,Gi.default=Gi})),hc=v(((LT,dc)=>{l();var ov=pc(),lv=Fs(),uv=Ti(),fv=Et(),Pt=class{constructor(e=[]){this.version="8.4.24",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new ov(this,e,t):new lv(this,e,t)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}};dc.exports=Pt,Pt.default=Pt,fv.registerProcessor(Pt),uv.registerProcessor(Pt)})),gc=v((($T,mc)=>{l();var cv=gr(),pv=Ps(),dv=yr(),hv=$i(),mv=Vi(),gv=Et(),yv=ji();function Cr(i,e){if(Array.isArray(i))return i.map((n=>Cr(n)));let{inputs:t,...r}=i;if(t){e=[];for(let n of t){let a={...n,__proto__:mv.prototype};a.map&&(a.map={...a.map,__proto__:pv.prototype}),e.push(a)}}if(r.nodes&&(r.nodes=i.nodes.map((n=>Cr(n,e)))),r.source){let{inputId:n,...a}=r.source;r.source=a,null!=n&&(r.source.input=e[n])}if("root"===r.type)return new gv(r);if("decl"===r.type)return new cv(r);if("rule"===r.type)return new yv(r);if("comment"===r.type)return new dv(r);if("atrule"===r.type)return new hv(r);throw new Error("Unknown node type: "+i.type)}mc.exports=Cr,Cr.default=Cr})),ge=v(((jT,Sc)=>{l();var wv=ki(),yc=gr(),bv=Fs(),vv=it(),Ns=hc(),xv=hr(),kv=gc(),wc=Ti(),Sv=Os(),bc=yr(),vc=$i(),Cv=Ii(),Av=Vi(),_v=Wi(),Ov=Ts(),xc=ji(),kc=Et(),Ev=mr();function z(...i){return 1===i.length&&Array.isArray(i[0])&&(i=i[0]),new Ns(i)}z.plugin=function(e,t){let a,r=!1;function n(...s){console&&console.warn&&!r&&(r=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),h.env.LANG&&h.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let o=t(...s);return o.postcssPlugin=e,o.postcssVersion=(new Ns).version,o}return Object.defineProperty(n,"postcss",{get:()=>(a||(a=n()),a)}),n.process=function(s,o,u){return z([n(u)]).process(s,o)},n},z.stringify=xv,z.parse=_v,z.fromJSON=kv,z.list=Ov,z.comment=i=>new bc(i),z.atRule=i=>new vc(i),z.decl=i=>new yc(i),z.rule=i=>new xc(i),z.root=i=>new kc(i),z.document=i=>new wc(i),z.CssSyntaxError=wv,z.Declaration=yc,z.Container=vv,z.Processor=Ns,z.Document=wc,z.Comment=bc,z.Warning=Sv,z.AtRule=vc,z.Result=Cv,z.Input=Av,z.Rule=xc,z.Root=kc,z.Node=Ev,bv.registerPostcss(z),Sc.exports=z,z.default=z})),nt=C((()=>{l(),W=K(ge()),V=W.default,W.default.stringify,W.default.fromJSON,W.default.plugin,W.default.parse,W.default.list,W.default.document,W.default.comment,W.default.atRule,W.default.rule,W.default.decl,W.default.root,W.default.CssSyntaxError,W.default.Declaration,W.default.Container,W.default.Processor,W.default.Document,W.default.Comment,W.default.Warning,W.default.AtRule,W.default.Result,W.default.Input,W.default.Rule,W.default.Root,W.default.Node})),Ls=v(((d3,Cc)=>{l(),Cc.exports=function(i,e,t,r,n){for(e=e.split?e.split("."):e,r=0;r{function Tv(i){for(var e=i.toLowerCase(),t="",r=!1,n=0;n<6&&void 0!==e[n];n++){var a=e.charCodeAt(n);if(r=32===a,!(a>=97&&a<=102||a>=48&&a<=57))break;t+=e[n]}if(0!==t.length){var o=parseInt(t,16);return o>=55296&&o<=57343||0===o||o>1114111?["�",t.length+(r?1:0)]:[String.fromCodePoint(o),t.length+(r?1:0)]}}l(),Hi.__esModule=!0,Hi.default=function(i){if(!Pv.test(i))return i;for(var t="",r=0;r{l(),Qi.__esModule=!0,Qi.default=function(i){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r0;){var n=t.shift();if(!i[n])return;i=i[n]}return i},_c.exports=Qi.default})),Tc=v(((Ji,Ec)=>{l(),Ji.__esModule=!0,Ji.default=function(i){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r0;){var n=t.shift();i[n]||(i[n]={}),i=i[n]}},Ec.exports=Ji.default})),Dc=v(((Xi,Pc)=>{l(),Xi.__esModule=!0,Xi.default=function(i){for(var e="",t=i.indexOf("/*"),r=0;t>=0;){e+=i.slice(r,t);var n=i.indexOf("*/",t+2);if(n<0)return e;r=n+2,t=i.indexOf("/*",r)}return e+=i.slice(r)},Pc.exports=Xi.default})),Ar=v((qe=>{l(),qe.__esModule=!0,qe.unesc=qe.stripComments=qe.getProp=qe.ensureObject=void 0;var Mv=Ki(Yi());qe.unesc=Mv.default;var Bv=Ki(Oc());qe.getProp=Bv.default;var Fv=Ki(Tc());qe.ensureObject=Fv.default;var Nv=Ki(Dc());function Ki(i){return i&&i.__esModule?i:{default:i}}qe.stripComments=Nv.default})),Ue=v(((_r,Rc)=>{l(),_r.__esModule=!0,_r.default=void 0;var Ic=Ar();function qc(i,e){for(var t=0;tr||this.source.end.linen||this.source.end.line===r&&this.source.end.column{l(),G.__esModule=!0,G.UNIVERSAL=G.TAG=G.STRING=G.SELECTOR=G.ROOT=G.PSEUDO=G.NESTING=G.ID=G.COMMENT=G.COMBINATOR=G.CLASS=G.ATTRIBUTE=void 0;G.TAG="tag";G.STRING="string";G.SELECTOR="selector";G.ROOT="root";G.PSEUDO="pseudo";G.NESTING="nesting";G.ID="id";G.COMMENT="comment";G.COMBINATOR="combinator";G.CLASS="class";G.ATTRIBUTE="attribute";G.UNIVERSAL="universal"})),Zi=v(((Or,Nc)=>{l(),Or.__esModule=!0,Or.default=void 0;var i,ex=(i=Ue())&&i.__esModule?i:{default:i},We=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=Mc(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(se());function Mc(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(Mc=function(n){return n?t:e})(i)}function ix(i,e){var t="undefined"!=typeof Symbol&&i[Symbol.iterator]||i["@@iterator"];if(t)return(t=t.call(i)).next.bind(t);if(Array.isArray(i)||(t=function(i,e){if(i){if("string"==typeof i)return Bc(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if("Object"===t&&i.constructor&&(t=i.constructor.name),"Map"===t||"Set"===t)return Array.from(i);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Bc(i,e)}}(i))||e&&i&&"number"==typeof i.length){t&&(i=t);var r=0;return function(){return r>=i.length?{done:!0}:{done:!1,value:i[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Bc(i,e){(null==e||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t=n&&(this.indexes[s]=a-1);return this},t.removeAll=function(){for(var a,n=ix(this.nodes);!(a=n()).done;){a.value.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,a){a.parent=this;var o,s=this.index(n);for(var u in this.nodes.splice(s+1,0,a),a.parent=this,this.indexes)s<=(o=this.indexes[u])&&(this.indexes[u]=o+1);return this},t.insertBefore=function(n,a){a.parent=this;var o,s=this.index(n);for(var u in this.nodes.splice(s,0,a),a.parent=this,this.indexes)(o=this.indexes[u])<=s&&(this.indexes[u]=o+1);return this},t._findChildAtPosition=function(n,a){var s=void 0;return this.each((function(o){if(o.atPosition){var u=o.atPosition(n,a);if(u)return s=u,!1}else if(o.isAtPosition(n,a))return s=o,!1})),s},t.atPosition=function(n,a){if(this.isAtPosition(n,a))return this._findChildAtPosition(n,a)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var a=this.lastEach;if(this.indexes[a]=0,this.length){for(var s,o;this.indexes[a]{l(),Er.__esModule=!0,Er.default=void 0;var i,lx=(i=Zi())&&i.__esModule?i:{default:i},ux=se();function Lc(i,e){for(var t=0;t{l(),Tr.__esModule=!0,Tr.default=void 0;var i,hx=(i=Zi())&&i.__esModule?i:{default:i},mx=se();function Vs(i,e){return(Vs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var wx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=mx.SELECTOR,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Vs(i,e)}(e,i),e}(hx.default);Tr.default=wx,jc.exports=Tr.default})),en=v(((g3,zc)=>{l();var vx={}.hasOwnProperty,kx=/[ -,\.\/:-@\[-\^`\{-~]/,Sx=/[ -,\.\/:-@\[\]\^`\{-~]/,Cx=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,Ws=function i(e,t){t=function(e,t){if(!e)return t;var r={};for(var n in t)r[n]=vx.call(e,n)?e[n]:t[n];return r}(t,i.options),"single"!=t.quotes&&"double"!=t.quotes&&(t.quotes="single");for(var r="double"==t.quotes?'"':"'",n=t.isIdentifier,a=e.charAt(0),s="",o=0,u=e.length;o126){if(f>=55296&&f<=56319&&o{l(),Pr.__esModule=!0,Pr.default=void 0;var Ax=Vc(en()),_x=Ar(),Ox=Vc(Ue()),Ex=se();function Vc(i){return i&&i.__esModule?i:{default:i}}function Uc(i,e){for(var t=0;t{l(),Dr.__esModule=!0,Dr.default=void 0;var i,Ix=(i=Ue())&&i.__esModule?i:{default:i},qx=se();function Ys(i,e){return(Ys=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var Bx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=qx.COMMENT,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Ys(i,e)}(e,i),e}(Ix.default);Dr.default=Bx,Gc.exports=Dr.default})),Xs=v(((Ir,Hc)=>{l(),Ir.__esModule=!0,Ir.default=void 0;var i,Fx=(i=Ue())&&i.__esModule?i:{default:i},Nx=se();function Js(i,e){return(Js=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var jx=function(i){function e(r){var n;return(n=i.call(this,r)||this).type=Nx.ID,n}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Js(i,e)}(e,i),e.prototype.valueToString=function(){return"#"+i.prototype.valueToString.call(this)},e}(Fx.default);Ir.default=jx,Hc.exports=Ir.default})),tn=v(((qr,Jc)=>{l(),qr.__esModule=!0,qr.default=void 0;var zx=Yc(en()),Vx=Ar();function Yc(i){return i&&i.__esModule?i:{default:i}}function Qc(i,e){for(var t=0;t{l(),Rr.__esModule=!0,Rr.default=void 0;var i,Yx=(i=tn())&&i.__esModule?i:{default:i},Qx=se();function Zs(i,e){return(Zs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var Kx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=Qx.TAG,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Zs(i,e)}(e,i),e}(Yx.default);Rr.default=Kx,Xc.exports=Rr.default})),ra=v(((Mr,Kc)=>{l(),Mr.__esModule=!0,Mr.default=void 0;var i,Zx=(i=Ue())&&i.__esModule?i:{default:i},e1=se();function ta(i,e){return(ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var i1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=e1.STRING,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ta(i,e)}(e,i),e}(Zx.default);Mr.default=i1,Kc.exports=Mr.default})),na=v(((Br,Zc)=>{l(),Br.__esModule=!0,Br.default=void 0;var i,n1=(i=Zi())&&i.__esModule?i:{default:i},s1=se();function ia(i,e){return(ia=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var l1=function(i){function e(r){var n;return(n=i.call(this,r)||this).type=s1.PSEUDO,n}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ia(i,e)}(e,i),e.prototype.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(n1.default);Br.default=l1,Zc.exports=Br.default})),ep={};function u1(i){return i}Ae(ep,{deprecate:()=>u1});var tp=C((()=>{l()})),ip=v(((y3,rp)=>{l(),rp.exports=(tp(),ep).deprecate})),fa=v((Lr=>{l(),Lr.__esModule=!0,Lr.default=void 0,Lr.unescapeValue=la;var sa,Fr=aa(en()),f1=aa(Yi()),c1=aa(tn()),p1=se();function aa(i){return i&&i.__esModule?i:{default:i}}function np(i,e){for(var t=0;t0&&!n.quoted&&0===o.before.length&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),sp(s,o)})))),a.push("]"),a.push(this.rawSpaceAfter),a.join("")},function(i,e,t){e&&np(i.prototype,e),t&&np(i,t),Object.defineProperty(i,"prototype",{writable:!1})}(e,[{key:"quoted",get:function(){var n=this.quoteMark;return"'"===n||'"'===n},set:function(n){y1()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){this._constructed?this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue()):this._quoteMark=n}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var a=la(n),s=a.deprecatedUsage,o=a.unescaped,u=a.quoteMark;if(s&&g1(),o===this._value&&u===this._quoteMark)return;this._value=o,this._quoteMark=u,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&("I"===this.raws.insensitiveFlag||"i"===this.raws.insensitiveFlag)&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(c1.default);Lr.default=rn,rn.NO_QUOTE=null,rn.SINGLE_QUOTE="'",rn.DOUBLE_QUOTE='"';var ua=((sa={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}}).null={isIdentifier:!0},sa);function sp(i,e){return""+e.before+i+e.after}})),pa=v((($r,ap)=>{l(),$r.__esModule=!0,$r.default=void 0;var i,v1=(i=tn())&&i.__esModule?i:{default:i},x1=se();function ca(i,e){return(ca=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var C1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=x1.UNIVERSAL,r.value="*",r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ca(i,e)}(e,i),e}(v1.default);$r.default=C1,ap.exports=$r.default})),ha=v(((jr,op)=>{l(),jr.__esModule=!0,jr.default=void 0;var i,A1=(i=Ue())&&i.__esModule?i:{default:i},_1=se();function da(i,e){return(da=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var T1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=_1.COMBINATOR,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,da(i,e)}(e,i),e}(A1.default);jr.default=T1,op.exports=jr.default})),ga=v(((zr,lp)=>{l(),zr.__esModule=!0,zr.default=void 0;var i,P1=(i=Ue())&&i.__esModule?i:{default:i},D1=se();function ma(i,e){return(ma=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var R1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=D1.NESTING,r.value="&",r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ma(i,e)}(e,i),e}(P1.default);zr.default=R1,lp.exports=zr.default})),fp=v(((nn,up)=>{l(),nn.__esModule=!0,nn.default=function(i){return i.sort((function(e,t){return e-t}))},up.exports=nn.default})),ya=v((D=>{l(),D.__esModule=!0,D.word=D.tilde=D.tab=D.str=D.space=D.slash=D.singleQuote=D.semicolon=D.plus=D.pipe=D.openSquare=D.openParenthesis=D.newline=D.greaterThan=D.feed=D.equals=D.doubleQuote=D.dollar=D.cr=D.comment=D.comma=D.combinator=D.colon=D.closeSquare=D.closeParenthesis=D.caret=D.bang=D.backslash=D.at=D.asterisk=D.ampersand=void 0;D.ampersand=38;D.asterisk=42;D.at=64;D.comma=44;D.colon=58;D.semicolon=59;D.openParenthesis=40;D.closeParenthesis=41;D.openSquare=91;D.closeSquare=93;D.dollar=36;D.tilde=126;D.caret=94;D.plus=43;D.equals=61;D.pipe=124;D.greaterThan=62;D.space=32;D.singleQuote=39;D.doubleQuote=34;D.slash=47;D.bang=33;D.backslash=92;D.cr=13;D.feed=12;D.newline=10;D.tab=9;D.str=39;D.comment=-1;D.word=-2;D.combinator=-3})),hp=v((Vr=>{l(),Vr.__esModule=!0,Vr.FIELDS=void 0,Vr.default=function(i){var c,d,p,m,w,x,y,b,k,S,_,O,e=[],t=i.css.valueOf(),n=t.length,a=-1,s=1,o=0,u=0;function I(B,q){if(!i.safe)throw i.error("Unclosed "+B,s,o-a,o);b=(t+=q).length-1}for(;o0?(k=s+x,S=b-y[x].length):(k=s,S=a),O=E.comment,s=k,p=k,d=b-S):c===E.slash?(O=c,p=s,d=o-a,u=(b=o)+1):(b=mk(t,o),O=E.word,p=s,d=b-a),u=b+1}e.push([O,s,o-a,p,d,o,u]),S&&(a=S,S=null),o=u}return e};var Dt,U,E=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=pp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(ya());function pp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(pp=function(n){return n?t:e})(i)}var sn,dk=((Dt={})[E.tab]=!0,Dt[E.newline]=!0,Dt[E.cr]=!0,Dt[E.feed]=!0,Dt),hk=((U={})[E.space]=!0,U[E.tab]=!0,U[E.newline]=!0,U[E.cr]=!0,U[E.feed]=!0,U[E.ampersand]=!0,U[E.asterisk]=!0,U[E.bang]=!0,U[E.comma]=!0,U[E.colon]=!0,U[E.semicolon]=!0,U[E.openParenthesis]=!0,U[E.closeParenthesis]=!0,U[E.openSquare]=!0,U[E.closeSquare]=!0,U[E.singleQuote]=!0,U[E.doubleQuote]=!0,U[E.plus]=!0,U[E.pipe]=!0,U[E.tilde]=!0,U[E.greaterThan]=!0,U[E.equals]=!0,U[E.dollar]=!0,U[E.caret]=!0,U[E.slash]=!0,U),wa={},dp="0123456789abcdefABCDEF";for(sn=0;sn<22;sn++)wa[dp.charCodeAt(sn)]=!0;function mk(i,e){var r,t=e;do{if(r=i.charCodeAt(t),hk[r])return t-1;r===E.backslash?t=gk(i,t)+1:t++}while(t{l(),Ur.__esModule=!0,Ur.default=void 0;var wt,ka,bk=be(zs()),ba=be(Us()),vk=be(Hs()),mp=be(Qs()),xk=be(Xs()),kk=be(ea()),va=be(ra()),Sk=be(na()),gp=an(fa()),Ck=be(pa()),xa=be(ha()),Ak=be(ga()),_k=be(fp()),A=an(hp()),T=an(ya()),Ok=an(se()),Q=Ar();function yp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(yp=function(n){return n?t:e})(i)}function an(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=yp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}function be(i){return i&&i.__esModule?i:{default:i}}function wp(i,e){for(var t=0;tthis.position&&(d=this.parseWhitespaceEquivalentTokens(n)),this.isNamedCombinator()?p=this.namedCombinator():this.currToken[A.FIELDS.TYPE]===T.combinator?(p=new xa.default({value:this.content(),source:It(this.currToken),sourceIndex:this.currToken[A.FIELDS.START_POS]}),this.position++):Sa[this.currToken[A.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var m=this.convertWhitespaceNodesToSpace(d),w=m.space,x=m.rawSpace;p.spaces.before=w,p.rawSpaceBefore=x}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),b=y.space,k=y.rawSpace;k||(k=b);var S={},_={spaces:{}};b.endsWith(" ")&&k.endsWith(" ")?(S.before=b.slice(0,b.length-1),_.spaces.before=k.slice(0,k.length-1)):b.startsWith(" ")&&k.startsWith(" ")?(S.after=b.slice(1),_.spaces.after=k.slice(1)):_.value=k,p=new xa.default({value:" ",source:Ca(f,this.tokens[this.position-1]),sourceIndex:f[A.FIELDS.START_POS],spaces:S,raws:_})}return this.currToken&&this.currToken[A.FIELDS.TYPE]===T.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)}var a=this.parseWhitespaceEquivalentTokens(n);if(a.length>0){var s=this.current.last;if(s){var o=this.convertWhitespaceNodesToSpace(a),u=o.space,c=o.rawSpace;void 0!==c&&(s.rawSpaceAfter+=c),s.spaces.after+=u}else a.forEach((function(O){return r.newNode(O)}))}},e.comma=function(){if(this.position===this.tokens.length-1)return this.root.trailingComma=!0,void this.position++;this.current._inferEndPosition();var r=new ba.default({source:{start:bp(this.tokens[this.position+1])}});this.current.parent.append(r),this.current=r,this.position++},e.comment=function(){var r=this.currToken;this.newNode(new mp.default({value:this.content(),source:It(r),sourceIndex:r[A.FIELDS.START_POS]})),this.position++},e.error=function(r,n){throw this.root.error(r,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[A.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[A.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[A.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[A.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[A.FIELDS.START_POS])},e.namespace=function(){var r=this.prevToken&&this.content(this.prevToken)||!0;return this.nextToken[A.FIELDS.TYPE]===T.word?(this.position++,this.word(r)):this.nextToken[A.FIELDS.TYPE]===T.asterisk?(this.position++,this.universal(r)):void this.unexpectedPipe()},e.nesting=function(){if(this.nextToken&&"|"===this.content(this.nextToken))return void this.position++;var n=this.currToken;this.newNode(new Ak.default({value:this.content(),source:It(n),sourceIndex:n[A.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var r=this.current.last,n=1;if(this.position++,r&&r.type===Ok.PSEUDO){var a=new ba.default({source:{start:bp(this.tokens[this.position-1])}}),s=this.current;for(r.append(a),this.current=a;this.position1&&r.nextToken&&r.nextToken[A.FIELDS.TYPE]===T.openParenthesis&&r.error("Misplaced parenthesis.",{index:r.nextToken[A.FIELDS.START_POS]})})):this.expected(["pseudo-class","pseudo-element"],this.position-1)},e.space=function(){var r=this.content();0===this.position||this.prevToken[A.FIELDS.TYPE]===T.comma||this.prevToken[A.FIELDS.TYPE]===T.openParenthesis||this.current.nodes.every((function(n){return"comment"===n.type}))?(this.spaces=this.optionalSpace(r),this.position++):this.position===this.tokens.length-1||this.nextToken[A.FIELDS.TYPE]===T.comma||this.nextToken[A.FIELDS.TYPE]===T.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(r),this.position++):this.combinator()},e.string=function(){var r=this.currToken;this.newNode(new va.default({value:this.content(),source:It(r),sourceIndex:r[A.FIELDS.START_POS]})),this.position++},e.universal=function(r){var n=this.nextToken;if(n&&"|"===this.content(n))return this.position++,this.namespace();var a=this.currToken;this.newNode(new Ck.default({value:this.content(),source:It(a),sourceIndex:a[A.FIELDS.START_POS]}),r),this.position++},e.splitWord=function(r,n){for(var a=this,s=this.nextToken,o=this.content();s&&~[T.dollar,T.caret,T.equals,T.word].indexOf(s[A.FIELDS.TYPE]);){this.position++;var u=this.content();if(o+=u,u.lastIndexOf("\\")===u.length-1){var c=this.nextToken;c&&c[A.FIELDS.TYPE]===T.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}s=this.nextToken}var f=Aa(o,".").filter((function(w){var x="\\"===o[w-1],y=/^\d+\.\d+%$/.test(o);return!x&&!y})),d=Aa(o,"#").filter((function(w){return"\\"!==o[w-1]})),p=Aa(o,"#{");p.length&&(d=d.filter((function(w){return!~p.indexOf(w)})));var m=(0,_k.default)(function(){var i=Array.prototype.concat.apply([],arguments);return i.filter((function(e,t){return t===i.indexOf(e)}))}([0].concat(f,d)));m.forEach((function(w,x){var y=m[x+1]||o.length,b=o.slice(w,y);if(0===x&&n)return n.call(a,b,m.length);var k,S=a.currToken,_=S[A.FIELDS.START_POS]+m[x],O=bt(S[1],S[2]+w,S[3],S[2]+(y-1));if(~f.indexOf(w)){var I={value:b.slice(1),source:O,sourceIndex:_};k=new vk.default(qt(I,"value"))}else if(~d.indexOf(w)){var B={value:b.slice(1),source:O,sourceIndex:_};k=new xk.default(qt(B,"value"))}else{var q={value:b,source:O,sourceIndex:_};qt(q,"value"),k=new kk.default(q)}a.newNode(k,r),r=null})),this.position++},e.word=function(r){var n=this.nextToken;return n&&"|"===this.content(n)?(this.position++,this.namespace()):this.splitWord(r)},e.loop=function(){for(;this.position{l(),Wr.__esModule=!0,Wr.default=void 0;var i,Ik=(i=kp())&&i.__esModule?i:{default:i};var Rk=function(){function i(t,r){this.func=t||function(){},this.funcRes=null,this.options=r}var e=i.prototype;return e._shouldUpdateSelector=function(r,n){return void 0===n&&(n={}),!1!==Object.assign({},this.options,n).updateSelector&&"string"!=typeof r},e._isLossy=function(r){return void 0===r&&(r={}),!1===Object.assign({},this.options,r).lossless},e._root=function(r,n){return void 0===n&&(n={}),new Ik.default(r,this._parseOptions(n)).root},e._parseOptions=function(r){return{lossy:this._isLossy(r)}},e._run=function(r,n){var a=this;return void 0===n&&(n={}),new Promise((function(s,o){try{var u=a._root(r,n);Promise.resolve(a.func(u)).then((function(c){var f=void 0;return a._shouldUpdateSelector(r,n)&&(f=u.toString(),r.selector=f),{transform:c,root:u,string:f}})).then(s,o)}catch(c){return void o(c)}}))},e._runSync=function(r,n){void 0===n&&(n={});var a=this._root(r,n),s=this.func(a);if(s&&"function"==typeof s.then)throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&"string"!=typeof r&&(o=a.toString(),r.selector=o),{transform:s,root:a,string:o}},e.ast=function(r,n){return this._run(r,n).then((function(a){return a.root}))},e.astSync=function(r,n){return this._runSync(r,n).root},e.transform=function(r,n){return this._run(r,n).then((function(a){return a.transform}))},e.transformSync=function(r,n){return this._runSync(r,n).transform},e.process=function(r,n){return this._run(r,n).then((function(a){return a.string||a.root.toString()}))},e.processSync=function(r,n){var a=this._runSync(r,n);return a.string||a.root.toString()},i}();Wr.default=Rk,Sp.exports=Wr.default})),Ap=v((H=>{l(),H.__esModule=!0,H.universal=H.tag=H.string=H.selector=H.root=H.pseudo=H.nesting=H.id=H.comment=H.combinator=H.className=H.attribute=void 0;var Mk=ve(fa()),Bk=ve(Hs()),Fk=ve(ha()),Nk=ve(Qs()),Lk=ve(Xs()),$k=ve(ga()),jk=ve(na()),zk=ve(zs()),Vk=ve(Us()),Uk=ve(ra()),Wk=ve(ea()),Gk=ve(pa());function ve(i){return i&&i.__esModule?i:{default:i}}H.attribute=function(e){return new Mk.default(e)};H.className=function(e){return new Bk.default(e)};H.combinator=function(e){return new Fk.default(e)};H.comment=function(e){return new Nk.default(e)};H.id=function(e){return new Lk.default(e)};H.nesting=function(e){return new $k.default(e)};H.pseudo=function(e){return new jk.default(e)};H.root=function(e){return new zk.default(e)};H.selector=function(e){return new Vk.default(e)};H.string=function(e){return new Uk.default(e)};H.tag=function(e){return new Wk.default(e)};H.universal=function(e){return new Gk.default(e)}})),Tp=v(($=>{l(),$.__esModule=!0,$.isComment=$.isCombinator=$.isClassName=$.isAttribute=void 0,$.isContainer=function(i){return!(!_a(i)||!i.walk)},$.isIdentifier=void 0,$.isNamespace=function(i){return _p(i)||Op(i)},$.isNesting=void 0,$.isNode=_a,$.isPseudo=void 0,$.isPseudoClass=function(i){return Oa(i)&&!Ep(i)},$.isPseudoElement=Ep,$.isUniversal=$.isTag=$.isString=$.isSelector=$.isRoot=void 0;var pe,J=se(),sS=((pe={})[J.ATTRIBUTE]=!0,pe[J.CLASS]=!0,pe[J.COMBINATOR]=!0,pe[J.COMMENT]=!0,pe[J.ID]=!0,pe[J.NESTING]=!0,pe[J.PSEUDO]=!0,pe[J.ROOT]=!0,pe[J.SELECTOR]=!0,pe[J.STRING]=!0,pe[J.TAG]=!0,pe[J.UNIVERSAL]=!0,pe);function _a(i){return"object"==typeof i&&sS[i.type]}function xe(i,e){return _a(e)&&e.type===i}var _p=xe.bind(null,J.ATTRIBUTE);$.isAttribute=_p;var aS=xe.bind(null,J.CLASS);$.isClassName=aS;var oS=xe.bind(null,J.COMBINATOR);$.isCombinator=oS;var lS=xe.bind(null,J.COMMENT);$.isComment=lS;var uS=xe.bind(null,J.ID);$.isIdentifier=uS;var fS=xe.bind(null,J.NESTING);$.isNesting=fS;var Oa=xe.bind(null,J.PSEUDO);$.isPseudo=Oa;var cS=xe.bind(null,J.ROOT);$.isRoot=cS;var pS=xe.bind(null,J.SELECTOR);$.isSelector=pS;var dS=xe.bind(null,J.STRING);$.isString=dS;var Op=xe.bind(null,J.TAG);$.isTag=Op;var hS=xe.bind(null,J.UNIVERSAL);function Ep(i){return Oa(i)&&i.value&&(i.value.startsWith("::")||":before"===i.value.toLowerCase()||":after"===i.value.toLowerCase()||":first-letter"===i.value.toLowerCase()||":first-line"===i.value.toLowerCase())}$.isUniversal=hS})),Pp=v((Ee=>{l(),Ee.__esModule=!0;var Ea=se();Object.keys(Ea).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Ea[i]||(Ee[i]=Ea[i])}));var Ta=Ap();Object.keys(Ta).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Ta[i]||(Ee[i]=Ta[i])}));var Pa=Tp();Object.keys(Pa).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Pa[i]||(Ee[i]=Pa[i])}))})),Re=v(((Gr,Ip)=>{l(),Gr.__esModule=!0,Gr.default=void 0;var i,wS=(i=Cp())&&i.__esModule?i:{default:i},bS=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=Dp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(Pp());function Dp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(Dp=function(n){return n?t:e})(i)}var Da=function(e){return new wS.default(e)};Object.assign(Da,bS),delete Da.__esModule;var kS=Da;Gr.default=kS,Ip.exports=Gr.default}));function Ge(i){return["fontSize","outline"].includes(i)?e=>("function"==typeof e&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):"fontFamily"===i?e=>{"function"==typeof e&&(e=e({}));let t=Array.isArray(e)&&ne(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(i)?e=>("function"==typeof e&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(i)?e=>("function"==typeof e&&(e=e({})),"string"==typeof e&&(e=V.list.comma(e).join(" ")),e):(e,t={})=>("function"==typeof e&&(e=e(t)),e)}var Rt,rd,Hr=C((()=>{l(),nt(),kt()})),Lp=v(((O3,Ba)=>{l();var{Rule:qp,AtRule:SS}=ge(),Rp=Re();function Ia(i,e){let t;try{Rp((r=>{t=r})).processSync(i)}catch(r){throw i.includes(":")?e?e.error("Missed semicolon"):r:e?e.error(r.message):r}return t.at(0)}function Mp(i,e){let t=!1;return i.each((r=>{if("nesting"===r.type){let n=e.clone({});"&"!==r.value?r.replaceWith(Ia(r.value.replace("&",n.toString()))):r.replaceWith(n),t=!0}else"nodes"in r&&r.nodes&&Mp(r,e)&&(t=!0)})),t}function Bp(i,e){let t=[];return i.selectors.forEach((r=>{let n=Ia(r,i);e.selectors.forEach((a=>{if(!a)return;let s=Ia(a,e);Mp(s,n)||(s.prepend(Rp.combinator({value:" "})),s.prepend(n.clone({}))),t.push(s.toString())}))})),t}function on(i,e){let t=i.prev();for(e.after(i);t&&"comment"===t.type;){let r=t.prev();e.after(t),t=r}return i}function qa(i,e,t){let r=new qp({selector:i,nodes:[]});return r.append(e),t.after(r),r}function Fp(i,e){let t={};for(let r of i)t[r]=!0;if(e)for(let r of e)t[r.replace(/^@/,"")]=!0;return t}function OS(i){let e=i[Np];if(e){let r,a,s,o,t=i.nodes,n=-1,u=function(i){let e=[],t=i.parent;for(;t&&t instanceof SS;)e.push(t),t=t.parent;return e}(i);if(u.forEach(((c,f)=>{if(e(c.name))r=c,n=f,s=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),a=a||o}})),r?s?(a.append(t),r.after(s)):r.after(t):i.after(t),i.next()&&r){let c;u.slice(0,n+1).forEach(((f,d,p)=>{let m=c;c=f.clone({nodes:[]}),m&&c.append(m);let w=[],y=(p[d-1]||i).next();for(;y;)w.push(y),y=y.next();c.append(w)})),c&&(s||t[t.length-1]).after(c)}}else i.after(i.nodes);i.remove()}var Ra=Symbol("rootRuleMergeSel"),Np=Symbol("rootRuleEscapes");function ES(i){let{params:e}=i,{type:t,selector:r,escapes:n}=function(i){let e=(i=i.trim()).match(/^\((.*)\)$/);if(!e)return{type:"basic",selector:i};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let r="with"===t[1],n=Object.fromEntries(t[2].trim().split(/\s+/).map((s=>[s,!0])));if(r&&n.all)return{type:"noop"};let a=s=>!!n[s];return n.all?a=()=>!0:r&&(a=s=>"all"!==s&&!n[s]),{type:"withrules",escapes:a}}return{type:"unknown"}}(e);if("unknown"===t)throw i.error(`Unknown @${i.name} parameter ${JSON.stringify(e)}`);if("basic"===t&&r){let a=new qp({selector:r,nodes:i.nodes});i.removeAll(),i.append(a)}i[Np]=n,i[Ra]=n?!n("all"):"noop"===t}var Ma=Symbol("hasRootRule");Ba.exports=(i={})=>{let e=Fp(["media","supports","layer","container"],i.bubble),t=function(i){return function e(t,r,n,a=n){let s=[];if(r.each((o=>{"rule"===o.type&&n?a&&(o.selectors=Bp(t,o)):"atrule"===o.type&&o.nodes?i[o.name]?e(t,o,a):!1!==r[Ra]&&s.push(o):s.push(o)})),n&&s.length){let o=t.clone({nodes:[]});for(let u of s)o.append(u);r.prepend(o)}}}(e),r=Fp(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],i.unwrap),n=(i.rootRuleName||"at-root").replace(/^@/,""),a=i.preserveEmpty;return{postcssPlugin:"postcss-nested",Once(s){s.walkAtRules(n,(o=>{ES(o),s[Ma]=!0}))},Rule(s){let o=!1,u=s,c=!1,f=[];s.each((d=>{"rule"===d.type?(f.length&&(u=qa(s.selector,f,u),f=[]),c=!0,o=!0,d.selectors=Bp(s,d),u=on(d,u)):"atrule"===d.type?(f.length&&(u=qa(s.selector,f,u),f=[]),d.name===n?(o=!0,t(s,d,!0,d[Ra]),u=on(d,u)):e[d.name]?(c=!0,o=!0,t(s,d,!0),u=on(d,u)):r[d.name]?(c=!0,o=!0,t(s,d,!1),u=on(d,u)):c&&f.push(d)):"decl"===d.type&&c&&f.push(d)})),f.length&&(u=qa(s.selector,f,u)),o&&!0!==a&&(s.raws.semicolon=!0,0===s.nodes.length&&s.remove())},RootExit(s){s[Ma]&&(s.walkAtRules(n,OS),s[Ma]=!1)}}},Ba.exports.postcss=!0})),Vp=v(((E3,zp)=>{l();var $p=/-(\w|$)/g,jp=(i,e)=>e.toUpperCase();zp.exports=i=>"float"===(i=i.toLowerCase())?"cssFloat":i.startsWith("-ms-")?i.substr(1).replace($p,jp):i.replace($p,jp)})),La=v(((T3,Up)=>{l();var PS=Vp(),DS={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function Fa(i){return void 0===i.nodes||Na(i)}function Na(i){let e,t={};return i.each((r=>{if("atrule"===r.type)e="@"+r.name,r.params&&(e+=" "+r.params),void 0===t[e]?t[e]=Fa(r):Array.isArray(t[e])?t[e].push(Fa(r)):t[e]=[t[e],Fa(r)];else if("rule"===r.type){let n=Na(r);if(t[r.selector])for(let a in n)t[r.selector][a]=n[a];else t[r.selector]=n}else if("decl"===r.type){e="-"===r.prop[0]&&"-"===r.prop[1]||r.parent&&":export"===r.parent.selector?r.prop:PS(r.prop);let n=r.value;!isNaN(r.value)&&DS[e]&&(n=parseFloat(r.value)),r.important&&(n+=" !important"),void 0===t[e]?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}})),t}Up.exports=Na})),ln=v(((P3,Yp)=>{l();var Yr=ge(),Wp=/\s*!important\s*$/i,IS={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function Gp(i,e,t){!1===t||null===t||(e.startsWith("--")||(e=function(i){return i.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}(e)),"number"==typeof t&&(0===t||IS[e]?t=t.toString():t+="px"),"css-float"===e&&(e="float"),Wp.test(t)?(t=t.replace(Wp,""),i.push(Yr.decl({prop:e,value:t,important:!0}))):i.push(Yr.decl({prop:e,value:t})))}function Hp(i,e,t){let r=Yr.atRule({name:e[1],params:e[3]||""});"object"==typeof t&&(r.nodes=[],$a(t,r)),i.push(r)}function $a(i,e){let t,r,n;for(t in i)if(r=i[t],null!=r)if("@"===t[0]){let a=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(r))for(let s of r)Hp(e,a,s);else Hp(e,a,r)}else if(Array.isArray(r))for(let a of r)Gp(e,t,a);else"object"==typeof r?(n=Yr.rule({selector:t}),$a(r,n),e.push(n)):Gp(e,t,r)}Yp.exports=function(i){let e=Yr.root();return $a(i,e),e}})),ja=v(((D3,Qp)=>{l();var RS=La();Qp.exports=function(e){return console&&console.warn&&e.warnings().forEach((t=>{let r=t.plugin||"PostCSS";console.warn(r+": "+t.text)})),RS(e.root)}})),Xp=v(((I3,Jp)=>{l();var MS=ge(),BS=ja(),FS=ln();Jp.exports=function(e){let t=MS(e);return async r=>{let n=await t.process(r,{parser:FS,from:void 0});return BS(n)}}})),Zp=v(((q3,Kp)=>{l();var NS=ge(),LS=ja(),$S=ln();Kp.exports=function(i){let e=NS(i);return t=>{let r=e.process(t,{parser:$S,from:void 0});return LS(r)}}})),td=v(((R3,ed)=>{l();var jS=La(),zS=ln(),VS=Xp(),US=Zp();ed.exports={objectify:jS,parse:zS,async:VS,sync:US}})),id=C((()=>{l(),Rt=K(td()),rd=Rt.default,Rt.default.objectify,Rt.default.parse,Rt.default.async,Rt.default.sync}));function Mt(i){return Array.isArray(i)?i.flatMap((e=>V([(0,nd.default)({bubble:["screen"]})]).process(e,{parser:rd}).root.nodes)):Mt([i])}var nd,za=C((()=>{l(),nt(),nd=K(Lp()),id()}));function Bt(i,e,t=!1){if(""===i)return e;let r="string"==typeof e?(0,sd.default)().astSync(e):e;return r.walkClasses((n=>{let a=n.value,s=t&&a.startsWith("-");n.value=s?`-${i}${a.slice(1)}`:`${i}${a}`})),"string"==typeof e?r.toString():r}var sd,un=C((()=>{l(),sd=K(Re())}));function de(i){let e=ad.default.className();return e.value=i,mt(e?.raws?.value??e.value)}var ad,Ft=C((()=>{l(),ad=K(Re()),mi()}));function Va(i){return mt(`.${de(i)}`)}function fn(i,e){return Va(Qr(i,e))}function Qr(i,e){return"DEFAULT"===e?i:"-"===e||"-DEFAULT"===e?`-${i}`:e.startsWith("-")?`-${i}${e}`:e.startsWith("/")?`${i}${e}`:`${i}-${e}`}var Ua=C((()=>{l(),Ft(),mi()}));function P(i,e=[[i,[i]]],{filterDefault:t=!1,...r}={}){let n=Ge(i);return function({matchUtilities:a,theme:s}){for(let o of e){a((Array.isArray(o[0])?o:[o]).reduce(((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce(((m,w)=>Array.isArray(w)?Object.assign(m,{[w[0]]:w[1]}):Object.assign(m,{[w]:n(p)})),{})})),{}),{...r,values:t?Object.fromEntries(Object.entries(s(i)??{}).filter((([c])=>"DEFAULT"!==c))):s(i)})}}}var od=C((()=>{l(),Hr()}));function st(i){return(i=Array.isArray(i)?i:[i]).map((e=>{let t=e.values.map((r=>void 0!==r.raw?r.raw:[r.min&&`(min-width: ${r.min})`,r.max&&`(max-width: ${r.max})`].filter(Boolean).join(" and ")));return e.not?`not all and ${t}`:t})).join(", ")}var cn=C((()=>{l()}));var WS,GS,HS,YS,QS,JS,XS,KS,ld,ZS,fd,ie,Ha,Ya,ud=C((()=>{l(),WS=new Set(["normal","reverse","alternate","alternate-reverse"]),GS=new Set(["running","paused"]),HS=new Set(["none","forwards","backwards","both"]),YS=new Set(["infinite"]),QS=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),JS=["cubic-bezier","steps"],XS=/\,(?![^(]*\))/g,KS=/\ +(?![^(]*\))/g,ld=/^(-?[\d.]+m?s)$/,ZS=/^(\d+)$/})),cd=C((()=>{l(),ie=fd=i=>Object.assign({},...Object.entries(i??{}).flatMap((([e,t])=>"object"==typeof t?Object.entries(fd(t)).map((([r,n])=>({[e+("DEFAULT"===r?"":`-${r}`)]:n}))):[{[`${e}`]:t}])))})),Ga=C((()=>{"tailwindcss","A utility-first CSS framework for rapidly building custom user interfaces.","MIT","lib/index.js","types/index.d.ts","https://github.com/tailwindlabs/tailwindcss.git","https://github.com/tailwindlabs/tailwindcss/issues","https://tailwindcss.com",Ya={name:"tailwindcss",version:Ha="3.4.1",description:"A utility-first CSS framework for rapidly building custom user interfaces.",license:"MIT",main:"lib/index.js",types:"types/index.d.ts",repository:"https://github.com/tailwindlabs/tailwindcss.git",bugs:"https://github.com/tailwindlabs/tailwindcss/issues",homepage:"https://tailwindcss.com",bin:{tailwind:"lib/cli.js",tailwindcss:"lib/cli.js"},tailwindcss:{engine:"stable"},scripts:{prebuild:"npm run generate && rimraf lib",build:"swc src --out-dir lib --copy-files --config jsc.transform.optimizer.globals.vars.__OXIDE__='\"false\"'",postbuild:"esbuild lib/cli-peer-dependencies.js --bundle --platform=node --outfile=peers/index.js --define:process.env.CSS_TRANSFORMER_WASM=false","rebuild-fixtures":"npm run build && node -r @swc/register scripts/rebuildFixtures.js",style:"eslint .",pretest:"npm run generate",test:"jest","test:integrations":"npm run test --prefix ./integrations","install:integrations":"node scripts/install-integrations.js","generate:plugin-list":"node -r @swc/register scripts/create-plugin-list.js","generate:types":"node -r @swc/register scripts/generate-types.js",generate:"npm run generate:plugin-list && npm run generate:types","release-channel":"node ./scripts/release-channel.js","release-notes":"node ./scripts/release-notes.js",prepublishOnly:"npm install --force && npm run build"},files:["src/*","cli/*","lib/*","peers/*","scripts/*.js","stubs/*","nesting/*","types/**/*","*.d.ts","*.css","*.js"],devDependencies:{"@swc/cli":"^0.1.62","@swc/core":"^1.3.55","@swc/jest":"^0.2.26","@swc/register":"^0.1.10",autoprefixer:"^10.4.14",browserslist:"^4.21.5",concurrently:"^8.0.1",cssnano:"^6.0.0",esbuild:"^0.17.18",eslint:"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1",jest:"^29.6.0","jest-diff":"^29.6.0",lightningcss:"1.18.0",prettier:"^2.8.8",rimraf:"^5.0.0","source-map-js":"^1.0.2",turbo:"^1.9.3"},dependencies:{"@alloc/quick-lru":"^5.2.0",arg:"^5.0.2",chokidar:"^3.5.3",didyoumean:"^1.2.2",dlv:"^1.1.3","fast-glob":"^3.3.0","glob-parent":"^6.0.2","is-glob":"^4.0.3",jiti:"^1.19.1",lilconfig:"^2.1.0",micromatch:"^4.0.5","normalize-path":"^3.0.0","object-hash":"^3.0.0",picocolors:"^1.0.0",postcss:"^8.4.23","postcss-import":"^15.1.0","postcss-js":"^4.0.1","postcss-load-config":"^4.0.1","postcss-nested":"^6.0.1","postcss-selector-parser":"^6.0.11",resolve:"^1.22.2",sucrase:"^3.32.0"},browserslist:["> 1%","not edge <= 18","not ie 11","not op_mini all"],jest:{testTimeout:3e4,setupFilesAfterEnv:["/jest/customMatchers.js"],testPathIgnorePatterns:["/node_modules/","/integrations/","/standalone-cli/","\\.test\\.skip\\.js$"],transformIgnorePatterns:["node_modules/(?!lightningcss)"],transform:{"\\.js$":"@swc/jest","\\.ts$":"@swc/jest"}},engines:{node:">=14.0.0"}}}));function at(i,e=!0){return Array.isArray(i)?i.map((t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if("string"==typeof t)return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[r,n]=t;return r=r.toString(),"string"==typeof n?{name:r,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:r,not:!1,values:n.map((a=>dd(a)))}:{name:r,not:!1,values:[dd(n)]}})):at(Object.entries(i??{}),!1)}function pn(i){return 1!==i.values.length?{result:!1,reason:"multiple-values"}:void 0!==i.values[0].raw?{result:!1,reason:"raw-values"}:void 0!==i.values[0].min&&void 0!==i.values[0].max?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function dn(i,e){return"object"==typeof i?i:{name:"arbitrary-screen",values:[{[e]:i}]}}function dd({"min-width":i,min:e=i,max:t,raw:r}={}){return{min:e,max:t,raw:r}}var hn=C((()=>{l()}));function mn(i,e){i.walkDecls((t=>{if(e.includes(t.prop))t.remove();else for(let r of e)t.value.includes(`/ var(${r})`)&&(t.value=t.value.replace(`/ var(${r})`,""))}))}var Y,Te,Me,Be,md,hd=C((()=>{l()})),gd=C((()=>{l(),je(),gt(),nt(),od(),cn(),Ft(),ud(),cd(),or(),cs(),kt(),Hr(),Ga(),Oe(),hn(),ns(),hd(),ze(),fr(),Xr(),Y={childVariant:({addVariant:i})=>{i("*","& > *")},pseudoElementVariants:({addVariant:i})=>{i("first-letter","&::first-letter"),i("first-line","&::first-line"),i("marker",[({container:e})=>(mn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(mn(e,["--tw-text-opacity"]),"&::marker")]),i("selection",["& *::selection","&::selection"]),i("file","&::file-selector-button"),i("placeholder","&::placeholder"),i("backdrop","&::backdrop"),i("before",(({container:e})=>(e.walkRules((t=>{let r=!1;t.walkDecls("content",(()=>{r=!0})),r||t.prepend(V.decl({prop:"content",value:"var(--tw-content)"}))})),"&::before"))),i("after",(({container:e})=>(e.walkRules((t=>{let r=!1;t.walkDecls("content",(()=>{r=!0})),r||t.prepend(V.decl({prop:"content",value:"var(--tw-content)"}))})),"&::after")))},pseudoClassVariants:({addVariant:i,matchVariant:e,config:t,prefix:r})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:s})=>(mn(s,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",Z(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map((s=>Array.isArray(s)?s:[s,`&:${s}`]));for(let[s,o]of n)i(s,(u=>"function"==typeof o?o(u):o));let a={group:(s,{modifier:o})=>o?[`:merge(${r(".group")}\\/${de(o)})`," &"]:[`:merge(${r(".group")})`," &"],peer:(s,{modifier:o})=>o?[`:merge(${r(".peer")}\\/${de(o)})`," ~ &"]:[`:merge(${r(".peer")})`," ~ &"]};for(let[s,o]of Object.entries(a))e(s,((u="",c)=>{let f=N("function"==typeof u?u(c):u);f.includes("&")||(f="&"+f);let[d,p]=o("",c),m=null,w=null,x=0;for(let y=0;y{i("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),i("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:i})=>{i("motion-safe","@media (prefers-reduced-motion: no-preference)"),i("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:i,addVariant:e})=>{let[t,r=".dark"]=[].concat(i("darkMode","media"));if(!1===t&&(t="media",F.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),"variant"===t){let n;if(Array.isArray(r)||"function"==typeof r?n=r:"string"==typeof r&&(n=[r]),Array.isArray(n))for(let a of n)".dark"===a?(t=!1,F.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):a.includes("&")||(t=!1,F.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));r=n}"selector"===t?e("dark",`&:where(${r}, ${r} *)`):"media"===t?e("dark","@media (prefers-color-scheme: dark)"):"variant"===t?e("dark",r):"class"===t&&e("dark",`:is(${r} &)`)},printVariant:({addVariant:i})=>{i("print","@media print")},screenVariants:({theme:i,addVariant:e,matchVariant:t})=>{let r=i("screens")??{},n=Object.values(r).every((b=>"string"==typeof b)),a=at(i("screens")),s=new Set([]);function u(b){void 0!==b&&s.add(function(b){return b.match(/(\D+)$/)?.[1]??"(none)"}(b))}for(let b of a)for(let k of b.values)u(k.min),u(k.max);let f=s.size<=1;function p(b){return(k,S)=>function(i,e,t){let r=dn(e,i),n=dn(t,i),a=pn(r),s=pn(n);if("multiple-values"===a.reason||"multiple-values"===s.reason)throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if("raw-values"===a.reason||"raw-values"===s.reason)throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if("min-and-max"===a.reason||"min-and-max"===s.reason)throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:u}=r.values[0],{min:c,max:f}=n.values[0];e.not&&([o,u]=[u,o]),t.not&&([c,f]=[f,c]),o=void 0===o?o:parseFloat(o),u=void 0===u?u:parseFloat(u),c=void 0===c?c:parseFloat(c),f=void 0===f?f:parseFloat(f);let[d,p]="min"===i?[o,c]:[f,u];return d-p}(b,k.value,S.value)}let m=p("max"),w=p("min");function x(b){return k=>n?f?"string"!=typeof k||function(b){return u(b),1===s.size}(k)?[`@media ${st(dn(k,b))}`]:(F.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]):(F.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]):(F.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[])}var b;t("max",x("max"),{sort:m,values:n?(b="max",Object.fromEntries(a.filter((k=>pn(k).result)).map((k=>{let{min:S,max:_}=k.values[0];return"min"===b&&void 0!==S?k:"min"===b&&void 0!==_?{...k,not:!k.not}:"max"===b&&void 0!==_?k:"max"===b&&void 0!==S?{...k,not:!k.not}:void 0})).map((k=>[k.name,k])))):{}});let y="min-screens";for(let b of a)e(b.name,`@media ${st(b)}`,{id:y,sort:n&&f?w:void 0,value:b});t("min",x("min"),{id:y,sort:w})},supportsVariants:({matchVariant:i,theme:e})=>{i("supports",((t="")=>{let r=N(t),n=/^\w*\s*\(/.test(r);return r=n?r.replace(/\b(and|or|not)\b/g," $1 "):r,n||(r.includes(":")||(r=`${r}: var(--tw)`),r.startsWith("(")&&r.endsWith(")")||(r=`(${r})`)),`@supports ${r}`}),{values:e("supports")??{}})},hasVariants:({matchVariant:i})=>{i("has",(e=>`&:has(${N(e)})`),{values:{}}),i("group-has",((e,{modifier:t})=>t?`:merge(.group\\/${t}):has(${N(e)}) &`:`:merge(.group):has(${N(e)}) &`),{values:{}}),i("peer-has",((e,{modifier:t})=>t?`:merge(.peer\\/${t}):has(${N(e)}) ~ &`:`:merge(.peer):has(${N(e)}) ~ &`),{values:{}})},ariaVariants:({matchVariant:i,theme:e})=>{i("aria",(t=>`&[aria-${N(t)}]`),{values:e("aria")??{}}),i("group-aria",((t,{modifier:r})=>r?`:merge(.group\\/${r})[aria-${N(t)}] &`:`:merge(.group)[aria-${N(t)}] &`),{values:e("aria")??{}}),i("peer-aria",((t,{modifier:r})=>r?`:merge(.peer\\/${r})[aria-${N(t)}] ~ &`:`:merge(.peer)[aria-${N(t)}] ~ &`),{values:e("aria")??{}})},dataVariants:({matchVariant:i,theme:e})=>{i("data",(t=>`&[data-${N(t)}]`),{values:e("data")??{}}),i("group-data",((t,{modifier:r})=>r?`:merge(.group\\/${r})[data-${N(t)}] &`:`:merge(.group)[data-${N(t)}] &`),{values:e("data")??{}}),i("peer-data",((t,{modifier:r})=>r?`:merge(.peer\\/${r})[data-${N(t)}] ~ &`:`:merge(.peer)[data-${N(t)}] ~ &`),{values:e("data")??{}})},orientationVariants:({addVariant:i})=>{i("portrait","@media (orientation: portrait)"),i("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:i})=>{i("contrast-more","@media (prefers-contrast: more)"),i("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:i})=>{i("forced-colors","@media (forced-colors: active)")}},Te=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),Me=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),Be=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),md={preflight:({addBase:i})=>{let e=V.parse("*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}");i([V.comment({text:`! tailwindcss v${Ha} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:function({addComponents:t,theme:r}){let n=at(r("container.screens",r("screens"))),a=function(t=[]){return t.flatMap((r=>r.values.map((n=>n.min)))).filter((r=>void 0!==r))}(n),s=function(t,r,n){if(void 0===n)return[];if("object"!=typeof n||null===n)return[{screen:"DEFAULT",minWidth:0,padding:n}];let a=[];n.DEFAULT&&a.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let s of t)for(let o of r)for(let{min:u}of o.values)u===s&&a.push({minWidth:s,padding:n[o.name]});return a}(a,n,r("container.padding")),o=c=>{let f=s.find((d=>d.minWidth===c));return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},u=Array.from(new Set(a.slice().sort(((c,f)=>parseInt(c)-parseInt(f))))).map((c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}})));t([{".container":Object.assign({width:"100%"},r("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...u])},accessibility:({addUtilities:i})=>{i({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:i})=>{i({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:i})=>{i({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:i})=>{i({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:P("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:i})=>{i({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:P("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:P("order",void 0,{supportsNegativeValues:!0}),gridColumn:P("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:P("gridColumnStart",[["col-start",["gridColumnStart"]]]),gridColumnEnd:P("gridColumnEnd",[["col-end",["gridColumnEnd"]]]),gridRow:P("gridRow",[["row",["gridRow"]]]),gridRowStart:P("gridRowStart",[["row-start",["gridRowStart"]]]),gridRowEnd:P("gridRowEnd",[["row-end",["gridRowEnd"]]]),float:({addUtilities:i})=>{i({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:i})=>{i({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:P("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:i})=>{i({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"line-clamp":r=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${r}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:i})=>{i({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:P("aspectRatio",[["aspect",["aspect-ratio"]]]),size:P("size",[["size",["width","height"]]]),height:P("height",[["h",["height"]]]),maxHeight:P("maxHeight",[["max-h",["maxHeight"]]]),minHeight:P("minHeight",[["min-h",["minHeight"]]]),width:P("width",[["w",["width"]]]),minWidth:P("minWidth",[["min-w",["minWidth"]]]),maxWidth:P("maxWidth",[["max-w",["maxWidth"]]]),flex:P("flex"),flexShrink:P("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:P("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:P("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:i})=>{i({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:i})=>{i({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:i})=>{i({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:i,matchUtilities:e,theme:t})=>{i("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":r=>({"--tw-border-spacing-x":r,"--tw-border-spacing-y":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":r=>({"--tw-border-spacing-x":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":r=>({"--tw-border-spacing-y":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:P("transformOrigin",[["origin",["transformOrigin"]]]),translate:P("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Te]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Te]]]]],{supportsNegativeValues:!0}),rotate:P("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Te]]]],{supportsNegativeValues:!0}),skew:P("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Te]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Te]]]]],{supportsNegativeValues:!0}),scale:P("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Te]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Te]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Te]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:i,addUtilities:e})=>{i("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Te},".transform-cpu":{transform:Te},".transform-gpu":{transform:Te.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:i,theme:e,config:t})=>{let r=a=>de(t("prefix")+a),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map((([a,s])=>[a,{[`@keyframes ${r(a)}`]:s}])));i({animate:a=>{let s=function(i){return i.split(XS).map((t=>{let r=t.trim(),n={value:r},a=r.split(KS),s=new Set;for(let o of a)!s.has("DIRECTIONS")&&WS.has(o)?(n.direction=o,s.add("DIRECTIONS")):!s.has("PLAY_STATES")&&GS.has(o)?(n.playState=o,s.add("PLAY_STATES")):!s.has("FILL_MODES")&&HS.has(o)?(n.fillMode=o,s.add("FILL_MODES")):s.has("ITERATION_COUNTS")||!YS.has(o)&&!ZS.test(o)?!s.has("TIMING_FUNCTION")&&QS.has(o)||!s.has("TIMING_FUNCTION")&&JS.some((u=>o.startsWith(`${u}(`)))?(n.timingFunction=o,s.add("TIMING_FUNCTION")):!s.has("DURATION")&&ld.test(o)?(n.duration=o,s.add("DURATION")):!s.has("DELAY")&&ld.test(o)?(n.delay=o,s.add("DELAY")):s.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,s.add("NAME")):(n.iterationCount=o,s.add("ITERATION_COUNTS"));return n}))}(a);return[...s.flatMap((o=>n[o.name])),{animation:s.map((({name:o,value:u})=>void 0===o||void 0===n[o]?u:u.replace(o,r(o)))).join(", ")}]}},{values:e("animation")})},cursor:P("cursor"),touchAction:({addDefaults:i,addUtilities:e})=>{i("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:i})=>{i({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:i})=>{i({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:i,addUtilities:e})=>{i("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:i})=>{i({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:i})=>{i({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:P("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:P("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:i})=>{i({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:P("listStyleType",[["list",["listStyleType"]]]),listStyleImage:P("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:i})=>{i({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:P("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:i})=>{i({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:i})=>{i({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:i})=>{i({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:P("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:i})=>{i({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:P("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:P("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:P("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:i})=>{i({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:i})=>{i({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:i})=>{i({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:i})=>{i({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:i})=>{i({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:i})=>{i({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:i})=>{i({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:i})=>{i({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:P("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"space-x":r=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${r="0"===r?"0px":r} * var(--tw-space-x-reverse))`,"margin-left":`calc(${r} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":r=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${r="0"===r?"0px":r} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${r} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"divide-x":r=>({"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${r="0"===r?"0px":r} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${r} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":r=>({"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${r="0"===r?"0px":r} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${r} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:i})=>{i({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({divide:r=>t("divideOpacity")?{"& > :not([hidden]) ~ :not([hidden])":ae({color:r,property:"border-color",variable:"--tw-divide-opacity"})}:{"& > :not([hidden]) ~ :not([hidden])":{"border-color":L(r)}}},{values:(({DEFAULT:r,...n})=>n)(ie(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:i,theme:e})=>{i({"divide-opacity":t=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:i})=>{i({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:i})=>{i({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:i})=>{i({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:i})=>{i({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:i})=>{i({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:i})=>{i({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:i})=>{i({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:i})=>{i({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:i})=>{i({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:i})=>{i({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:i})=>{i({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:P("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:P("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:i})=>{i({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({border:r=>t("borderOpacity")?ae({color:r,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]}),i({"border-x":r=>t("borderOpacity")?ae({color:r,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":L(r),"border-right-color":L(r)},"border-y":r=>t("borderOpacity")?ae({color:r,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":L(r),"border-bottom-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]}),i({"border-s":r=>t("borderOpacity")?ae({color:r,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":L(r)},"border-e":r=>t("borderOpacity")?ae({color:r,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":L(r)},"border-t":r=>t("borderOpacity")?ae({color:r,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":L(r)},"border-r":r=>t("borderOpacity")?ae({color:r,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":L(r)},"border-b":r=>t("borderOpacity")?ae({color:r,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":L(r)},"border-l":r=>t("borderOpacity")?ae({color:r,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]})},borderOpacity:P("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({bg:r=>t("backgroundOpacity")?ae({color:r,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":L(r)}},{values:ie(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:P("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:P("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function i(e){return De(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:r}){r("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:ie(t("gradientColorStops")),type:["color","any"]},a={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:s=>{let o=i(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${L(s)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:s=>({"--tw-gradient-from-position":s})},a),e({via:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${i(s)} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${L(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`})},n),e({via:s=>({"--tw-gradient-via-position":s})},a),e({to:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${L(s)} var(--tw-gradient-to-position)`})},n),e({to:s=>({"--tw-gradient-to-position":s})},a)}})(),boxDecorationBreak:({addUtilities:i})=>{i({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:P("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:i})=>{i({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:i})=>{i({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:P("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:i})=>{i({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:i})=>{i({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:i,theme:e})=>{i({fill:t=>({fill:L(t)})},{values:ie(e("fill")),type:["color","any"]})},stroke:({matchUtilities:i,theme:e})=>{i({stroke:t=>({stroke:L(t)})},{values:ie(e("stroke")),type:["color","url","any"]})},strokeWidth:P("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:i})=>{i({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:P("objectPosition",[["object",["object-position"]]]),padding:P("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:i})=>{i({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:P("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:i,matchUtilities:e})=>{i({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:i,theme:e})=>{i({font:t=>{let[r,n={}]=Array.isArray(t)&&ne(t[1])?t:[t],{fontFeatureSettings:a,fontVariationSettings:s}=n;return{"font-family":Array.isArray(r)?r.join(", "):r,...void 0===a?{}:{"font-feature-settings":a},...void 0===s?{}:{"font-variation-settings":s}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:i,theme:e})=>{i({text:(t,{modifier:r})=>{let[n,a]=Array.isArray(t)?t:[t];if(r)return{"font-size":n,"line-height":r};let{lineHeight:s,letterSpacing:o,fontWeight:u}=ne(a)?a:{lineHeight:a};return{"font-size":n,...void 0===s?{}:{"line-height":s},...void 0===o?{}:{"letter-spacing":o},...void 0===u?{}:{"font-weight":u}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:P("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:i})=>{i({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:i})=>{i({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:i,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";i("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:P("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:P("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({text:r=>t("textOpacity")?ae({color:r,property:"color",variable:"--tw-text-opacity"}):{color:L(r)}},{values:ie(e("textColor")),type:["color","any"]})},textOpacity:P("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:i})=>{i({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:i,theme:e})=>{i({decoration:t=>({"text-decoration-color":L(t)})},{values:ie(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:i})=>{i({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:P("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:P("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:i})=>{i({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({placeholder:r=>t("placeholderOpacity")?{"&::placeholder":ae({color:r,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:L(r)}}},{values:ie(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:i,theme:e})=>{i({"placeholder-opacity":t=>({"&::placeholder":{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:i,theme:e})=>{i({caret:t=>({"caret-color":L(t)})},{values:ie(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:i,theme:e})=>{i({accent:t=>({"accent-color":L(t)})},{values:ie(e("accentColor")),type:["color","any"]})},opacity:P("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:i})=>{i({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:i})=>{i({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let i=Ge("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:r,theme:n}){r(" box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:a=>{let s=yi(a=i(a));for(let o of s)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":"none"===a?"0 0 #0000":a,"--tw-shadow-colored":"none"===a?"0 0 #0000":Iu(s),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:i,theme:e})=>{i({shadow:t=>({"--tw-shadow-color":L(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:ie(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:i})=>{i({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:P("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:P("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:i,theme:e})=>{i({outline:t=>({"outline-color":L(t)})},{values:ie(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:i,addDefaults:e,addUtilities:t,theme:r,config:n})=>{let a=(()=>{if(Z(n(),"respectDefaultRingColorOpacity"))return r("ringColor.DEFAULT");let s=r("ringOpacity.DEFAULT","0.5");return r("ringColor")?.DEFAULT?De(r("ringColor")?.DEFAULT,s,`rgb(147 197 253 / ${s})`):`rgb(147 197 253 / ${s})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":r("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":r("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":a,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),i({ring:s=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:r("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({ring:r=>t("ringOpacity")?ae({color:r,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":L(r)}},{values:Object.fromEntries(Object.entries(ie(e("ringColor"))).filter((([r])=>"DEFAULT"!==r))),type:["color","any"]})},ringOpacity:i=>{let{config:e}=i;return P("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!Z(e(),"respectDefaultRingColorOpacity")})(i)},ringOffsetWidth:P("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:i,theme:e})=>{i({"ring-offset":t=>({"--tw-ring-offset-color":L(t)})},{values:ie(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:i,theme:e})=>{i({blur:t=>({"--tw-blur":`blur(${t})`,"@defaults filter":{},filter:Me})},{values:e("blur")})},brightness:({matchUtilities:i,theme:e})=>{i({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:Me})},{values:e("brightness")})},contrast:({matchUtilities:i,theme:e})=>{i({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:Me})},{values:e("contrast")})},dropShadow:({matchUtilities:i,theme:e})=>{i({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map((r=>`drop-shadow(${r})`)).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:Me})},{values:e("dropShadow")})},grayscale:({matchUtilities:i,theme:e})=>{i({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:Me})},{values:e("grayscale")})},hueRotate:({matchUtilities:i,theme:e})=>{i({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:Me})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:i,theme:e})=>{i({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:Me})},{values:e("invert")})},saturate:({matchUtilities:i,theme:e})=>{i({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:Me})},{values:e("saturate")})},sepia:({matchUtilities:i,theme:e})=>{i({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:Me})},{values:e("sepia")})},filter:({addDefaults:i,addUtilities:e})=>{i("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:Me},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:i,theme:e})=>{i({"backdrop-blur":t=>({"--tw-backdrop-blur":`blur(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:i,theme:e})=>{i({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:i,theme:e})=>{i({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:i,theme:e})=>{i({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:i,theme:e})=>{i({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:i,theme:e})=>{i({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:i,theme:e})=>{i({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:i,theme:e})=>{i({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:i,theme:e})=>{i({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:i,addUtilities:e})=>{i("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"backdrop-filter":Be},".backdrop-filter-none":{"backdrop-filter":"none"}})},transitionProperty:({matchUtilities:i,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),r=e("transitionDuration.DEFAULT");i({transition:n=>({"transition-property":n,..."none"===n?{}:{"transition-timing-function":t,"transition-duration":r}})},{values:e("transitionProperty")})},transitionDelay:P("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:P("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:P("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:P("willChange",[["will-change",["will-change"]]]),content:P("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:i})=>{i({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}}));function yC(i){if(void 0===i)return!1;if("true"===i||"1"===i)return!0;if("false"===i||"0"===i)return!1;if("*"===i)return!0;let e=i.split(",").map((t=>t.split(":")[0]));return!e.includes("-tailwindcss")&&!!e.includes("tailwindcss")}var Pe,yd,wd,gn,Qa,He,Kr,ot=C((()=>{l(),Ga(),Pe=void 0!==h?{NODE_ENV:"production",DEBUG:yC(h.env.DEBUG),ENGINE:Ya.tailwindcss.engine}:{NODE_ENV:"production",DEBUG:!1,ENGINE:Ya.tailwindcss.engine},yd=new Map,wd=new Map,gn=new Map,Qa=new Map,He=new String("*"),Kr=Symbol("__NONE__")}));function Nt(i){let e=[],t=!1;for(let r=0;r0)}var bd,vd,wC,Ja=C((()=>{l(),bd=new Map([["{","}"],["[","]"],["(",")"]]),vd=new Map(Array.from(bd.entries()).map((([i,e])=>[e,i]))),wC=new Set(['"',"'","`"])}));function Lt(i){let[e]=xd(i);return e.forEach((([t,r])=>t.removeChild(r))),i.nodes.push(...e.map((([,t])=>t))),i}function xd(i){let e=[],t=null;for(let r of i.nodes)if("combinator"===r.type)e=e.filter((([,n])=>Ka(n).includes("jumpable"))),t=null;else if("pseudo"===r.type){bC(r)?(t=r,e.push([i,r,null])):t&&vC(r,t)?e.push([i,r,t]):t=null;for(let n of r.nodes??[]){let[a,s]=xd(n);t=s||t,e.push(...a)}}return[e,t]}function kd(i){return i.value.startsWith("::")||void 0!==Xa[i.value]}function bC(i){return kd(i)&&Ka(i).includes("terminal")}function vC(i,e){return"pseudo"===i.type&&!kd(i)&&Ka(e).includes("actionable")}function Ka(i){return Xa[i.value]??Xa.__default__}var Xa,yn=C((()=>{l(),Xa={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}}));function $t(i,{context:e,candidate:t}){let r=e?.tailwindConfig.prefix??"",n=i.map((s=>{let o=(0,Fe.default)().astSync(s.format);return{...s,ast:s.respectPrefix?Bt(r,o):o}})),a=Fe.default.root({nodes:[Fe.default.selector({nodes:[Fe.default.className({value:de(t)})]})]});for(let{ast:s}of n)[a,s]=kC(a,s),s.walkNesting((o=>o.replaceWith(...a.nodes[0].nodes))),a=s;return a}function Cd(i){let e=[];for(;i.prev()&&"combinator"!==i.prev().type;)i=i.prev();for(;i&&"combinator"!==i.type;)e.push(i),i=i.next();return e}function eo(i,e){let t=!1;i.walk((r=>{if("class"===r.type&&r.value===e)return t=!0,!1})),t||i.remove()}function wn(i,e,{context:t,candidate:r,base:n}){n=n??oe(r,t?.tailwindConfig?.separator??":").pop();let s=(0,Fe.default)().astSync(i);if(s.walkClasses((f=>{f.raws&&f.value.includes(n)&&(f.raws.value=de((0,Sd.default)(f.raws.value)))})),s.each((f=>eo(f,n))),0===s.length)return null;let o=Array.isArray(e)?$t(e,{context:t,candidate:r}):e;if(null===o)return s.toString();let u=Fe.default.comment({value:"/*__simple__*/"}),c=Fe.default.comment({value:"/*__simple__*/"});return s.walkClasses((f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(1===d.nodes.length)return void f.replaceWith(...p);let m=Cd(f);d.insertBefore(m[0],u),d.insertAfter(m[m.length-1],c);for(let x of p)d.insertBefore(m[0],x.clone());f.remove(),m=Cd(u);let w=d.index(u);d.nodes.splice(w,m.length,...function(i){return i.sort(((e,t)=>"tag"===e.type&&"class"===t.type?-1:"class"===e.type&&"tag"===t.type?1:"class"===e.type&&"pseudo"===t.type&&t.value.startsWith("::")?-1:"pseudo"===e.type&&e.value.startsWith("::")&&"class"===t.type?1:i.index(e)-i.index(t))),i}(Fe.default.selector({nodes:m})).nodes),u.remove(),c.remove()})),s.walkPseudos((f=>{f.value===Za&&f.replaceWith(f.nodes)})),s.each((f=>Lt(f))),s.toString()}function kC(i,e){let t=[];return i.walkPseudos((r=>{r.value===Za&&t.push({pseudo:r,value:r.nodes[0].toString()})})),e.walkPseudos((r=>{if(r.value!==Za)return;let n=r.nodes[0].toString(),a=t.find((c=>c.value===n));if(!a)return;let s=[],o=r.next();for(;o&&"combinator"!==o.type;)s.push(o),o=o.next();let u=o;a.pseudo.parent.insertAfter(a.pseudo,Fe.default.selector({nodes:s.map((c=>c.clone()))})),r.remove(),s.forEach((c=>c.remove())),u&&"combinator"===u.type&&u.remove()})),[i,e]}var Fe,Sd,Za,to=C((()=>{l(),Fe=K(Re()),Sd=K(Yi()),Ft(),un(),yn(),St(),Za=":merge"}));function bn(i,e){let t=(0,ro.default)().astSync(i);return t.each((r=>{"pseudo"===r.nodes[0].type&&":is"===r.nodes[0].value&&r.nodes.every((a=>"combinator"!==a.type))||(r.nodes=[ro.default.pseudo({value:":is",nodes:[r.clone()]})]),Lt(r)})),`${e} ${t.toString()}`}var ro,io=C((()=>{l(),ro=K(Re()),yn()}));function no(i){return SC.transformSync(i)}function AC(i,e){if(0===i.length||""===e.tailwindConfig.prefix)return i;for(let t of i){let[r]=t;if(r.options.respectPrefix){let n=V.root({nodes:[t[1].clone()]}),a=t[1].raws.tailwind.classCandidate;n.walkRules((s=>{let o=a.startsWith("-");s.selector=Bt(e.tailwindConfig.prefix,s.selector,o)})),t[1]=n.nodes[0]}}return i}function _C(i,e){if(0===i.length)return i;let t=[];function r(n){return n.parent&&"atrule"===n.parent.type&&"keyframes"===n.parent.name}for(let[n,a]of i){let s=V.root({nodes:[a.clone()]});s.walkRules((o=>{if(r(o))return;let u=(0,vn.default)().astSync(o.selector);u.each((c=>eo(c,e))),Uu(u,(c=>c===e?`!${c}`:c)),o.selector=u.toString(),o.walkDecls((c=>c.important=!0))})),t.push([{...n,important:!0},s.nodes[0]])}return t}function OC(i,e,t){if(0===e.length)return e;let r={modifier:null,value:Kr};{let[n,...a]=oe(i,"/");if(a.length>1&&(n=n+"/"+a.slice(0,-1).join("/"),a=a.slice(-1)),a.length&&!t.variantMap.has(i)&&(i=n,r.modifier=a[0],!Z(t.tailwindConfig,"generalizedModifiers")))return[]}if(i.endsWith("]")&&!i.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(i);if(n){let[,a,s,o]=n;if("@"===a&&"-"===s)return[];if("@"!==a&&""===s)return[];i=i.replace(`${s}[${o}]`,""),r.value=o}}if(oo(i)&&!t.variantMap.has(i)){let n=t.offsets.recordVariant(i),s=oe(N(i.slice(1,-1)),",");if(s.length>1)return[];if(!s.every(Cn))return[];let o=s.map(((u,c)=>[t.offsets.applyParallelOffset(n,c),Zr(u.trim())]));t.variantMap.set(i,o)}if(t.variantMap.has(i)){let n=oo(i),a=t.variantOptions.get(i)?.[Jr]??{},s=t.variantMap.get(i).slice(),o=[],u=!(n||!1===a.respectPrefix);for(let[c,f]of e){if("user"===c.layer)continue;let d=V.root({nodes:[f.clone()]});for(let[p,m,w]of s){let b=function(){x.raws.neededBackup||(x.raws.neededBackup=!0,x.walkRules((O=>O.raws.originalSelector=O.selector)))},k=function(O){return b(),x.each((I=>{"rule"===I.type&&(I.selectors=I.selectors.map((B=>O({get className(){return no(B)},selector:B}))))})),x},x=(w??d).clone(),y=[],S=m({get container(){return b(),x},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(O){let I=x.nodes;x.removeAll(),O.append(I),x.append(O)},format(O){y.push({format:O,respectPrefix:u})},args:r});if(Array.isArray(S)){for(let[O,I]of S.entries())s.push([t.offsets.applyParallelOffset(p,O),I,x.clone()]);continue}if("string"==typeof S&&y.push({format:S,respectPrefix:u}),null===S)continue;x.raws.neededBackup&&(delete x.raws.neededBackup,x.walkRules((O=>{let I=O.raws.originalSelector;if(!I||(delete O.raws.originalSelector,I===O.selector))return;let B=O.selector,q=(0,vn.default)((X=>{X.walkClasses((le=>{le.value=`${i}${t.tailwindConfig.separator}${le.value}`}))})).processSync(I);y.push({format:B.replace(q,"&"),respectPrefix:u}),O.selector=I}))),x.nodes[0].raws.tailwind={...x.nodes[0].raws.tailwind,parentLayer:c.layer};let _=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(r,t.variantOptions.get(i))),collectedFormats:(c.collectedFormats??[]).concat(y)},x.nodes[0]];o.push(_)}}return o}return[]}function so(i,e,t={}){return ne(i)||Array.isArray(i)?Array.isArray(i)?so(i[0],e,i[1]):(e.has(i)||e.set(i,Mt(i)),[e.get(i),t]):[[i],t]}function Ad(i){let e=!0;return i.walkDecls((t=>{if(!_d(t.prop,t.value))return e=!1,!1})),e}function _d(i,e){if(function(i){if(!i.includes("://"))return!1;try{let e=new URL(i);return""!==e.scheme&&""!==e.host}catch(e){return!1}}(`${i}:${e}`))return!1;try{return V.parse(`a{${i}:${e}}`).toResult(),!0}catch(t){return!1}}function DC(i,e){let[,t,r]=i.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(void 0===r||!function(i){return EC.test(i)}(t)||!Nt(r))return null;let n=N(r,{property:t});return _d(t,n)?[[{sort:e.offsets.arbitraryProperty(),layer:"utilities"},()=>({[Va(i)]:{[t]:n}})]]:null}function*RC(i,e){for(let t of i)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*ao(i,e){let t=e.tailwindConfig.separator,[r,...n]=function(i,e){return i===He?[He]:oe(i,e)}(i,t).reverse(),a=!1;r.startsWith("!")&&(a=!0,r=r.slice(1));for(let s of function*(i,e){e.candidateRuleMap.has(i)&&(yield[e.candidateRuleMap.get(i),"DEFAULT"]),yield*function*(o){null!==o&&(yield[o,"DEFAULT"])}(DC(i,e));let t=i,r=!1,n=e.tailwindConfig.prefix,a=n.length,s=t.startsWith(n)||t.startsWith(`-${n}`);"-"===t[a]&&s&&(r=!0,t=n+t.slice(a+1)),r&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,u]of function*(i){let e=1/0;for(;e>=0;){let t,r=!1;if(e===1/0&&i.endsWith("]")){let s=i.indexOf("[");"-"===i[s-1]?t=s-1:"/"===i[s-1]?(t=s-1,r=!0):t=-1}else e===1/0&&i.includes("/")?(t=i.lastIndexOf("/"),r=!0):t=i.lastIndexOf("-",e);if(t<0)break;let n=i.slice(0,t),a=i.slice(r?t:t+1);e=t-1,""!==n&&"/"!==a&&(yield[n,a])}}(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),r?`-${u}`:u])}(r,e)){let o=[],u=new Map,[c,f]=s,d=1===c.length;for(let[p,m]of c){let w=[];if("function"==typeof m)for(let x of[].concat(m(f,{isOnlyPlugin:d}))){let[y,b]=so(x,e.postCssNodeCache);for(let k of y)w.push([{...p,options:{...p.options,...b}},k])}else if("DEFAULT"===f||"-DEFAULT"===f){let x=m,[y,b]=so(x,e.postCssNodeCache);for(let k of y)w.push([{...p,options:{...p.options,...b}},k])}if(w.length>0){let x=Array.from(fs(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map((([y,b])=>b));x.length>0&&u.set(w,x),o.push(w)}}if(oo(f)){if(o.length>1){let w=function(y){return 1===y.length?y[0]:y.find((b=>{let k=u.get(b);return b.some((([{options:S},_])=>!!Ad(_)&&S.types.some((({type:O,preferOnConflict:I})=>k.includes(O)&&I))))}))},[p,m]=o.reduce(((y,b)=>(b.some((([{options:S}])=>S.types.some((({type:_})=>"any"===_))))?y[0].push(b):y[1].push(b),y)),[[],[]]),x=w(m)??w(p);if(!x){let y=o.map((k=>new Set([...u.get(k)??[]])));for(let k of y)for(let S of k){let _=!1;for(let O of y)k!==O&&O.has(S)&&(O.delete(S),_=!0);_&&k.delete(S)}let b=[];for(let[k,S]of y.entries())for(let _ of S){let O=o[k].map((([,I])=>I)).flat().map((I=>I.toString().split("\n").slice(1,-1).map((B=>B.trim())).map((B=>` ${B}`)).join("\n"))).join("\n\n");b.push(` Use \`${i.replace("[",`[${_}:`)}\` for \`${O.trim()}\``);break}F.warn([`The class \`${i}\` is ambiguous and matches multiple utilities.`,...b,`If this is content and not a class, replace it with \`${i.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}o=[x]}o=o.map((p=>p.filter((m=>Ad(m[1])))))}o=o.flat(),o=Array.from(RC(o,r)),o=AC(o,e),a&&(o=_C(o,r));for(let p of n)o=OC(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:i},p=MC(p,{context:e,candidate:i}),null!==p&&(yield p)}}function MC(i,{context:e,candidate:t}){if(!i[0].collectedFormats)return i;let n,r=!0;try{n=$t(i[0].collectedFormats,{context:e,candidate:t})}catch{return null}let a=V.root({nodes:[i[1].clone()]});return a.walkRules((s=>{if(!xn(s))try{let o=wn(s.selector,n,{candidate:t,context:e});if(null===o)return void s.remove();s.selector=o}catch{return r=!1,!1}})),r&&0!==a.nodes.length?(i[1]=a.nodes[0],i):null}function xn(i){return i.parent&&"atrule"===i.parent.type&&"keyframes"===i.parent.name}function kn(i,e,t=!1){let r=[],n=function(i){return!0===i?e=>{xn(e)||e.walkDecls((t=>{"rule"===t.parent.type&&!xn(t.parent)&&(t.important=!0)}))}:"string"==typeof i?e=>{xn(e)||(e.selectors=e.selectors.map((t=>bn(t,i))))}:void 0}(e.tailwindConfig.important);for(let a of i){if(e.notClassCache.has(a))continue;if(e.candidateRuleCache.has(a)){r=r.concat(Array.from(e.candidateRuleCache.get(a)));continue}let s=Array.from(ao(a,e));if(0===s.length){e.notClassCache.add(a);continue}e.classCache.set(a,s);let o=e.candidateRuleCache.get(a)??new Set;e.candidateRuleCache.set(a,o);for(let u of s){let[{sort:c,options:f},d]=u;if(f.respectImportant&&n){let m=V.root({nodes:[d.clone()]});m.walkRules(n),d=m.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),r.push(p)}}return r}function oo(i){return i.startsWith("[")&&i.endsWith("]")}var vn,SC,EC,Od,Sn=C((()=>{l(),nt(),vn=K(Re()),za(),kt(),un(),cr(),Oe(),ot(),to(),Ua(),fr(),Xr(),Ja(),St(),ze(),io(),SC=(0,vn.default)((i=>i.first.filter((({type:e})=>"class"===e)).pop().value)),EC=/^[a-z_-]/})),Ed=C((()=>{l(),Od={}}));function Td(i,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let r=Qa.get(i),n=function(i){try{return Od.createHash("md5").update(i,"utf-8").digest("binary")}catch(e){return""}}(t),a=r!==n;return Qa.set(i,n),a}var Pd=C((()=>{l(),Ed(),ot()}));function An(i){return(i>0n)-(i<0n)}var Dd=C((()=>{l()}));function Id(i,e){let t=0n,r=0n;for(let[n,a]of e)i&n&&(t|=n,r|=a);return i&~t|r}var qd=C((()=>{l()}));function Rd(i){let e=null;for(let t of i)e=e??t,e=e>t?e:t;return e}var lo,Md=C((()=>{l(),Dd(),qd(),lo=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,options:[]}}arbitraryProperty(){return{...this.create("utilities"),arbitrary:1n}}forVariant(e,t=0){let r=this.variantOffsets.get(e);if(void 0===r)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:r<n.startsWith("["))).sort((([n],[a])=>function(i,e){let t=i.length,r=e.length,n=tn)).sort(((n,a)=>An(n-a)));return e.map((([,n],a)=>[n,t[a]])).filter((([n,a])=>n!==a))}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return 0===t.length?e:e.map((r=>{let[n,a]=r;return n={...n,variants:Id(n.variants,t)},[n,a]}))}sort(e){return(e=this.remapArbitraryVariantOffsets(e)).sort((([t],[r])=>An(this.compare(t,r))))}}}));function po(i,e){let t=i.tailwindConfig.prefix;return"function"==typeof t?t(e):t+e}function Fd({type:i="any",...e}){return{...e,types:[].concat(i).map((r=>Array.isArray(r)?{type:r[0],...r[1]}:{type:r,preferOnConflict:!1}))}}function Nd(i){return Array.isArray(i)?i.flatMap((e=>Array.isArray(e)||ne(e)?Mt(e):e)):Nd([i])}function jC(i,e){return(0,uo.default)((r=>{let n=[];return e&&e(r),r.walkClasses((a=>{n.push(a.value)})),n})).transformSync(i)}function zC(i){i.walkPseudos((e=>{":not"===e.value&&e.remove()}))}function _n(i){return Nd(i).flatMap((e=>{let t=new Map,[r,n]=function(i,e={containsNonOnDemandable:!1},t=0){let r=[],n=[];"rule"===i.type?n.push(...i.selectors):"atrule"===i.type&&i.walkRules((a=>n.push(...a.selectors)));for(let a of n){let s=jC(a,zC);0===s.length&&(e.containsNonOnDemandable=!0);for(let o of s)r.push(o)}return 0===t?[e.containsNonOnDemandable||0===r.length,r]:r}(e);return r&&n.unshift(He),n.map((a=>(t.has(e)||t.set(e,e),[a,t.get(e)])))}))}function Cn(i){return i.startsWith("@")||i.includes("&")}function Zr(i){let e=function(i){let e=[],t="",r=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter((n=>""!==n)),e}(i=i.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim()).map((t=>{if(!t.startsWith("@"))return({format:a})=>a(t);let[,r,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:a})=>a(V.atRule({name:r,params:n?.trim()??""}))})).reverse();return t=>{for(let r of e)r(t)}}function UC(i,e,{variantList:t,variantMap:r,offsets:n,classList:a}){function s(p,m){return p?(0,Bd.default)(i,p,m):i}function u(p,m){return p===He?He:m.respectPrefix?e.tailwindConfig.prefix+p:p}let f=0,d={postcss:V,prefix:function(p){return Bt(i.prefix,p)},e:de,config:s,theme:function(p,m,w={}){let x=Ke(p),y=s(["theme",...x],m);return Ge(x[0])(y,w)},corePlugins:p=>Array.isArray(i.corePlugins)?i.corePlugins.includes(p):s(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[m,w]of _n(p)){let x=u(m,{}),y=n.create("base");e.candidateRuleMap.has(x)||e.candidateRuleMap.set(x,[]),e.candidateRuleMap.get(x).push([{sort:y,layer:"base"},w])}},addDefaults(p,m){let w={[`@defaults ${p}`]:m};for(let[x,y]of _n(w)){let b=u(x,{});e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(m)?{}:m);for(let[x,y]of _n(p)){let b=u(x,m);a.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("components"),layer:"components",options:m},y])}},addUtilities(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(m)?{}:m);for(let[x,y]of _n(p)){let b=u(x,m);a.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("utilities"),layer:"utilities",options:m},y])}},matchUtilities:function(p,m){m=Fd({respectPrefix:!0,respectImportant:!0,modifiers:!1,...m});let x=n.create("utilities");for(let y in p){let S=function(O,{isOnlyPlugin:I}){let[B,q,X]=us(m.types,O,m,i);if(void 0===B)return[];if(!m.types.some((({type:j})=>j===q))){if(!I)return[];F.warn([`Unnecessary typehint \`${q}\` in \`${y}-${O}\`.`,`You can safely update it to \`${y}-${O.replace(q+":","")}\`.`])}if(!Nt(B))return[];let le={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),X}},ce=Z(i,"generalizedModifiers");return[].concat(ce?k(B,le):k(B)).filter(Boolean).map((j=>({[fn(y,O)]:j})))},b=u(y,m),k=p[y];a.add([b,m]);let _=[{sort:x,layer:"utilities",options:m},S];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(_)}},matchComponents:function(p,m){m=Fd({respectPrefix:!0,respectImportant:!1,modifiers:!1,...m});let x=n.create("components");for(let y in p){let S=function(O,{isOnlyPlugin:I}){let[B,q,X]=us(m.types,O,m,i);if(void 0===B)return[];if(!m.types.some((({type:j})=>j===q))){if(!I)return[];F.warn([`Unnecessary typehint \`${q}\` in \`${y}-${O}\`.`,`You can safely update it to \`${y}-${O.replace(q+":","")}\`.`])}if(!Nt(B))return[];let le={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),X}},ce=Z(i,"generalizedModifiers");return[].concat(ce?k(B,le):k(B)).filter(Boolean).map((j=>({[fn(y,O)]:j})))},b=u(y,m),k=p[y];a.add([b,m]);let _=[{sort:x,layer:"components",options:m},S];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(_)}},addVariant(p,m,w={}){m=[].concat(m).map((x=>{if("string"!=typeof x)return(y={})=>{let{args:b,modifySelectors:k,container:S,separator:_,wrap:O,format:I}=y,B=x(Object.assign({modifySelectors:k,container:S,separator:_},w.type===fo.MatchVariant&&{args:b,wrap:O,format:I}));if("string"==typeof B&&!Cn(B))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(B)?B.filter((q=>"string"==typeof q)).map((q=>Zr(q))):B&&"string"==typeof B&&Zr(B)(y)};if(!Cn(x))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Zr(x)})),function(i,e,{before:t=[]}={}){if((t=[].concat(t)).length<=0)return void i.push(e);let r=i.length-1;for(let n of t){let a=i.indexOf(n);-1!==a&&(r=Math.min(r,a))}i.splice(r,0,e)}(t,p,w),r.set(p,m),e.variantOptions.set(p,w)},matchVariant(p,m,w){let x=w?.id??++f,y="@"===p,b=Z(i,"generalizedModifiers");for(let[S,_]of Object.entries(w?.values??{}))"DEFAULT"!==S&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,(({args:O,container:I})=>m(_,b?{modifier:O?.modifier,container:I}:{container:I})),{...w,value:_,id:x,type:fo.MatchVariant,variantInfo:co.Base});let k="DEFAULT"in(w?.values??{});d.addVariant(p,(({args:S,container:_})=>S?.value!==Kr||k?m(S?.value===Kr?w.values.DEFAULT:S?.value??("string"==typeof S?S:""),b?{modifier:S?.modifier,container:_}:{container:_}):null),{...w,id:x,type:fo.MatchVariant,variantInfo:co.Dynamic})}};return d}function On(i){return ho.has(i)||ho.set(i,new Map),ho.get(i)}function Ld(i,e){let t=!1,r=new Map;for(let n of i){if(!n)continue;let a=gs.parse(n),s=a.hash?a.href.replace(a.hash,""):a.href;s=a.search?s.replace(a.search,""):s;let o=re.statSync(decodeURIComponent(s),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),r.set(n,o))}return[t,r]}function $d(i){i.walkAtRules((e=>{["responsive","variants"].includes(e.name)&&($d(e),e.before(e.nodes),e.remove())}))}function WC(i){let e=[];return i.each((t=>{"atrule"===t.type&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")})),i.walkAtRules("layer",(t=>{if($d(t),"base"===t.params){for(let r of t.nodes)e.push((function({addBase:n}){n(r,{respectPrefix:!1})}));t.remove()}else if("components"===t.params){for(let r of t.nodes)e.push((function({addComponents:n}){n(r,{respectPrefix:!1,preserveSource:!0})}));t.remove()}else if("utilities"===t.params){for(let r of t.nodes)e.push((function({addUtilities:n}){n(r,{respectPrefix:!1,preserveSource:!0})}));t.remove()}})),e}function jd(i,e){!i.classCache.has(e)||(i.notClassCache.add(e),i.classCache.delete(e),i.applyClassCache.delete(e),i.candidateRuleMap.delete(e),i.candidateRuleCache.delete(e),i.stylesheetCache=null)}function mo(i,e=[],t=V.root()){let r={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(i.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:i,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:a=>jd(r,a),markInvalidUtilityNode:a=>function(i,e){let t=e.raws.tailwind.candidate;if(t){for(let r of i.ruleCache)r[1].raws.tailwind.candidate===t&&i.ruleCache.delete(r);jd(i,t)}}(r,a)},n=function(i,e){let t=Object.entries({...Y,...md}).map((([u,c])=>i.tailwindConfig.corePlugins.includes(u)?c:null)).filter(Boolean),r=i.tailwindConfig.plugins.map((u=>(u.__isOptionsFunction&&(u=u()),"function"==typeof u?u:u.handler))),n=WC(e),a=[Y.childVariant,Y.pseudoElementVariants,Y.pseudoClassVariants,Y.hasVariants,Y.ariaVariants,Y.dataVariants],s=[Y.supportsVariants,Y.reducedMotionVariants,Y.prefersContrastVariants,Y.screenVariants,Y.orientationVariants,Y.directionVariants,Y.darkVariants,Y.forcedColorsVariants,Y.printVariant];return("class"===i.tailwindConfig.darkMode||Array.isArray(i.tailwindConfig.darkMode)&&"class"===i.tailwindConfig.darkMode[0])&&(s=[Y.supportsVariants,Y.reducedMotionVariants,Y.prefersContrastVariants,Y.darkVariants,Y.screenVariants,Y.orientationVariants,Y.directionVariants,Y.forcedColorsVariants,Y.printVariant]),[...t,...a,...r,...s,...n]}(r,t);return function(i,e){let t=[],r=new Map;e.variantMap=r;let n=new lo;e.offsets=n;let a=new Set,s=UC(e.tailwindConfig,e,{variantList:t,variantMap:r,offsets:n,classList:a});for(let f of i)if(Array.isArray(f))for(let d of f)d(s);else f?.(s);n.recordVariants(t,(f=>r.get(f).length));for(let[f,d]of r.entries())e.variantMap.set(f,d.map(((p,m)=>[n.forVariant(f,m),p])));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o)"string"!=typeof d?d instanceof RegExp?F.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]):f.push(d):e.changedContent.push({content:d,extension:"html"});if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,m=f.some((w=>w.pattern.source.includes("!")));for(let w of a){let x=Array.isArray(w)?(()=>{let[y,b]=w,S=Object.keys(b?.values??{}).map((_=>Qr(y,_)));return b?.supportsNegativeValues&&(S=[...S,...S.map((_=>"-"+_))],S=[...S,...S.map((_=>_.slice(0,p)+"-"+_.slice(p)))]),b.types.some((({type:_})=>"color"===_))&&(S=[...S,...S.flatMap((_=>Object.keys(e.tailwindConfig.theme.opacity).map((O=>`${_}/${O}`))))]),m&&b?.respectImportant&&(S=[...S,...S.map((_=>"!"+_))]),S})():[w];for(let y of x)for(let{pattern:b,variants:k=[]}of f)if(b.lastIndex=0,d.has(b)||d.set(b,0),b.test(y)){d.set(b,d.get(b)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[w,x]of d.entries())0===x&&F.warn([`The safelist pattern \`${w}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let u=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[po(e,u),po(e,"group"),po(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort(((y,b)=>y===b?0:y[y,null]))),w=kn(new Set(p),e,!0);w=e.offsets.sort(w);let x=BigInt(c.length);for(let[,y]of w){let b=y.raws.tailwind.candidate;m.set(b,m.get(b)??x++)}return d.map((y=>{let b=m.get(y)??null,k=c.indexOf(y);return null===b&&-1!==k&&(b=BigInt(k)),[y,b]}))},e.getClassList=function(d={}){let p=[];for(let m of a)if(Array.isArray(m)){let[w,x]=m,y=[],b=Object.keys(x?.modifiers??{});x?.types?.some((({type:_})=>"color"===_))&&b.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:b},S=d.includeMetadata&&b.length>0;for(let[_,O]of Object.entries(x?.values??{})){if(null==O)continue;let I=Qr(w,_);if(p.push(S?[I,k]:I),x?.supportsNegativeValues&&Xe(O)){let B=Qr(w,`-${_}`);y.push(S?[B,k]:B)}}p.push(...y)}else p.push(m);return p},e.getVariants=function(){let d=[];for(let[p,m]of e.variantOptions.entries())m.variantInfo!==co.Base&&d.push({name:p,isArbitrary:m.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(m.values??{}),hasDash:"@"!==p,selectors({modifier:w,value:x}={}){let y="__TAILWIND_PLACEHOLDER__",b=V.rule({selector:`.${y}`}),k=V.root({nodes:[b.clone()]}),S=k.toString(),_=(e.variantMap.get(p)??[]).flatMap((([j,ue])=>ue)),O=[];for(let j of _){let ue=[],ai={args:{modifier:w,value:m.values?.[x]??x},separator:e.tailwindConfig.separator,modifySelectors:Ce=>(k.each((Yn=>{"rule"===Yn.type&&(Yn.selectors=Yn.selectors.map((lu=>Ce({get className(){return no(lu)},selector:lu}))))})),k),format(Ce){ue.push(Ce)},wrap(Ce){ue.push(`@${Ce.name} ${Ce.params} { & }`)},container:k},oi=j(ai);if(ue.length>0&&O.push(ue),Array.isArray(oi))for(let Ce of oi)ue=[],Ce(ai),O.push(ue)}let I=[];S!==k.toString()&&(k.walkRules((j=>{let ue=j.selector,ai=(0,uo.default)((oi=>{oi.walkClasses((Ce=>{Ce.value=`${p}${e.tailwindConfig.separator}${Ce.value}`}))})).processSync(ue);I.push(ue.replace(ai,"&").replace(y,"&"))})),k.walkAtRules((j=>{I.push(`@${j.name} (${j.params}) { & }`)})));let q=!(x in(m.values??{})),X=m[Jr]??{},le=!(q||!1===X.respectPrefix);O=O.map((j=>j.map((ue=>({format:ue,respectPrefix:le}))))),I=I.map((j=>({format:j,respectPrefix:le})));let ce={candidate:y,context:e},$e=O.map((j=>wn(`.${y}`,$t(j,ce),ce).replace(`.${y}`,"&").replace("{ & }","").trim()));return I.length>0&&$e.push($t(I,ce).toString().replace(`.${y}`,"&")),$e}});return d}}(n,r),r}var Bd,uo,Jr,fo,co,ho,jt,ei,lt,Xr=C((()=>{l(),je(),ys(),nt(),Bd=K(Ls()),uo=K(Re()),Hr(),za(),un(),kt(),Ft(),Ua(),cr(),gd(),ot(),ot(),pi(),Oe(),fi(),Ja(),Sn(),Pd(),Md(),ze(),to(),Jr=Symbol(),fo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},co={Base:1,Dynamic:2},ho=new WeakMap,jt=yd,ei=wd,lt=gn}));function go(i){return i.ignore?[]:i.glob?"true"===h.env.ROLLUP_WATCH?[{type:"dependency",file:i.base}]:[{type:"dir-dependency",dir:i.base,glob:i.glob}]:[{type:"dependency",file:i.base}]}var Vd=C((()=>{l()}));function Ud(i,e){return{handler:i,config:e}}var Wd,Gd=C((()=>{l(),Ud.withOptions=function(i,e=(()=>({}))){let t=function(r){return{__options:r,handler:i(r),config:e(r)}};return t.__isOptionsFunction=!0,t.__pluginFunction=i,t.__configFunction=e,t},Wd=Ud})),yo={};Ae(yo,{default:()=>QC});var QC,wo=C((()=>{l(),Gd(),QC=Wd})),Yd=v(((qD,Hd)=>{l();var JC=(wo(),yo).default,XC={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},KC=JC((function({matchUtilities:i,addUtilities:e,theme:t,variants:r}){i({"line-clamp":a=>({...XC,"-webkit-line-clamp":`${a}`})},{values:t("lineClamp")}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],r("lineClamp"))}),{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});Hd.exports=KC}));function bo(i){0===i.content.files.length&&F.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=Yd();i.plugins.includes(e)&&(F.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),i.plugins=i.plugins.filter((t=>t!==e)))}catch{}return i}var Jd,En,vo,eh,Qd=C((()=>{l(),Oe()})),Xd=C((()=>{l(),Jd=()=>!1})),Kd=C((()=>{l(),En={sync:i=>[].concat(i),generateTasks:i=>[{dynamic:!1,base:".",negative:[],positive:[].concat(i),patterns:[].concat(i)}],escapePath:i=>i}})),Zd=C((()=>{l(),vo=i=>i})),th=C((()=>{l(),eh=()=>""}));var ih=C((()=>{l(),th()}));function nh(i,e){let t=e.content.files;t=t.filter((o=>"string"==typeof o)),t=t.map(vo);let r=En.generateTasks(t),n=[],a=[];for(let o of r)n.push(...o.positive.map((u=>sh(u,!1)))),a.push(...o.negative.map((u=>sh(u,!0))));let s=[...n,...a];return s=function(i,e){let t=[];return i.userConfigPath&&i.tailwindConfig.content.relative&&(t=[ee.dirname(i.userConfigPath)]),e.map((r=>(r.base=ee.resolve(...t,r.base),r)))}(i,s),s=s.flatMap(t2),s=s.map(ZC),s}function sh(i,e){let t={original:i,base:i,ignore:e,pattern:i,glob:null};return Jd(i)&&Object.assign(t,function(i){let e=i,t=eh(i);return"."!==t&&(e=i.substr(t.length),"/"===e.charAt(0)&&(e=e.substr(1))),"./"===e.substr(0,2)&&(e=e.substr(2)),"/"===e.charAt(0)&&(e=e.substr(1)),{base:t,glob:e}}(i)),t}function ZC(i){let e=vo(i.base);return e=En.escapePath(e),i.pattern=i.glob?`${e}/${i.glob}`:e,i.pattern=i.ignore?`!${i.pattern}`:i.pattern,i}function t2(i){let e=[i];try{let t=re.realpathSync(i.base);t!==i.base&&e.push({...i,base:t})}catch{}return e}function ah(i,e,t){let r=i.tailwindConfig.content.files.filter((s=>"string"==typeof s.raw)).map((({raw:s,extension:o="html"})=>({content:s,extension:o}))),[n,a]=function(i,e){let t=i.map((s=>s.pattern)),r=new Map,n=new Set;Pe.DEBUG&&console.time("Finding changed files");let a=En.sync(t,{absolute:!0});for(let s of a){let o=e.get(s)||-1/0,u=re.statSync(s).mtimeMs;u>o&&(n.add(s),r.set(s,u))}return Pe.DEBUG&&console.timeEnd("Finding changed files"),[n,r]}(e,t);for(let s of n){let o=ee.extname(s).slice(1);r.push({file:s,extension:o})}return[r,a]}var oh=C((()=>{l(),je(),gt(),Xd(),Kd(),Zd(),ih(),ot()}));var uh=C((()=>{l()}));function*fh(i,e,t,r=ee.extname(i)){let n=function(i,e){for(let t of e){let r=`${i}${t}`;if(re.existsSync(r)&&re.statSync(r).isFile())return r}for(let t of e){let r=`${i}/index${t}`;if(re.existsSync(r))return r}return null}(ee.resolve(e,i),i2.includes(r)?n2:s2);if(null===n||t.has(n))return;t.add(n),yield n,e=ee.dirname(n),r=ee.extname(n);let a=re.readFileSync(n,"utf-8");for(let s of[...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/require\(['"`](.+)['"`]\)/gi)])!s[1].startsWith(".")||(yield*fh(s[1],e,t,r))}var i2,n2,s2,ch=C((()=>{l(),je(),gt(),i2=[".js",".cjs",".mjs"],n2=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],s2=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]}));function l2(i){let e=ms(i);if(null!==e){let[r,n,a,s]=dh.get(e)||[],o=function(i){return null===i?new Set:new Set(fh(i,ee.dirname(i),new Set))}(e),u=!1,c=new Map;for(let p of o){let m=re.statSync(p).mtimeMs;c.set(p,m),(!s||!s.has(p)||m>s.get(p))&&(u=!0)}if(!u)return[r,e,n,a];for(let p of o)delete fu.cache[p];let f=bo(dr(void 0)),d=ui(f);return dh.set(e,[f,d,o,c]),[f,e,d,o]}let t=dr(i?.config??i??{});return t=bo(t),[t,null,ui(t),[]]}function So(i){return({tailwindDirectives:e,registerDependency:t})=>(r,n)=>{let[a,s,o,u]=l2(i),c=new Set(u);if(e.size>0){c.add(n.opts.from);for(let w of n.messages)"dependency"===w.type&&c.add(w.file)}let[f,,d]=function(i,e,t,r,n,a){let u,s=e.opts.from,o=null!==r;if(Pe.DEBUG&&console.log("Source path:",s),o&&jt.has(s))u=jt.get(s);else if(ei.has(n)){let p=ei.get(n);lt.get(p).add(s),jt.set(s,p),u=p}let c=Td(s,i);if(u){let[p,m]=Ld([...a],On(u));if(!p&&!c)return[u,!1,m]}if(jt.has(s)){let p=jt.get(s);if(lt.has(p)&&(lt.get(p).delete(s),0===lt.get(p).size)){lt.delete(p);for(let[m,w]of ei)w===p&&ei.delete(m);for(let m of p.disposables.splice(0))m(p)}}Pe.DEBUG&&console.log("Setting up new context...");let f=mo(t,[],i);Object.assign(f,{userConfigPath:r});let[,d]=Ld([...a],On(f));return ei.set(n,f),jt.set(s,f),lt.has(f)||lt.set(f,new Set),lt.get(f).add(s),[f,!0,d]}(r,n,a,s,o,c),p=On(f),m=function(i,e){if(ko.has(i))return ko.get(i);let t=nh(i,e);return ko.set(i,t).get(i)}(f,a);if(e.size>0){for(let y of m)for(let b of go(y))t(b);let[w,x]=ah(f,m,p);for(let y of w)f.changedContent.push(y);for(let[y,b]of x.entries())d.set(y,b)}for(let w of u)t({type:"dependency",file:w});for(let[w,x]of d.entries())p.set(w,x);return f}}var ph,dh,ko,hh=C((()=>{l(),je(),ph=K(Qn()),mu(),hs(),sf(),Xr(),Vd(),Qd(),oh(),uh(),ch(),dh=new ph.default({maxSize:100}),ko=new WeakMap}));var mh=C((()=>{l(),Oe()}));function vt(i,e=void 0,t=void 0){return i.map((r=>{let n=r.clone();return void 0!==t&&(n.raws.tailwind={...n.raws.tailwind,...t}),void 0!==e&&gh(n,(a=>{if(!0===a.raws.tailwind?.preserveSource&&a.source)return!1;a.source=e})),n}))}function gh(i,e){!1!==e(i)&&i.each?.((t=>gh(t,e)))}var yh=C((()=>{l()}));function Ao(i){return(i=(i=Array.isArray(i)?i:[i]).map((e=>e instanceof RegExp?e.source:e))).join("")}function ye(i){return new RegExp(Ao(i),"g")}function ut(i){return`(?:${i.map(Ao).join("|")})`}function _o(i){return`(?:${Ao(i)})?`}function bh(i){return i&&u2.test(i)?i.replace(wh,"\\$&"):i||""}var wh,u2,vh=C((()=>{l(),wh=/[\\^$.*+?()[\]{}|]/g,u2=RegExp(wh.source)}));function xh(i){let e=Array.from(function*(i){let e=i.tailwindConfig.separator,t=""!==i.tailwindConfig.prefix?_o(ye([/-?/,bh(i.tailwindConfig.prefix)])):"",r=ut([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,ye([ut([/-?(?:\w+)/,/@(?:\w+)/]),_o(ut([ye([ut([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),ye([ut([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[ut([ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/\w+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),ye([/[^\s"'`\[\\]+/,e])]),ut([ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/\w+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),ye([/[^\s`\[\\]+/,e])])];for(let a of n)yield ye(["((?=((",a,")+))\\2)?",/!?/,t,r]);yield/[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}(i));return t=>{let r=[];for(let n of e)for(let a of t.match(n)??[])r.push(d2(a));return r}}function d2(i){if(!i.includes("-["))return i;let e=0,t=[],r=i.matchAll(c2);r=Array.from(r).flatMap((n=>{let[,...a]=n;return a.map(((s,o)=>Object.assign([],n,{index:n.index+o,0:s})))}));for(let n of r){let a=n[0],s=t[t.length-1];if(a===s?t.pop():("'"===a||'"'===a||"`"===a)&&t.push(a),!s){if("["===a){e++;continue}if("]"===a){e--;continue}if(e<0)return i.substring(0,n.index-1);if(0===e&&!p2.test(a))return i.substring(0,n.index)}}return i}var c2,p2,kh=C((()=>{l(),vh(),c2=/([\[\]'"`])([^\[\]'"`])?/g,p2=/[^"'`\s<>\]]+/}));function h2(i,e){let t=i.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Ch[e]||Ch.DEFAULT(i)}function m2(i,e){let t=i.content.transform;return t[e]||t.DEFAULT||Ah[e]||Ah.DEFAULT}function g2(i,e,t,r){ti.has(e)||ti.set(e,new Sh.default({maxSize:25e3}));for(let n of i.split("\n"))if(n=n.trim(),!r.has(n))if(r.add(n),ti.get(e).has(n))for(let a of ti.get(e).get(n))t.add(a);else{let a=e(n).filter((o=>"!*"!==o)),s=new Set(a);for(let o of s)t.add(o);ti.get(e).set(n,s)}}function Oo(i){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules((w=>{"tailwind"===w.name&&Object.keys(t).includes(w.params)&&(t[w.params]=w)})),Object.values(t).every((w=>null===w)))return e;let r=new Set([...i.candidates??[],He]),n=new Set;Ye.DEBUG&&console.time("Reading changed files");{let w=[];for(let y of i.changedContent){let b=m2(i.tailwindConfig,y.extension),k=h2(i,y.extension);w.push([y,{transformer:b,extractor:k}])}let x=500;for(let y=0;y{g2(_(S=k?await re.promises.readFile(k,"utf8"):S),O,r,n)})))}}Ye.DEBUG&&console.timeEnd("Reading changed files");let a=i.classCache.size;Ye.DEBUG&&console.time("Generate rules"),Ye.DEBUG&&console.time("Sorting candidates");let s=new Set([...r].sort(((w,x)=>w===x?0:w{let x=w.raws.tailwind?.parentLayer;return"components"===x?null!==t.components:"utilities"!==x||null!==t.utilities}));t.variants?(t.variants.before(vt(p,t.variants.source,{layer:"variants"})),t.variants.remove()):p.length>0&&e.append(vt(p,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let m=p.some((w=>"utilities"===w.raws.tailwind?.parentLayer));t.utilities&&0===f.size&&!m&&F.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),Ye.DEBUG&&(console.log("Potential classes: ",r.size),console.log("Active contexts: ",gn.size)),i.changedContent=[],e.walkAtRules("layer",(w=>{Object.keys(t).includes(w.params)&&w.remove()}))}}var Sh,Ye,Ch,Ah,ti,_h=C((()=>{l(),je(),Sh=K(Qn()),ot(),Sn(),Oe(),yh(),kh(),Ye=Pe,Ch={DEFAULT:xh},Ah={DEFAULT:i=>i,svelte:i=>i.replace(/(?:^|\s)class:/g," ")},ti=new WeakMap}));function Pn(i){let e=new Map;V.root({nodes:[i.clone()]}).walkRules((a=>{(0,Tn.default)((s=>{s.walkClasses((o=>{let u=o.parent.toString(),c=e.get(u);c||e.set(u,c=new Set),c.add(o.value)}))})).processSync(a.selector)}));let r=Array.from(e.values(),(a=>Array.from(a))),n=r.flat();return Object.assign(n,{groups:r})}function Eo(i){return w2.astSync(i)}function Oh(i,e){let t=new Set;for(let r of i)t.add(r.split(e).pop());return Array.from(t)}function Eh(i,e){let t=i.tailwindConfig.prefix;return"function"==typeof t?t(e):t+e}function*Th(i){for(yield i;i.parent;)yield i.parent,i=i.parent}function b2(i,e={}){let t=i.nodes;i.nodes=[];let r=i.clone(e);return i.nodes=t,r}function x2(i,e){let t=new Map;return i.walkRules((r=>{for(let s of Th(r))if(void 0!==s.raws.tailwind?.layer)return;let n=function(i){for(let e of Th(i))if(i!==e){if("root"===e.type)break;i=b2(e,{nodes:[i]})}return i}(r),a=e.offsets.create("user");for(let s of Pn(r)){let o=t.get(s)||[];t.set(s,o),o.push([{layer:"user",sort:a,important:!1},n])}})),t}function k2(i,e){for(let t of i){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map((([n,a])=>[n,a.clone()])));continue}let r=Array.from(ao(t,e));0!==r.length?e.applyClassCache.set(t,r):e.notClassCache.add(t)}return e.applyClassCache}function Ph(i){let e=i.split(/[\s\t\n]+/g);return"!important"===e[e.length-1]?[e.slice(0,-1),!0]:[e,!1]}function Dh(i,e,t){let r=new Set,n=[];if(i.walkAtRules("apply",(u=>{let[c]=Ph(u.params);for(let f of c)r.add(f);n.push(u)})),0===n.length)return;let a=function(i){return{get:e=>i.flatMap((t=>t.get(e)||[])),has:e=>i.some((t=>t.has(e)))}}([t,k2(r,e)]);function s(u,c,f){let d=Eo(u),p=Eo(c),w=Eo(`.${de(f)}`).nodes[0].nodes[0];return d.each((x=>{let y=new Set;p.each((b=>{let k=!1;(b=b.clone()).walkClasses((S=>{S.value===w.value&&(k||(S.replaceWith(...x.nodes.map((_=>_.clone()))),y.add(b),k=!0))}))}));for(let b of y){let k=[[]];for(let S of b.nodes)"combinator"===S.type?(k.push(S),k.push([])):k[k.length-1].push(S);b.nodes=[];for(let S of k)Array.isArray(S)&&S.sort(((_,O)=>"tag"===_.type&&"class"===O.type?-1:"class"===_.type&&"tag"===O.type?1:"class"===_.type&&"pseudo"===O.type&&O.value.startsWith("::")?-1:"pseudo"===_.type&&_.value.startsWith("::")&&"class"===O.type?1:0)),b.nodes=b.nodes.concat(S)}x.replaceWith(...y)})),d.toString()}let o=new Map;for(let u of n){let[c]=o.get(u.parent)||[[],u.source];o.set(u.parent,[c,u.source]);let[f,d]=Ph(u.params);if("atrule"===u.parent.type){if("screen"===u.parent.name){let p=u.parent.params;throw u.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map((m=>`${p}:${m}`)).join(" ")} instead.`)}throw u.error(`@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.`)}for(let p of f){if([Eh(e,"group"),Eh(e,"peer")].includes(p))throw u.error(`@apply should not be used with the '${p}' utility`);if(!a.has(p))throw u.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let m=a.get(p);c.push([p,d,m])}}for(let[u,[c,f]]of o){let d=[];for(let[m,w,x]of c){let y=[m,...Oh([m],e.tailwindConfig.separator)];for(let[b,k]of x){let S=Pn(u),_=Pn(k);if(_=_.groups.filter((q=>q.some((X=>y.includes(X))))).flat(),_=_.concat(Oh(_,e.tailwindConfig.separator)),S.some((q=>_.includes(q))))throw k.error(`You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.`);let I=V.root({nodes:[k.clone()]});I.walk((q=>{q.source=f})),("atrule"!==k.type||"atrule"===k.type&&"keyframes"!==k.name)&&I.walkRules((q=>{if(!Pn(q).some((j=>j===m)))return void q.remove();let X="string"==typeof e.tailwindConfig.important?e.tailwindConfig.important:null,ce=void 0!==u.raws.tailwind&&X&&0===u.selector.indexOf(X)?u.selector.slice(X.length):u.selector;""===ce&&(ce=u.selector),q.selector=s(ce,q.selector,m),X&&ce!==u.selector&&(q.selector=bn(q.selector,X)),q.walkDecls((j=>{j.important=b.important||w}));let $e=(0,Tn.default)().astSync(q.selector);$e.each((j=>Lt(j))),q.selector=$e.toString()})),I.nodes[0]&&d.push([b.sort,I.nodes[0]])}}let p=e.offsets.sort(d).map((m=>m[1]));u.after(p)}for(let u of n)u.parent.nodes.length>1?u.remove():u.parent.remove();Dh(i,e,t)}function To(i){return e=>{let t=function(i){let e=null;return{get:t=>(e=e||i(),e.get(t)),has:t=>(e=e||i(),e.has(t))}}((()=>x2(e,i)));Dh(e,i,t)}}var Tn,w2,Ih=C((()=>{l(),nt(),Tn=K(Re()),Sn(),Ft(),io(),yn(),w2=(0,Tn.default)()})),qh=v(((P6,Dn)=>{l(),function(){"use strict";function i(r,n,a){if(!r)return null;i.caseSensitive||(r=r.toLowerCase());var u,s=null===i.threshold?null:i.threshold*r.length,o=i.thresholdAbsolute;u=null!==s&&null!==o?Math.min(s,o):null!==s?s:null!==o?o:null;var c,f,p,m,w=n.length;for(m=0;ma)return a+1;var c,f,d,p,m,u=[];for(c=0;c<=o;c++)u[c]=[c];for(f=0;f<=s;f++)u[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>a&&(p=c-a),(m=o+1)>a+c&&(m=a+c),f=1;f<=s;f++)fm?u[c][f]=a+1:n.charAt(c-1)===r.charAt(f-1)?u[c][f]=u[c-1][f-1]:u[c][f]=Math.min(u[c-1][f-1]+1,Math.min(u[c][f-1]+1,u[c-1][f]+1)),u[c][f]a)return a+1}return u[o][s]}}()})),Mh=v(((D6,Rh)=>{l();var Po="(".charCodeAt(0),Do=")".charCodeAt(0),In="'".charCodeAt(0),Io='"'.charCodeAt(0),qo="\\".charCodeAt(0),zt="/".charCodeAt(0),Ro=",".charCodeAt(0),Mo=":".charCodeAt(0),qn="*".charCodeAt(0),A2="u".charCodeAt(0),_2="U".charCodeAt(0),O2="+".charCodeAt(0),E2=/^[a-f0-9?-]+$/i;Rh.exports=function(i){for(var r,n,a,s,o,u,c,f,y,e=[],t=i,d=0,p=t.charCodeAt(d),m=t.length,w=[{nodes:e}],x=0,b="",k="",S="";d{l(),Bh.exports=function i(e,t,r){var n,a,s,o;for(n=0,a=e.length;n{function Nh(i,e){var n,a,t=i.type,r=i.value;return e&&void 0!==(a=e(i))?a:"word"===t||"space"===t?r:"string"===t?(n=i.quote||"")+r+(i.unclosed?"":n):"comment"===t?"/*"+r+(i.unclosed?"":"*/"):"div"===t?(i.before||"")+r+(i.after||""):Array.isArray(i.nodes)?(n=Lh(i.nodes,e),"function"!==t?n:r+"("+(i.before||"")+n+(i.after||"")+(i.unclosed?"":")")):r}function Lh(i,e){var t,r;if(Array.isArray(i)){for(t="",r=i.length-1;~r;r-=1)t=Nh(i[r],e)+t;return t}return Nh(i,e)}l(),$h.exports=Lh})),Vh=v(((R6,zh)=>{l();var Rn="-".charCodeAt(0),Mn="+".charCodeAt(0),Bo=".".charCodeAt(0),T2="e".charCodeAt(0),P2="E".charCodeAt(0);zh.exports=function(i){var r,n,a,e=0,t=i.length;if(0===t||!function(i){var t,e=i.charCodeAt(0);if(e===Mn||e===Rn){if((t=i.charCodeAt(1))>=48&&t<=57)return!0;var r=i.charCodeAt(2);return t===Bo&&r>=48&&r<=57}return e===Bo?(t=i.charCodeAt(1))>=48&&t<=57:e>=48&&e<=57}(i))return!1;for(((r=i.charCodeAt(e))===Mn||r===Rn)&&e++;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),r===Bo&&n>=48&&n<=57)for(e+=2;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),a=i.charCodeAt(e+2),(r===T2||r===P2)&&(n>=48&&n<=57||(n===Mn||n===Rn)&&a>=48&&a<=57))for(e+=n===Mn||n===Rn?3:2;e57);)e+=1;return{number:i.slice(0,e),unit:i.slice(e)}}})),Hh=v(((M6,Gh)=>{l();var I2=Mh(),Uh=Fh(),Wh=jh();function ft(i){return this instanceof ft?(this.nodes=I2(i),this):new ft(i)}ft.prototype.toString=function(){return Array.isArray(this.nodes)?Wh(this.nodes):""},ft.prototype.walk=function(i,e){return Uh(this.nodes,i,e),this},ft.unit=Vh(),ft.walk=Uh,ft.stringify=Wh,Gh.exports=ft}));function No(i){return"object"==typeof i&&null!==i}function Vt(i){return"string"==typeof i?i:i.reduce(((e,t,r)=>t.includes(".")?`${e}[${t}]`:0===r?t:`${e}.${t}`),"")}function Qh(i){return i.map((e=>`'${e}'`)).join(", ")}function Jh(i){return Qh(Object.keys(i))}function Lo(i,e,t,r={}){let n=Array.isArray(e)?Vt(e):e.replace(/^['"]+|['"]+$/g,""),a=Array.isArray(e)?e:Ke(n),s=(0,ri.default)(i.theme,a,t);if(void 0===s){let u=`'${n}' does not exist in your theme config.`,c=a.slice(0,-1),f=(0,ri.default)(i.theme,c);if(No(f)){let d=Object.keys(f).filter((m=>Lo(i,[...c,m]).isValid)),p=(0,Yh.default)(a[a.length-1],d);p?u+=` Did you mean '${Vt([...c,p])}'?`:d.length>0&&(u+=` '${Vt(c)}' has the following valid keys: ${Qh(d)}`)}else{let d=function(i,e){let t=Ke(e);do{if(t.pop(),void 0!==(0,ri.default)(i,t))break}while(t.length);return t.length?t:void 0}(i.theme,n);if(d){let p=(0,ri.default)(i.theme,d);No(p)?u+=` '${Vt(d)}' has the following keys: ${Jh(p)}`:u+=` '${Vt(d)}' is not an object.`}else u+=` Your theme has the following top-level keys: ${Jh(i.theme)}`}return{isValid:!1,error:u}}if(!("string"==typeof s||"number"==typeof s||"function"==typeof s||s instanceof String||s instanceof Number||Array.isArray(s))){let u=`'${n}' was found but does not resolve to a string.`;if(No(s)){let c=Object.keys(s).filter((f=>Lo(i,[...a,f]).isValid));c.length&&(u+=` Did you mean something like '${Vt([...a,c[0]])}'?`)}return{isValid:!1,error:u}}let[o]=a;return{isValid:!0,value:Ge(o)(s,r)}}function Xh(i,e,t){if("function"===e.type&&void 0!==t[e.value]){let r=function(i,e,t){e=e.map((n=>Xh(i,n,t)));let r=[""];for(let n of e)"div"===n.type&&","===n.value?r.push(""):r[r.length-1]+=Fo.default.stringify(n);return r}(i,e.nodes,t);e.type="word",e.value=t[e.value](i,...r)}return e}function Kh(i){let e=i.tailwindConfig,t={theme:(r,n,...a)=>{let{isValid:s,value:o,error:u,alpha:c}=function(i,e,t){let r=Array.from(function*(i){let t,e=(i=i.replace(/^['"]+|['"]+$/g,"")).match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/);yield[i,void 0],e&&(i=e[1],t=e[2],yield[i,t])}(e)).map((([n,a])=>Object.assign(Lo(i,n,t,{opacityValue:a}),{resolvedPath:n,alpha:a})));return r.find((n=>n.isValid))??r[0]}(e,n,a.length?a:void 0);if(!s){let p=r.parent,m=p?.raws.tailwind?.candidate;if(p&&void 0!==m)return i.markInvalidUtilityNode(p),p.remove(),void F.warn("invalid-theme-key-in-class",[`The utility \`${m}\` contains an invalid theme value and was not generated.`]);throw r.error(u)}let f=Ct(o);return(void 0!==c||void 0!==f&&"function"==typeof f)&&(void 0===c&&(c=1),o=De(f,c,f)),o},screen:(r,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let s=at(e.theme.screens).find((({name:o})=>o===n));if(!s)throw r.error(`The '${n}' screen does not exist in your theme.`);return st(s)}};return r=>{r.walk((n=>{let a=B2[n.type];void 0!==a&&(n[a]=function(i,e,t){return Object.keys(t).some((n=>e.includes(`${n}(`)))?(0,Fo.default)(e).walk((n=>{Xh(i,n,t)})).toString():e}(n,n[a],t))}))}}var ri,Yh,Fo,B2,Zh=C((()=>{l(),ri=K(Ls()),Yh=K(qh()),Hr(),Fo=K(Hh()),hn(),cn(),pi(),or(),cr(),Oe(),B2={atrule:"params",decl:"value"}}));var tm=C((()=>{l(),hn(),cn()}));function j2(i){return $o.has(i)||$o.set(i,$2.transformSync(i)),$o.get(i)}var Bn,rm,$2,$o,im=C((()=>{l(),nt(),Bn=K(Re()),ze(),rm={id:i=>Bn.default.attribute({attribute:"id",operator:"=",value:i.value,quoteMark:'"'})},$2=(0,Bn.default)((i=>i.map((e=>function(i){let e=i.filter((o=>"pseudo"!==o.type||o.nodes.length>0||o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value))).reverse(),t=new Set(["tag","class","id","attribute"]),r=e.findIndex((o=>t.has(o.type)));if(-1===r)return e.reverse().join("").trim();let n=e[r],a=rm[n.type]?rm[n.type](n):n;e=e.slice(0,r);let s=e.findIndex((o=>"combinator"===o.type&&">"===o.value));return-1!==s&&(e.splice(0,s),e.unshift(Bn.default.universal())),[a,...e.reverse()].join("").trim()}(e.split((r=>"combinator"===r.type&&" "===r.value)).pop()))))),$o=new Map}));function zo(){function i(e){let t=null;e.each((r=>{if(!z2.has(r.type))return void(t=null);if(null===t)return void(t=r);let n=nm[r.type];"atrule"===r.type&&"font-face"===r.name?t=r:n.every((a=>(r[a]??"").replace(/\s+/g," ")===(t[a]??"").replace(/\s+/g," ")))?(r.nodes&&t.append(r.nodes),r.remove()):t=r})),e.each((r=>{"atrule"===r.type&&i(r)}))}return e=>{i(e)}}var nm,z2,sm=C((()=>{l(),nm={atrule:["name","params"],rule:["selector"]},z2=new Set(Object.keys(nm))}));function U2(i){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(i);return e?e[1]??V2:null}var V2,am=C((()=>{l(),V2=Symbol("unitless-number")}));function Fn(){return i=>{!function(i){if(!i.walkAtRules)return;let e=new Set;if(i.walkAtRules("apply",(t=>{e.add(t.parent)})),0!==e.size)for(let t of e){let r=[],n=[];for(let a of t.nodes)"atrule"===a.type&&"apply"===a.name?(n.length>0&&(r.push(n),n=[]),r.push([a])):n.push(a);if(n.length>0&&r.push(n),1!==r.length){for(let a of[...r].reverse()){let s=t.clone({nodes:[]});s.append(a),t.after(s)}t.remove()}}}(i)}}var om=C((()=>{l()}));var um=C((()=>{l()}));function Nn(i){return async function(e,t){let{tailwindDirectives:r,applyDirectives:n}=function(i){let e=new Set,t=new Set,r=new Set;if(i.walkAtRules((n=>{"apply"===n.name&&r.add(n),"import"===n.name&&('"tailwindcss/base"'===n.params||"'tailwindcss/base'"===n.params?(n.name="tailwind",n.params="base"):'"tailwindcss/components"'===n.params||"'tailwindcss/components'"===n.params?(n.name="tailwind",n.params="components"):'"tailwindcss/utilities"'===n.params||"'tailwindcss/utilities'"===n.params?(n.name="tailwind",n.params="utilities"):('"tailwindcss/screens"'===n.params||"'tailwindcss/screens'"===n.params||'"tailwindcss/variants"'===n.params||"'tailwindcss/variants'"===n.params)&&(n.name="tailwind",n.params="variants")),"tailwind"===n.name&&("screens"===n.params&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&F.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))})),!e.has("base")||!e.has("components")||!e.has("utilities"))for(let n of t)if("layer"===n.name&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if("responsive"===n.name){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if("variants"===n.name&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.");return{tailwindDirectives:e,applyDirectives:r}}(e);((e,t)=>{let r=!1;e.walkAtRules("tailwind",(n=>!r&&(!n.parent||function(i){return"root"===i.type}(n.parent)||function(i){return"atrule"===i.type&&"layer"===i.name}(n.parent)?void 0:(r=!0,n.warn(t,["Nested @tailwind rules were detected, but are not supported.","Consider using a prefix to scope Tailwind's classes: https://tailwindcss.com/docs/configuration#prefix","Alternatively, use the important selector strategy: https://tailwindcss.com/docs/configuration#selector-strategy"].join("\n")),!1)))),e.walkRules((n=>{if(r)return!1;n.walkRules((a=>(r=!0,a.warn(t,["Nested CSS was detected, but CSS nesting has not been configured correctly.","Please enable a CSS nesting plugin *before* Tailwind in your configuration.","See how here: https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join("\n")),!1)))}))})(e,t),Fn()(e,t);let a=i({tailwindDirectives:r,applyDirectives:n,registerDependency(s){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...s})},createContext:(s,o)=>mo(s,o,e)})(e,t);if("-"===a.tailwindConfig.separator)throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");(function(i){if(void 0===h.env.JEST_WORKER_ID&&Au(i).length>0){let e=Au(i).map((t=>_e.yellow(t))).join(", ");F.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}})(a.tailwindConfig),await Oo(a)(e,t),Fn()(e,t),To(a)(e,t),Kh(a)(e,t),function({tailwindConfig:{theme:i}}){return function(e){e.walkAtRules("screen",(t=>{let r=t.params,a=at(i.screens).find((({name:s})=>s===r));if(!a)throw t.error(`No \`${r}\` screen found.`);t.name="media",t.params=st(a)}))}}(a)(e,t),function({tailwindConfig:i}){return e=>{let t=new Map,r=new Set;if(e.walkAtRules("defaults",(n=>{if(n.nodes&&n.nodes.length>0)return void r.add(n);let a=n.params;t.has(a)||t.set(a,new Set),t.get(a).add(n.parent),n.remove()})),Z(i,"optimizeUniversalDefaults"))for(let n of r){let a=new Map,s=t.get(n.params)??[];for(let o of s)for(let u of j2(o.selector)){let c=u.includes(":-")||u.includes("::-")?u:"__DEFAULT__",f=a.get(c)??new Set;a.set(c,f),f.add(u)}if(Z(i,"optimizeUniversalDefaults")){if(0===a.size){n.remove();continue}for(let[,o]of a){let u=V.rule({source:n.source});u.selectors=[...o],u.append(n.nodes.map((c=>c.clone()))),n.before(u)}}n.remove()}else if(r.size){let n=V.rule({selectors:["*","::before","::after"]});for(let s of r)n.append(s.nodes),n.parent||s.before(n),n.source||(n.source=s.source),s.remove();let a=n.clone({selectors:["::backdrop"]});n.after(a)}}}(a)(e,t),zo()(e,t),(i=>{i.walkRules((e=>{let t=new Map,r=new Set([]),n=new Map;e.walkDecls((a=>{if(a.parent===e){if(t.has(a.prop)){if(t.get(a.prop).value===a.value)return r.add(t.get(a.prop)),void t.set(a.prop,a);n.has(a.prop)||n.set(a.prop,new Set),n.get(a.prop).add(t.get(a.prop)),n.get(a.prop).add(a)}t.set(a.prop,a)}}));for(let a of r)a.remove();for(let a of n.values()){let s=new Map;for(let o of a){let u=U2(o.value);null!==u&&(s.has(u)||s.set(u,new Set),s.get(u).add(o))}for(let o of s.values()){let u=Array.from(o).slice(0,-1);for(let c of u)c.remove()}}}))})(e)}}var fm=C((()=>{l(),mh(),_h(),Ih(),Zh(),tm(),im(),sm(),am(),om(),um(),Xr(),ze()}));var pm=C((()=>{l(),je(),gt()})),dm=v(((vI,Uo)=>{l(),hh(),fm(),ot(),pm(),Uo.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Pe.DEBUG&&function(t){return console.log("\n"),console.time("JIT TOTAL"),t},async function(t,r){e=function(i,e){let t=null,r=null;return i.walkAtRules("config",(n=>{if(r=n.source?.input.file??e.opts.from??null,null===r)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let a=n.params.match(/(['"])(.*?)\1/);if(!a)throw n.error("A path is required when using the `@config` directive.");let s=a[2];if(ee.isAbsolute(s))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=ee.resolve(ee.dirname(r),s),!re.existsSync(t))throw n.error(`The config file at "${s}" does not exist. Make sure the path is correct and the file exists.`);n.remove()})),t||null}(t,r)??e;let n=So(e);if("document"!==t.type)await Nn(n)(t,r);else{let a=t.nodes.filter((s=>"root"===s.type));for(let s of a)"root"===s.type&&await Nn(n)(s,r)}},!1,Pe.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log("\n"),t}].filter(Boolean)}},Uo.exports.postcss=!0})),mm=v(((xI,hm)=>{l(),hm.exports=dm()})),Wo=v(((kI,gm)=>{l(),gm.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]})),Ln={};function Q2(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",5.5:"n"},edge:{12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",79:"y",80:"y",81:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y"},firefox:{2:"n",3:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",59:"y",60:"y",61:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",82:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y",115:"y",116:"y",117:"y",3.5:"n",3.6:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",59:"y",60:"y",61:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y",115:"y",116:"y",117:"y"},safari:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",17:"y",9.1:"y",10.1:"y",11.1:"y",12.1:"y",13.1:"y",14.1:"y",15.1:"y","15.2-15.3":"y",15.4:"y",15.5:"y",15.6:"y","16.0":"y",16.1:"y",16.2:"y",16.3:"y",16.4:"y",16.5:"y",16.6:"y",TP:"y",3.1:"n",3.2:"n",5.1:"n",6.1:"n",7.1:"n"},opera:{9:"n",11:"n",12:"n",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",60:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",82:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",12.1:"y","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11.1:"n",11.5:"n",11.6:"n"},ios_saf:{8:"n",17:"y","9.0-9.2":"y",9.3:"y","10.0-10.2":"y",10.3:"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y",13.2:"y",13.3:"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y",15.4:"y",15.5:"y",15.6:"y","16.0":"y",16.1:"y",16.2:"y",16.3:"y",16.4:"y",16.5:"y",16.6:"y",3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{3:"n",4:"n",114:"y",4.4:"y","4.4.3-4.4.4":"y",2.1:"n",2.2:"n",2.3:"n",4.1:"n","4.2-4.3":"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",12:"n",73:"y",11.1:"n",11.5:"n",12.1:"n"},and_chr:{114:"y"},and_ff:{115:"y"},ie_mob:{10:"n",11:"n"},and_uc:{15.5:"y"},samsung:{4:"y",20:"y",21:"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y",8.2:"y",9.2:"y",10.1:"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{13.1:"y"},baidu:{13.18:"y"},kaios:{2.5:"y","3.0-3.1":"y"}}}}Ae(Ln,{agents:()=>Y2,feature:()=>Q2});var Y2,$n=C((()=>{l(),Y2={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{12:"ms",13:"ms",14:"ms",15:"ms",16:"ms",17:"ms",18:"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{9:"o",11:"o",12:"o","9.5-9.6":"o","10.0-10.1":"o",10.5:"o",10.6:"o",11.1:"o",11.5:"o",11.6:"o",12.1:"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{73:"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{15.5:"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}})),ym=v((()=>{l()})),fe=v(((AI,ct)=>{l();var{list:Go}=ge();ct.exports.error=function(i){let e=new Error(i);throw e.autoprefixer=!0,e},ct.exports.uniq=function(i){return[...new Set(i)]},ct.exports.removeNote=function(i){return i.includes(" ")?i.split(" ")[0]:i},ct.exports.escapeRegexp=function(i){return i.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")},ct.exports.regexp=function(i,e=!0){return e&&(i=this.escapeRegexp(i)),new RegExp(`(^|[\\s,(])(${i}($|[\\s(,]))`,"gi")},ct.exports.editList=function(i,e){let t=Go.comma(i),r=e(t,[]);if(t===r)return i;let n=i.match(/,\s*/);return n=n?n[0]:", ",r.join(n)},ct.exports.splitSelector=function(i){return Go.comma(i).map((e=>Go.space(e).map((t=>t.split(/(?=\.|#)/g)))))}})),pt=v(((_I,vm)=>{l();var J2=Wo(),wm=($n(),Ln).agents,X2=fe();vm.exports=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in wm)this.prefixesCache.push(`-${wm[e].prefix}-`);return this.prefixesCache=X2.uniq(this.prefixesCache).sort(((e,t)=>t.length-e.length)),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,r,n){this.data=e,this.options=r||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let r in this.browserslistOpts)t[r]=this.browserslistOpts[r];return t.path=this.options.from,J2(e,t)}prefix(e){let[t,r]=e.split(" "),n=this.data[t],a=n.prefix_exceptions&&n.prefix_exceptions[r];return a||(a=n.prefix),`-${a}-`}isSelected(e){return this.selected.includes(e)}}})),ii=v(((OI,xm)=>{l(),xm.exports={prefix(i){let e=i.match(/^(-\w+-)/);return e?e[0]:""},unprefixed:i=>i.replace(/^-\w+-/,"")}})),Ut=v(((EI,Sm)=>{l();var K2=pt(),km=ii(),Z2=fe();function Ho(i,e){let t=new i.constructor;for(let r of Object.keys(i||{})){let n=i[r];"parent"===r&&"object"==typeof n?e&&(t[r]=e):"source"===r||null===r?t[r]=n:Array.isArray(n)?t[r]=n.map((a=>Ho(a,t))):"_autoprefixerPrefix"!==r&&"_autoprefixerValues"!==r&&"proxyCache"!==r&&("object"==typeof n&&null!==n&&(n=Ho(n,t)),t[r]=n)}return t}var jn=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map((t=>(this.hacks[t]=e,this.hacks[t])))}static load(e,t,r){let n=this.hacks&&this.hacks[e];return n?new n(e,t,r):new this(e,t,r)}static clone(e,t){let r=Ho(e);for(let n in t)r[n]=t[n];return r}constructor(e,t,r){this.prefixes=t,this.name=e,this.all=r}parentPrefix(e){let t;return t=void 0!==e._autoprefixerPrefix?e._autoprefixerPrefix:"decl"===e.type&&"-"===e.prop[0]?km.prefix(e.prop):"root"!==e.type&&("rule"===e.type&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?e.selector.match(/:(-\w+-)/)[1]:"atrule"===e.type&&"-"===e.name[0]?km.prefix(e.name):this.parentPrefix(e.parent)),K2.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let r=this.parentPrefix(e),n=this.prefixes.filter((s=>!r||r===Z2.removeNote(s))),a=[];for(let s of n)this.add(e,s,a.concat([s]),t)&&a.push(s);return a}clone(e,t){return jn.clone(e,t)}};Sm.exports=jn})),R=v(((TI,_m)=>{l();var eA=Ut(),tA=pt(),Cm=fe();_m.exports=class extends eA{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let r of tA.prefixes())if(r!==t&&e.includes(r))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=!1!==this.all.options.cascade&&e.raw("before").includes("\n")),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let r=0;for(let n of e)n=Cm.removeNote(n),n.length>r&&(r=n.length);return t._autoprefixerMax=r,t._autoprefixerMax}calcBefore(e,t,r=""){let a=this.maxPrefixed(e,t)-Cm.removeNote(r).length,s=t.raw("before");return a>0&&(s+=Array(a).fill(" ").join("")),s}restoreBefore(e){let t=e.raw("before").split("\n"),r=t[t.length-1];this.all.group(e).up((n=>{let a=n.raw("before").split("\n"),s=a[a.length-1];s.lengths.prop===n.prop&&s.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let r=this.all.group(e).up((n=>n.prop===t));return r||(r=this.all.group(e).down((n=>n.prop===t))),r}add(e,t,r,n){let a=this.prefixed(e.prop,t);if(!this.isAlready(e,a)&&!this.otherPrefixes(e.value,t))return this.insert(e,t,r,n)}process(e,t){if(!this.needCascade(e))return void super.process(e,t);let r=super.process(e,t);!r||!r.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(r,e))}old(e,t){return[this.prefixed(e,t)]}}})),Em=v(((PI,Om)=>{l(),Om.exports=function i(e){return{mul:t=>new i(e*t),div:t=>new i(e/t),simplify:()=>new i(e),toString:()=>e.toString()}}})),Dm=v(((DI,Pm)=>{l();var rA=Em(),iA=Ut(),Yo=fe(),nA=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,sA=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i;Pm.exports=class extends iA{prefixName(e,t){return"-moz-"===e?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,r,n,a){return n=new rA(n),"dpi"===a?n=n.div(96):"dpcm"===a&&(n=n.mul(2.54).div(96)),n=n.simplify(),"-o-"===e&&(n=n.n+"/"+n.d),this.prefixName(e,t)+r+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Yo.editList(e.params,(t=>t.filter((r=>this.bad.every((n=>!r.includes(n)))))))}process(e){let t=this.parentPrefix(e),r=t?[t]:this.prefixes;e.params=Yo.editList(e.params,((n,a)=>{for(let s of n)if(s.includes("min-resolution")||s.includes("max-resolution")){for(let o of r){let u=s.replace(nA,(c=>{let f=c.match(sA);return this.prefixQuery(o,f[1],f[2],f[3],f[4])}));a.push(u)}a.push(s)}else a.push(s);return Yo.uniq(a)}))}}})),qm=v(((II,Im)=>{l();var Qo="(".charCodeAt(0),Jo=")".charCodeAt(0),zn="'".charCodeAt(0),Xo='"'.charCodeAt(0),Ko="\\".charCodeAt(0),Wt="/".charCodeAt(0),Zo=",".charCodeAt(0),el=":".charCodeAt(0),Vn="*".charCodeAt(0),aA="u".charCodeAt(0),oA="U".charCodeAt(0),lA="+".charCodeAt(0),uA=/^[a-f0-9?-]+$/i;Im.exports=function(i){for(var r,n,a,s,o,u,c,f,y,e=[],t=i,d=0,p=t.charCodeAt(d),m=t.length,w=[{nodes:e}],x=0,b="",k="",S="";d{l(),Rm.exports=function i(e,t,r){var n,a,s,o;for(n=0,a=e.length;n{function Bm(i,e){var n,a,t=i.type,r=i.value;return e&&void 0!==(a=e(i))?a:"word"===t||"space"===t?r:"string"===t?(n=i.quote||"")+r+(i.unclosed?"":n):"comment"===t?"/*"+r+(i.unclosed?"":"*/"):"div"===t?(i.before||"")+r+(i.after||""):Array.isArray(i.nodes)?(n=Fm(i.nodes,e),"function"!==t?n:r+"("+(i.before||"")+n+(i.after||"")+(i.unclosed?"":")")):r}function Fm(i,e){var t,r;if(Array.isArray(i)){for(t="",r=i.length-1;~r;r-=1)t=Bm(i[r],e)+t;return t}return Bm(i,e)}l(),Nm.exports=Fm})),jm=v(((MI,$m)=>{l();var Un="-".charCodeAt(0),Wn="+".charCodeAt(0),tl=".".charCodeAt(0),fA="e".charCodeAt(0),cA="E".charCodeAt(0);$m.exports=function(i){var r,n,a,e=0,t=i.length;if(0===t||!function(i){var t,e=i.charCodeAt(0);if(e===Wn||e===Un){if((t=i.charCodeAt(1))>=48&&t<=57)return!0;var r=i.charCodeAt(2);return t===tl&&r>=48&&r<=57}return e===tl?(t=i.charCodeAt(1))>=48&&t<=57:e>=48&&e<=57}(i))return!1;for(((r=i.charCodeAt(e))===Wn||r===Un)&&e++;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),r===tl&&n>=48&&n<=57)for(e+=2;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),a=i.charCodeAt(e+2),(r===fA||r===cA)&&(n>=48&&n<=57||(n===Wn||n===Un)&&a>=48&&a<=57))for(e+=n===Wn||n===Un?3:2;e57);)e+=1;return{number:i.slice(0,e),unit:i.slice(e)}}})),Gn=v(((BI,Um)=>{l();var dA=qm(),zm=Mm(),Vm=Lm();function dt(i){return this instanceof dt?(this.nodes=dA(i),this):new dt(i)}dt.prototype.toString=function(){return Array.isArray(this.nodes)?Vm(this.nodes):""},dt.prototype.walk=function(i,e){return zm(this.nodes,i,e),this},dt.unit=jm(),dt.walk=zm,dt.stringify=Vm,Um.exports=dt})),Qm=v(((FI,Ym)=>{l();var{list:hA}=ge(),Wm=Gn(),mA=pt(),Gm=ii();Ym.exports=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let r,n,a=this.prefixes.add[e.prop],s=this.ruleVendorPrefixes(e),o=s||a&&a.prefixes||[],u=this.parse(e.value),c=u.map((m=>this.findProp(m))),f=[];if(c.some((m=>"-"===m[0])))return;for(let m of u){if(n=this.findProp(m),"-"===n[0])continue;let w=this.prefixes.add[n];if(w&&w.prefixes)for(r of w.prefixes){if(s&&!s.some((y=>r.includes(y))))continue;let x=this.prefixes.prefixed(n,r);"-ms-transform"!==x&&!c.includes(x)&&(this.disabled(n,r)||f.push(this.clone(n,x,m)))}}u=u.concat(f);let d=this.stringify(u),p=this.stringify(this.cleanFromUnprefixed(u,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let m=this.stringify(this.cleanFromUnprefixed(u,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,m)}for(r of o)if("-webkit-"!==r&&"-o-"!==r){let m=this.stringify(this.cleanOtherPrefixes(u,r));this.cloneBefore(e,r+e.prop,m)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t))for(let[r,n]of e.entries())if(0!==r&&"word"===n.type)return n.value;return t}already(e,t,r){return e.parent.some((n=>n.prop===t&&n.value===r))}cloneBefore(e,t,r){this.already(e,t,r)||e.cloneBefore({prop:t,value:r})}checkForWarning(e,t){if("transition-property"!==t.prop)return;let r=!1,n=!1;t.parent.each((a=>{if("decl"!==a.type||0!==a.prop.indexOf("transition-"))return;let s=hA.comma(a.value);if("transition-property"!==a.prop)return n=n||s.length>1,!1;s.forEach((o=>{let u=this.prefixes.add[o];u&&u.prefixes&&u.prefixes.length>0&&(r=!0)}))})),r&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter((s=>{let o=this.prefixes.remove[this.findProp(s)];return!o||!o.remove}));let r=this.stringify(t);if(e.value===r)return;if(0===t.length)return void e.remove();let n=e.parent.some((s=>s.prop===e.prop&&s.value===r)),a=e.parent.some((s=>s!==e&&s.prop===e.prop&&s.value.length>r.length));n||a?e.remove():e.value=r}parse(e){let t=Wm(e),r=[],n=[];for(let a of t.nodes)n.push(a),"div"===a.type&&","===a.value&&(r.push(n),n=[]);return r.push(n),r.filter((a=>a.length>0))}stringify(e){if(0===e.length)return"";let t=[];for(let r of e)"div"!==r[r.length-1].type&&r.push(this.div(e)),t=t.concat(r);return"div"===t[0].type&&(t=t.slice(1)),"div"===t[t.length-1].type&&(t=t.slice(0,-1)),Wm.stringify({nodes:t})}clone(e,t,r){let n=[],a=!1;for(let s of r)a||"word"!==s.type||s.value!==e?n.push(s):(n.push({type:"word",value:t}),a=!0);return n}div(e){for(let t of e)for(let r of t)if("div"===r.type&&","===r.value)return r;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter((r=>{let n=Gm.prefix(this.findProp(r));return""===n||n===t}))}cleanFromUnprefixed(e,t){let r=e.map((a=>this.findProp(a))).filter((a=>a.slice(0,t.length)===t)).map((a=>this.prefixes.unprefixed(a))),n=[];for(let a of e){let s=this.findProp(a),o=Gm.prefix(s);!r.includes(s)&&(o===t||""===o)&&n.push(a)}return n}disabled(e,t){if(e.includes("flex")||["order","justify-content","align-self","align-content"].includes(e)){if(!1===this.prefixes.options.flexbox)return!0;if("no-2009"===this.prefixes.options.flexbox)return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if("rule"!==t.type)return!1;if(!t.selector.includes(":-"))return!1;let r=mA.prefixes().filter((n=>t.selector.includes(":"+n)));return r.length>0&&r}}})),Gt=v(((NI,Xm)=>{l();var gA=fe();Xm.exports=class{constructor(e,t,r,n){this.unprefixed=e,this.prefixed=t,this.string=r||t,this.regexp=n||gA.regexp(t)}check(e){return!!e.includes(this.string)&&!!e.match(this.regexp)}}})),ke=v(((LI,Zm)=>{l();var yA=Ut(),wA=Gt(),bA=ii(),vA=fe();Zm.exports=class extends yA{static save(e,t){let r=t.prop,n=[];for(let a in t._autoprefixerValues){let s=t._autoprefixerValues[a];if(s===t.value)continue;let o,u=bA.prefix(r);if("-pie-"===u)continue;if(u===a){o=t.value=s,n.push(o);continue}let c=e.prefixed(r,a),f=t.parent;if(!f.every((w=>w.prop!==c))){n.push(o);continue}let d=s.replace(/\s+/," ");if(f.some((w=>w.prop===t.prop&&w.value.replace(/\s+/," ")===d))){n.push(o);continue}let m=this.clone(t,{value:s});o=t.parent.insertBefore(t,m),n.push(o)}return n}check(e){let t=e.value;return!!t.includes(this.name)&&!!t.match(this.regexp())}regexp(){return this.regexpCache||(this.regexpCache=vA.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let n,r=e._autoprefixerValues[t]||this.value(e);do{if(n=r,r=this.replace(r,t),!1===r)return}while(r!==n);e._autoprefixerValues[t]=r}old(e){return new wA(this.name,e+this.name)}}})),ht=v((($I,eg)=>{l(),eg.exports={}})),il=v(((jI,ig)=>{l();var tg=Gn(),xA=ke(),kA=ht().insertAreas,SA=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,CA=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,AA=/(!\s*)?autoprefixer:\s*ignore\s+next/i,_A=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,OA=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function rl(i){return i.parent.some((e=>"grid-template"===e.prop||"grid-template-areas"===e.prop))}ig.exports=class{constructor(e){this.prefixes=e}add(e,t){let r=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],a=this.prefixes.add["@viewport"],s=this.prefixes.add["@supports"];function o(f){return f.parent.nodes.some((d=>{if("decl"!==d.type)return!1;let p="display"===d.prop&&/(inline-)?grid/.test(d.value),m=d.prop.startsWith("grid-template"),w=/^grid-([A-z]+-)?gap/.test(d.prop);return p||m||w}))}e.walkAtRules((f=>{if("keyframes"===f.name){if(!this.disabled(f,t))return n&&n.process(f)}else if("viewport"===f.name){if(!this.disabled(f,t))return a&&a.process(f)}else if("supports"===f.name){if(!1!==this.prefixes.options.supports&&!this.disabled(f,t))return s.process(f)}else if("media"===f.name&&f.params.includes("-resolution")&&!this.disabled(f,t))return r&&r.process(f)})),e.walkRules((f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map((d=>d.process(f,t)))}));let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls((f=>{if(this.disabledDecl(f,t))return;let w,d=f.parent,p=f.prop,m=f.value;if("grid-row-span"!==p)if("grid-column-span"!==p)if("display"!==p||"box"!==m){if("text-emphasis-position"===p)("under"===m||"over"===m)&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&function(f){return f.parent.some((d=>"display"===d.prop&&/(inline-)?flex/.test(d.value)))}(f))("start"===m||"end"===m)&&t.warn(`${m} value has mixed support, consider using flex-${m} instead`,{node:f});else if("text-decoration-skip"===p&&"ink"===m)t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if("subgrid"===f.value&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let x=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else{if("display"===p&&"contents"===f.value)return void t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});if("grid-gap"===f.prop){let x=this.gridStatus(f,t);"autoplace"!==x||function(i){let e=i.parent.some((r=>"grid-template-rows"===r.prop)),t=i.parent.some((r=>"grid-template-columns"===r.prop));return e&&t}(f)||rl(f)?(!0===x||"no-autoplace"===x)&&!rl(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f}):t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f})}else{if("grid-auto-columns"===p)return void t.warn("grid-auto-columns is not supported by IE",{node:f});if("grid-auto-rows"===p)return void t.warn("grid-auto-rows is not supported by IE",{node:f});if("grid-auto-flow"===p){let x=d.some((b=>"grid-template-rows"===b.prop)),y=d.some((b=>"grid-template-columns"===b.prop));return void(rl(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):m.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!x&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f}))}if(m.includes("auto-fit"))return void t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});if(m.includes("auto-fill"))return void t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});p.startsWith("grid-template")&&m.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["})}}if(m.includes("radial-gradient"))if(CA.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let x=tg(m);for(let y of x.nodes)if("function"===y.type&&"radial-gradient"===y.value)for(let b of y.nodes)"word"===b.type&&("cover"===b.value?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):"contain"===b.value&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}m.includes("linear-gradient")&&SA.test(m)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}if(OA.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&tg(m).nodes.some((y=>"word"===y.type&&"fill"===y.value))&&t.warn("Replace fill to stretch, because spec had been changed",{node:f}))),"transition"===f.prop||"transition-property"===f.prop)return this.prefixes.transition.add(f,t);if("align-self"===f.prop){if("grid"!==this.displayType(f)&&!1!==this.prefixes.options.flexbox&&(w=this.prefixes.add["align-self"],w&&w.prefixes&&w.process(f)),!1!==this.gridStatus(f,t)&&(w=this.prefixes.add["grid-row-align"],w&&w.prefixes))return w.process(f,t)}else if("justify-self"===f.prop){if(!1!==this.gridStatus(f,t)&&(w=this.prefixes.add["grid-column-align"],w&&w.prefixes))return w.process(f,t)}else if("place-self"===f.prop){if(w=this.prefixes.add["place-self"],w&&w.prefixes&&!1!==this.gridStatus(f,t))return w.process(f,t)}else if(w=this.prefixes.add[f.prop],w&&w.prefixes)return w.process(f,t)}else t.warn("You should write display: flex by final spec instead of display: box",{node:f});else t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});else t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f})})),this.gridStatus(e,t)&&kA(e,this.disabled),e.walkDecls((f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let m of p)m.process&&m.process(f,t);xA.save(this.prefixes,f)}))}remove(e,t){let r=this.prefixes.remove["@resolution"];e.walkAtRules(((n,a)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(a):"media"===n.name&&n.params.includes("-resolution")&&r&&r.clean(n)}));for(let n of this.prefixes.remove.selectors)e.walkRules(((a,s)=>{n.check(a)&&(this.disabled(a,t)||a.parent.removeChild(s))}));return e.walkDecls(((n,a)=>{if(this.disabled(n,t))return;let s=n.parent,o=this.prefixes.unprefixed(n.prop);if(("transition"===n.prop||"transition-property"===n.prop)&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let u=this.prefixes.group(n).down((c=>this.prefixes.normalize(c.prop)===o));if("flex-flow"===o&&(u=!0),"-webkit-box-orient"===n.prop){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some((f=>c[f.prop])))return}if(u&&!this.withHackValue(n))return n.raw("before").includes("\n")&&this.reduceSpaces(n),void s.removeChild(a)}for(let u of this.prefixes.values("remove",o))if(u.check&&u.check(n.value)&&(o=u.unprefixed,this.prefixes.group(n).down((f=>f.value.includes(o)))))return void s.removeChild(a)}))}withHackValue(e){return"-webkit-background-clip"===e.prop&&"text"===e.value}disabledValue(e,t){return!!(!1===this.gridStatus(e,t)&&"decl"===e.type&&"display"===e.prop&&e.value.includes("grid")||!1===this.prefixes.options.flexbox&&"decl"===e.type&&"display"===e.prop&&e.value.includes("flex")||"decl"===e.type&&"content"===e.prop)||this.disabled(e,t)}disabledDecl(e,t){if(!1===this.gridStatus(e,t)&&"decl"===e.type&&(e.prop.includes("grid")||"justify-items"===e.prop))return!0;if(!1===this.prefixes.options.flexbox&&"decl"===e.type){let r=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||r.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(void 0!==e._autoprefixerDisabled)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&"comment"===n.type&&AA.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let r=null;if(e.nodes){let n;e.each((a=>{"comment"===a.type&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text)&&(void 0!==n?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:a}):n=/on/i.test(a.text))})),void 0!==n&&(r=!n)}if(!e.nodes||null===r)if(e.parent){let n=this.disabled(e.parent,t);r=!0!==e.parent._autoprefixerSelfDisabled&&n}else r=!1;return e._autoprefixerDisabled=r,r}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up((()=>(t=!0,!0))),t)return;let r=e.raw("before").split("\n"),n=r[r.length-1].length,a=!1;this.prefixes.group(e).down((s=>{r=s.raw("before").split("\n");let o=r.length-1;r[o].length>n&&(!1===a&&(a=r[o].length-n),r[o]=r[o].slice(0,-a),s.raws.before=r.join("\n"))}))}displayType(e){for(let t of e.parent.nodes)if("display"===t.prop){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(void 0!==e._autoprefixerGridStatus)return e._autoprefixerGridStatus;let r=null;if(e.nodes){let n;e.each((a=>{if("comment"===a.type&&_A.test(a.text)){let s=/:\s*autoplace/i.test(a.text),o=/no-autoplace/i.test(a.text);void 0!==n?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:a}):n=s?"autoplace":!!o||/on/i.test(a.text)}})),void 0!==n&&(r=n)}if("atrule"===e.type&&"supports"===e.name){let n=e.params;n.includes("grid")&&n.includes("auto")&&(r=!1)}if(!e.nodes||null===r)if(e.parent){let n=this.gridStatus(e.parent,t);r=!0!==e.parent._autoprefixerSelfDisabled&&n}else r=void 0!==this.prefixes.options.grid?this.prefixes.options.grid:void 0!==h.env.AUTOPREFIXER_GRID&&("autoplace"!==h.env.AUTOPREFIXER_GRID||"autoplace");return e._autoprefixerGridStatus=r,r}}})),sg=v(((zI,ng)=>{l(),ng.exports={A:{A:{2:"K E F G A B JC"},B:{1:"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{1:"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B",2:"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{1:"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B",2:"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{1:"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC",2:"0 J K E F NC 5B OC PC QC"},F:{1:"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB",2:"G B C VC WC XC YC vB HC ZC"},G:{1:"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC",2:"F 5B aC IC bC cC dC eC"},H:{1:"uC"},I:{1:"I zC 0C",2:"zB J vC wC xC yC IC"},J:{2:"E A"},K:{1:"m",2:"A B C vB HC wB"},L:{1:"I"},M:{1:"uB"},N:{2:"A B"},O:{1:"xB"},P:{1:"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{1:"7B"},R:{1:"ED"},S:{1:"FD GD"}},B:4,C:"CSS Feature Queries"}})),ug=v(((VI,lg)=>{function ag(i){return i[i.length-1]}l();var og={parse(i){let e=[""],t=[e];for(let r of i)"("!==r?")"!==r?e[e.length-1]+=r:(t.pop(),e=ag(t),e.push("")):(e=[""],ag(t).push(e),t.push(e));return t[0]},stringify(i){let e="";for(let t of i)e+="object"!=typeof t?t:`(${og.stringify(t)})`;return e}};lg.exports=og})),hg=v(((UI,dg)=>{l();var TA=sg(),{feature:PA}=($n(),Ln),{parse:DA}=ge(),IA=pt(),nl=ug(),qA=ke(),RA=fe(),fg=PA(TA),cg=[];for(let i in fg.stats){let e=fg.stats[i];for(let t in e){let r=e[t];/y/.test(r)&&cg.push(i+" "+t)}}dg.exports=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter((r=>cg.includes(r))),t=new IA(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),r=t[0],n=t[1];return n||(n=""),[r.trim(),n.trim()]}virtual(e){let[t,r]=this.parse(e),n=DA("a{}").first;return n.append({prop:t,value:r,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,{warn:()=>null});for(let a of t.nodes){for(let s of this.prefixer().values("add",t.first.prop))s.process(a);qA.save(this.all,a)}return t.nodes}isNot(e){return"string"==typeof e&&/not\s*/i.test(e)}isOr(e){return"string"==typeof e&&/\s*or\s*/i.test(e)}isProp(e){return"object"==typeof e&&1===e.length&&"string"==typeof e[0]}isHack(e,t){return!new RegExp(`(\\(|\\s)${RA.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[r,n]=this.parse(e),a=this.all.unprefixed(r),s=this.all.cleaner();if(s.remove[r]&&s.remove[r].remove&&!this.isHack(t,a))return!0;for(let o of s.values("remove",a))if(o.check(n))return!0;return!1}remove(e,t){let r=0;for(;r"object"!=typeof t?t:1===t.length&&"object"==typeof t[0]?this.cleanBrackets(t[0]):this.cleanBrackets(t)))}convert(e){let t=[""];for(let r of e)t.push([`${r.prop}: ${r.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if("object"!=typeof e)return e;if("string"==typeof(e=e.filter((t=>""!==t)))[0]){let t=e[0].trim();if(t.includes(":")||"selector"===t||"not selector"===t)return[nl.stringify(e)]}return e.map((t=>this.normalize(t)))}add(e,t){return e.map((r=>{if(this.isProp(r)){let n=this.prefixed(r[0]);return n.length>1?this.convert(n):r}return"object"==typeof r?this.add(r,t):r}))}process(e){let t=nl.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=nl.stringify(t)}disabled(e){if(!this.all.options.grid&&("display"===e.prop&&e.value.includes("grid")||e.prop.includes("grid")||"justify-items"===e.prop))return!0;if(!1===this.all.options.flexbox){if("display"===e.prop&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}}})),yg=v(((WI,gg)=>{l();gg.exports=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map((r=>[e.prefixed(r),e.regexp(r)])),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,r=e.parent.nodes;for(;t{l();var{list:MA}=ge(),BA=yg(),FA=Ut(),NA=pt(),LA=fe();bg.exports=class extends FA{constructor(e,t,r){super(e,t,r),this.regexpCache=new Map}check(e){return!!e.selector.includes(this.name)&&!!e.selector.match(this.regexp())}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${LA.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return NA.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=MA.comma(e.selector).filter((a=>a.includes(this.name)));for(let a of this.possible())t[a]=n.map((s=>this.replace(s,a))).join(", ")}else for(let r of this.possible())t[r]=this.replace(e.selector,r);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,r){let n=e.parent.index(e)-1;for(;n>=0;){let a=e.parent.nodes[n];if("rule"!==a.type)return!1;let s=!1;for(let o in t[this.name]){let u=t[this.name][o];if(a.selector===u){if(r===o)return!0;s=!0;break}}if(!s)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let r=this.prefixeds(e);if(this.already(e,r,t))return;let n=this.clone(e,{selector:r[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new BA(this,e)}}})),kg=v(((HI,xg)=>{l();var $A=Ut();xg.exports=class extends $A{add(e,t){let r=t+e.name;if(e.parent.some((s=>s.name===r&&s.params===e.params)))return;let a=this.clone(e,{name:r});return e.parent.insertBefore(e,a)}process(e){let t=this.parentPrefix(e);for(let r of this.prefixes)(!t||t===r)&&this.add(e,r)}}})),Cg=v(((YI,Sg)=>{l();var jA=Ht(),sl=class extends jA{prefixed(e){return"-webkit-"===e?":-webkit-full-screen":"-moz-"===e?":-moz-full-screen":`:${e}fullscreen`}};sl.names=[":fullscreen"],Sg.exports=sl})),_g=v(((QI,Ag)=>{l();var zA=Ht(),al=class extends zA{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return"-webkit-"===e?"::-webkit-input-placeholder":"-ms-"===e?"::-ms-input-placeholder":"-ms- old"===e?":-ms-input-placeholder":"-moz- old"===e?":-moz-placeholder":`::${e}placeholder`}};al.names=["::placeholder"],Ag.exports=al})),Eg=v(((JI,Og)=>{l();var VA=Ht(),ol=class extends VA{prefixed(e){return"-ms-"===e?":-ms-input-placeholder":`:${e}placeholder-shown`}};ol.names=[":placeholder-shown"],Og.exports=ol})),Pg=v(((XI,Tg)=>{l();var UA=Ht(),WA=fe(),ll=class extends UA{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=WA.uniq(this.prefixes.map((n=>"-webkit-"))))}prefixed(e){return"-webkit-"===e?"::-webkit-file-upload-button":`::${e}file-selector-button`}};ll.names=["::file-selector-button"],Tg.exports=ll})),he=v(((KI,Dg)=>{l(),Dg.exports=function(i){let e;return"-webkit- 2009"===i||"-moz-"===i?e=2009:"-ms-"===i?e=2012:"-webkit-"===i&&(e="final"),"-webkit- 2009"===i&&(i="-webkit-"),[e,i]}})),Mg=v(((ZI,Rg)=>{l();var Ig=ge().list,qg=he(),GA=R(),Yt=class extends GA{prefixed(e,t){let r;return[r,t]=qg(t),2009===r?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let r=qg(t)[0];if(2009===r)return e.value=Ig.space(e.value)[0],e.value=Yt.oldValues[e.value]||e.value,super.set(e,t);if(2012===r){let n=Ig.space(e.value);3===n.length&&"0"===n[2]&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Yt.names=["flex","box-flex"],Yt.oldValues={auto:"1",none:"0"},Rg.exports=Yt})),Ng=v(((e4,Fg)=>{l();var Bg=he(),HA=R(),ul=class extends HA{prefixed(e,t){let r;return[r,t]=Bg(t),2009===r?t+"box-ordinal-group":2012===r?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return 2009===Bg(t)[0]&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};ul.names=["order","flex-order","box-ordinal-group"],Fg.exports=ul})),$g=v(((t4,Lg)=>{l();var YA=R(),fl=class extends YA{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};fl.names=["filter"],Lg.exports=fl})),zg=v(((r4,jg)=>{l();var QA=R(),cl=class extends QA{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=this.clone(e),s=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some((u=>u.prop===o))){if(a.prop=o,e.value.includes("span"))a.value=e.value.replace(/span\s/i,"");else{let u;if(e.parent.walkDecls(s,(c=>{u=c})),u){let c=Number(e.value)-Number(u.value)+"";a.value=c}else e.warn(n,`Can not prefix ${e.prop} (${s} is not found)`)}e.cloneBefore(a)}}};cl.names=["grid-row-end","grid-column-end"],jg.exports=cl})),Ug=v(((i4,Vg)=>{l();var JA=R(),pl=class extends JA{check(e){return!e.value.split(/\s+/).some((t=>{let r=t.toLowerCase();return"reverse"===r||"alternate-reverse"===r}))}};pl.names=["animation","animation-direction"],Vg.exports=pl})),Gg=v(((n4,Wg)=>{l();var XA=he(),KA=R(),dl=class extends KA{insert(e,t,r){let n;if([n,t]=XA(t),2009!==n)return super.insert(e,t,r);let a=e.value.split(/\s+/).filter((d=>"wrap"!==d&&"nowrap"!==d&&"wrap-reverse"));if(0===a.length||e.parent.some((d=>d.prop===t+"box-orient"||d.prop===t+"box-direction")))return;let o=a[0],u=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=u,this.needCascade(e)&&(f.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,f)}};dl.names=["flex-flow","box-direction","box-orient"],Wg.exports=dl})),Yg=v(((s4,Hg)=>{l();var ZA=he(),e_=R(),hl=class extends e_{normalize(){return"flex"}prefixed(e,t){let r;return[r,t]=ZA(t),2009===r?t+"box-flex":2012===r?t+"flex-positive":super.prefixed(e,t)}};hl.names=["flex-grow","flex-positive"],Hg.exports=hl})),Jg=v(((a4,Qg)=>{l();var t_=he(),r_=R(),ml=class extends r_{set(e,t){if(2009!==t_(t)[0])return super.set(e,t)}};ml.names=["flex-wrap"],Qg.exports=ml})),Kg=v(((o4,Xg)=>{l();var i_=R(),Qt=ht(),gl=class extends i_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=Qt.parse(e),[s,o]=Qt.translate(a,0,2),[u,c]=Qt.translate(a,1,3);[["grid-row",s],["grid-row-span",o],["grid-column",u],["grid-column-span",c]].forEach((([f,d])=>{Qt.insertDecl(e,f,d)})),Qt.warnTemplateSelectorNotFound(e,n),Qt.warnIfGridRowColumnExists(e,n)}};gl.names=["grid-area"],Xg.exports=gl})),ey=v(((l4,Zg)=>{l();var n_=R(),ni=ht(),yl=class extends n_{insert(e,t,r){if("-ms-"!==t)return super.insert(e,t,r);if(e.parent.some((s=>"-ms-grid-row-align"===s.prop)))return;let[[n,a]]=ni.parse(e);a?(ni.insertDecl(e,"grid-row-align",n),ni.insertDecl(e,"grid-column-align",a)):(ni.insertDecl(e,"grid-row-align",n),ni.insertDecl(e,"grid-column-align",n))}};yl.names=["place-self"],Zg.exports=yl})),ry=v(((u4,ty)=>{l();var s_=R(),wl=class extends s_{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let r=super.prefixed(e,t);return"-ms-"===t&&(r=r.replace("-start","")),r}};wl.names=["grid-row-start","grid-column-start"],ty.exports=wl})),sy=v(((f4,ny)=>{l();var iy=he(),a_=R(),Jt=class extends a_{check(e){return e.parent&&!e.parent.some((t=>t.prop&&t.prop.startsWith("grid-")))}prefixed(e,t){let r;return[r,t]=iy(t),2012===r?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let r=iy(t)[0];return 2012===r?(e.value=Jt.oldValues[e.value]||e.value,super.set(e,t)):"final"===r?super.set(e,t):void 0}};Jt.names=["align-self","flex-item-align"],Jt.oldValues={"flex-end":"end","flex-start":"start"},ny.exports=Jt})),oy=v(((c4,ay)=>{l();var o_=R(),l_=fe(),bl=class extends o_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=l_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}};bl.names=["appearance"],ay.exports=bl})),fy=v(((p4,uy)=>{l();var ly=he(),u_=R(),vl=class extends u_{normalize(){return"flex-basis"}prefixed(e,t){let r;return[r,t]=ly(t),2012===r?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let r;if([r,t]=ly(t),2012===r||"final"===r)return super.set(e,t)}};vl.names=["flex-basis","flex-preferred-size"],uy.exports=vl})),py=v(((d4,cy)=>{l();var f_=R(),xl=class extends f_{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let r=super.prefixed(e,t);return"-webkit-"===t&&(r=r.replace("border","box-image")),r}};xl.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"],cy.exports=xl})),hy=v(((h4,dy)=>{l();var c_=R(),Ne=class extends c_{insert(e,t,r){let a,n="mask-composite"===e.prop;a=n?e.value.split(","):e.value.match(Ne.regexp)||[],a=a.map((c=>c.trim())).filter((c=>c));let o,s=a.length;if(s&&(o=this.clone(e),o.value=a.map((c=>Ne.oldValues[c]||c)).join(", "),a.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,o)):void 0;let u=this.clone(e);return u.prop=t+u.prop,s&&(u.value=u.value.replace(Ne.regexp,"")),this.needCascade(e)&&(u.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,u),s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,o)):e}};Ne.names=["mask","mask-composite"],Ne.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"},Ne.regexp=new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig"),dy.exports=Ne})),yy=v(((m4,gy)=>{l();var my=he(),p_=R(),Xt=class extends p_{prefixed(e,t){let r;return[r,t]=my(t),2009===r?t+"box-align":2012===r?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let r=my(t)[0];return(2009===r||2012===r)&&(e.value=Xt.oldValues[e.value]||e.value),super.set(e,t)}};Xt.names=["align-items","flex-align","box-align"],Xt.oldValues={"flex-end":"end","flex-start":"start"},gy.exports=Xt})),by=v(((g4,wy)=>{l();var d_=R(),kl=class extends d_{set(e,t){return"-ms-"===t&&"contain"===e.value&&(e.value="element"),super.set(e,t)}insert(e,t,r){if("all"!==e.value||"-ms-"!==t)return super.insert(e,t,r)}};kl.names=["user-select"],wy.exports=kl})),ky=v(((y4,xy)=>{l();var vy=he(),h_=R(),Sl=class extends h_{normalize(){return"flex-shrink"}prefixed(e,t){let r;return[r,t]=vy(t),2012===r?t+"flex-negative":super.prefixed(e,t)}set(e,t){let r;if([r,t]=vy(t),2012===r||"final"===r)return super.set(e,t)}};Sl.names=["flex-shrink","flex-negative"],xy.exports=Sl})),Cy=v(((w4,Sy)=>{l();var m_=R(),Cl=class extends m_{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return("break-inside"===e.prop&&"avoid-column"===e.value||"avoid-page"===e.value)&&(e.value="avoid"),super.set(e,t)}insert(e,t,r){return"break-inside"!==e.prop?super.insert(e,t,r):/region/i.test(e.value)||/page/i.test(e.value)?void 0:super.insert(e,t,r)}};Cl.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"],Sy.exports=Cl})),_y=v(((b4,Ay)=>{l();var g_=R(),Al=class extends g_{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Al.names=["color-adjust","print-color-adjust"],Ay.exports=Al})),Ey=v(((v4,Oy)=>{l();var y_=R(),Kt=class extends y_{insert(e,t,r){if("-ms-"===t){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(r,e,t));let a="ltr";return e.parent.nodes.forEach((s=>{"direction"===s.prop&&("rtl"===s.value||"ltr"===s.value)&&(a=s.value)})),n.value=Kt.msValues[a][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,r)}};Kt.names=["writing-mode"],Kt.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}},Oy.exports=Kt})),Py=v(((x4,Ty)=>{l();var w_=R(),_l=class extends w_{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};_l.names=["border-image"],Ty.exports=_l})),qy=v(((k4,Iy)=>{l();var Dy=he(),b_=R(),Zt=class extends b_{prefixed(e,t){let r;return[r,t]=Dy(t),2012===r?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let r=Dy(t)[0];return 2012===r?(e.value=Zt.oldValues[e.value]||e.value,super.set(e,t)):"final"===r?super.set(e,t):void 0}};Zt.names=["align-content","flex-line-pack"],Zt.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"},Iy.exports=Zt})),My=v(((S4,Ry)=>{l();var v_=R(),Se=class extends v_{prefixed(e,t){return"-moz-"===t?t+(Se.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return Se.toNormal[e]||e}};Se.names=["border-radius"],Se.toMozilla={},Se.toNormal={};for(let i of["top","bottom"])for(let e of["left","right"]){let t=`border-${i}-${e}-radius`,r=`border-radius-${i}${e}`;Se.names.push(t),Se.names.push(r),Se.toMozilla[t]=r,Se.toNormal[r]=t}Ry.exports=Se})),Fy=v(((C4,By)=>{l();var x_=R(),Ol=class extends x_{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Ol.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"],By.exports=Ol})),Ly=v(((A4,Ny)=>{l();var k_=R(),{parseTemplate:S_,warnMissedAreas:C_,getGridGap:A_,warnGridGap:__,inheritGridGap:O_}=ht(),El=class extends k_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);if(e.parent.some((m=>"-ms-grid-rows"===m.prop)))return;let a=A_(e),s=O_(e,a),{rows:o,columns:u,areas:c}=S_({decl:e,gap:s||a}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(u);return __({gap:a,hasColumns:p,decl:e,result:n}),C_(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:u,raws:{}}),e}};El.names=["grid-template"],Ny.exports=El})),jy=v(((_4,$y)=>{l();var E_=R(),Tl=class extends E_{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Tl.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"],$y.exports=Tl})),Vy=v(((O4,zy)=>{l();var T_=R(),Pl=class extends T_{check(e){return!e.value.includes("flex-")&&"baseline"!==e.value}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};Pl.names=["grid-row-align"],zy.exports=Pl})),Wy=v(((E4,Uy)=>{l();var P_=R(),er=class extends P_{keyframeParents(e){let{parent:t}=e;for(;t;){if("atrule"===t.type&&"keyframes"===t.name)return!0;({parent:t}=t)}return!1}contain3d(e){if("transform-origin"===e.prop)return!1;for(let t of er.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),"-ms-"===t&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,r){if("-ms-"===t){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,r)}else{if("-o-"!==t)return super.insert(e,t,r);if(!this.contain3d(e))return super.insert(e,t,r)}}};er.names=["transform","transform-origin"],er.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"],Uy.exports=er})),Yy=v(((T4,Hy)=>{l();var Gy=he(),D_=R(),Dl=class extends D_{normalize(){return"flex-direction"}insert(e,t,r){let n;if([n,t]=Gy(t),2009!==n)return super.insert(e,t,r);if(e.parent.some((f=>f.prop===t+"box-orient"||f.prop===t+"box-direction")))return;let o,u,s=e.value;"inherit"===s||"initial"===s||"unset"===s?(o=s,u=s):(o=s.includes("row")?"horizontal":"vertical",u=s.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=u,this.needCascade(e)&&(c.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,c)}old(e,t){let r;return[r,t]=Gy(t),2009===r?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};Dl.names=["flex-direction","box-direction","box-orient"],Hy.exports=Dl})),Jy=v(((P4,Qy)=>{l();var I_=R(),Il=class extends I_{check(e){return"pixelated"===e.value}prefixed(e,t){return"-ms-"===t?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return"-ms-"!==t?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Il.names=["image-rendering","interpolation-mode"],Qy.exports=Il})),Ky=v(((D4,Xy)=>{l();var q_=R(),R_=fe(),ql=class extends q_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=R_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}};ql.names=["backdrop-filter"],Xy.exports=ql})),ew=v(((I4,Zy)=>{l();var M_=R(),B_=fe(),Rl=class extends M_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=B_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}check(e){return"text"===e.value.toLowerCase()}};Rl.names=["background-clip"],Zy.exports=Rl})),rw=v(((q4,tw)=>{l();var F_=R(),N_=["none","underline","overline","line-through","blink","inherit","initial","unset"],Ml=class extends F_{check(e){return e.value.split(/\s+/).some((t=>!N_.includes(t)))}};Ml.names=["text-decoration"],tw.exports=Ml})),sw=v(((R4,nw)=>{l();var iw=he(),L_=R(),tr=class extends L_{prefixed(e,t){let r;return[r,t]=iw(t),2009===r?t+"box-pack":2012===r?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let r=iw(t)[0];if(2009===r||2012===r){let n=tr.oldValues[e.value]||e.value;if(e.value=n,2009!==r||"distribute"!==n)return super.set(e,t)}else if("final"===r)return super.set(e,t)}};tr.names=["justify-content","flex-pack","box-pack"],tr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"},nw.exports=tr})),ow=v(((M4,aw)=>{l();var $_=R(),Bl=class extends $_{set(e,t){let r=e.value.toLowerCase();return"-webkit-"===t&&!r.includes(" ")&&"contain"!==r&&"cover"!==r&&(e.value=e.value+" "+e.value),super.set(e,t)}};Bl.names=["background-size"],aw.exports=Bl})),uw=v(((B4,lw)=>{l();var j_=R(),Fl=ht(),Nl=class extends j_{insert(e,t,r){if("-ms-"!==t)return super.insert(e,t,r);let n=Fl.parse(e),[a,s]=Fl.translate(n,0,1);n[0]&&n[0].includes("span")&&(s=n[0].join("").replace(/\D/g,"")),[[e.prop,a],[`${e.prop}-span`,s]].forEach((([u,c])=>{Fl.insertDecl(e,u,c)}))}};Nl.names=["grid-row","grid-column"],lw.exports=Nl})),pw=v(((F4,cw)=>{l();var z_=R(),{prefixTrackProp:fw,prefixTrackValue:V_,autoplaceGridItems:U_,getGridGap:W_,inheritGridGap:G_}=ht(),H_=il(),Ll=class extends z_{prefixed(e,t){return"-ms-"===t?fw({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let{parent:a,prop:s,value:o}=e,u=s.includes("rows"),c=s.includes("columns"),f=a.some((k=>"grid-template"===k.prop||"grid-template-areas"===k.prop));if(f&&u)return!1;let d=new H_({options:{}}),p=d.gridStatus(a,n),m=W_(e);m=G_(e,m)||m;let w=u?m.row:m.column;("no-autoplace"===p||!0===p)&&!f&&(w=null);let x=V_({value:o,gap:w});e.cloneBefore({prop:fw({prop:s,prefix:t}),value:x});let y=a.nodes.find((k=>"grid-auto-flow"===k.prop)),b="row";if(y&&!d.disabled(y,n)&&(b=y.value.trim()),"autoplace"===p){let k=a.nodes.find((_=>"grid-template-rows"===_.prop));if(!k&&f)return;if(!k&&!f)return void e.warn(n,"Autoplacement does not work without grid-template-rows property");!a.nodes.find((_=>"grid-template-columns"===_.prop))&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&U_(e,n,m,b)}}};Ll.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"],cw.exports=Ll})),hw=v(((N4,dw)=>{l();var Y_=R(),$l=class extends Y_{check(e){return!e.value.includes("flex-")&&"baseline"!==e.value}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};$l.names=["grid-column-align"],dw.exports=$l})),gw=v(((L4,mw)=>{l();var Q_=R(),jl=class extends Q_{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return"auto"===e.value?e.value="chained":("none"===e.value||"contain"===e.value)&&(e.value="none"),super.set(e,t)}};jl.names=["overscroll-behavior","scroll-chaining"],mw.exports=jl})),bw=v((($4,ww)=>{l();var J_=R(),{parseGridAreas:X_,warnMissedAreas:K_,prefixTrackProp:Z_,prefixTrackValue:yw,getGridGap:e5,warnGridGap:t5,inheritGridGap:r5}=ht();var zl=class extends J_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=!1,s=!1,o=e.parent,u=e5(e);u=r5(e,u)||u,o.walkDecls(/-ms-grid-rows/,(d=>d.remove())),o.walkDecls(/grid-template-(rows|columns)/,(d=>{if("grid-template-rows"===d.prop){s=!0;let{prop:p,value:m}=d;d.cloneBefore({prop:Z_({prop:p,prefix:t}),value:yw({value:m,gap:u.row})})}else a=!0}));let c=e.value.trim().slice(1,-1).split(/["']\s*["']?/g);a&&!s&&u.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:yw({value:`repeat(${c.length}, auto)`,gap:u.row}),raws:{}}),t5({gap:u,hasColumns:a,decl:e,result:n});let f=X_({rows:c,gap:u});return K_(f,e,n),e}};zl.names=["grid-template-areas"],ww.exports=zl})),xw=v(((j4,vw)=>{l();var n5=R(),Vl=class extends n5{set(e,t){return"-webkit-"===t&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Vl.names=["text-emphasis-position"],vw.exports=Vl})),Sw=v(((z4,kw)=>{l();var s5=R(),Ul=class extends s5{set(e,t){return"text-decoration-skip-ink"===e.prop&&"auto"===e.value?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Ul.names=["text-decoration-skip-ink","text-decoration-skip"],kw.exports=Ul})),Tw=v(((V4,Ew)=>{function Cw(i,e,t){var r=e-i;return((t-i)%r+r)%r+i}function Aw(i,e,t){return Math.max(i,Math.min(e,t))}function _w(i,e,t,r,n){if(!Wl(i,e,t,r,n))throw new Error(t+" is outside of range ["+i+","+e+")");return t}function Wl(i,e,t,r,n){return!(te||n&&t===e||r&&t===i)}function Ow(i,e,t,r){return(t?"(":"[")+i+","+e+(r?")":"]")}l(),Ew.exports={wrap:Cw,limit:Aw,validate:_w,test:Wl,curry:function(i,e,t,r){var n=Ow.bind(null,i,e,t,r);return{wrap:Cw.bind(null,i,e),limit:Aw.bind(null,i,e),validate:function(a){return _w(i,e,a,t,r)},test:function(a){return Wl(i,e,a,t,r)},toString:n,name:n}},name:Ow}})),Iw=v(((U4,Dw)=>{l();var Gl=Gn(),o5=Tw(),l5=Gt(),u5=ke(),f5=fe(),Pw=/top|left|right|bottom/gi,Qe=class extends u5{replace(e,t){let r=Gl(e);for(let n of r.nodes)if("function"===n.type&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),"-webkit- old"===t){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return r.toString()}replaceFirst(e,...t){return t.map((n=>" "===n?{type:"space",value:n}:{type:"word",value:n})).concat(e.slice(1))}normalizeUnit(e,t){return parseFloat(e)/t*360+"deg"}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=o5.wrap(0,360,t),e[0].value=`${t}deg`}return"0deg"===e[0].value?e=this.replaceFirst(e,"to"," ","top"):"90deg"===e[0].value?e=this.replaceFirst(e,"to"," ","right"):"180deg"===e[0].value?e=this.replaceFirst(e,"to"," ","bottom"):"270deg"===e[0].value&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if("to"===e[0].value||(Pw.lastIndex=0,!Pw.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&("to"===e[0].value?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if("div"===t.type)break;"word"===t.type&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let n,a,s,o,u,c,t=[],r=[];for(o=0;o{l();var c5=Gt(),p5=ke();function qw(i){return new RegExp(`(^|[\\s,(])(${i}($|[\\s),]))`,"gi")}var Hl=class extends p5{regexp(){return this.regexpCache||(this.regexpCache=qw(this.name)),this.regexpCache}isStretch(){return"stretch"===this.name||"fill"===this.name||"fill-available"===this.name}replace(e,t){return"-moz-"===t&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):"-webkit-"===t&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&("-moz-"===e?t="-moz-available":"-webkit-"===e&&(t="-webkit-fill-available")),new c5(this.name,t,t,qw(t))}add(e,t){if(!e.prop.includes("grid")||"-webkit-"===t)return super.add(e,t)}};Hl.names=["max-content","min-content","fit-content","fill","fill-available","stretch"],Rw.exports=Hl})),Nw=v(((G4,Fw)=>{l();var Bw=Gt(),d5=ke(),Yl=class extends d5{replace(e,t){return"-webkit-"===t?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):"-moz-"===t?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return"-webkit-"===e?new Bw(this.name,"-webkit-optimize-contrast"):"-moz-"===e?new Bw(this.name,"-moz-crisp-edges"):super.old(e)}};Yl.names=["pixelated"],Fw.exports=Yl})),$w=v(((H4,Lw)=>{l();var h5=ke(),Ql=class extends h5{replace(e,t){let r=super.replace(e,t);return"-webkit-"===t&&(r=r.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),r}};Ql.names=["image-set"],Lw.exports=Ql})),zw=v(((Y4,jw)=>{l();var m5=ge().list,g5=ke(),Jl=class extends g5{replace(e,t){return m5.space(e).map((r=>{if(r.slice(0,+this.name.length+1)!==this.name+"(")return r;let n=r.lastIndexOf(")"),a=r.slice(n+1),s=r.slice(this.name.length+1,n);if("-webkit-"===t){let o=s.match(/\d*.?\d+%?/);o?(s=s.slice(o[0].length).trim(),s+=`, ${o[0]}`):s+=", 0.5"}return t+this.name+"("+s+")"+a})).join(" ")}};Jl.names=["cross-fade"],jw.exports=Jl})),Uw=v(((Q4,Vw)=>{l();var y5=he(),w5=Gt(),b5=ke(),Xl=class extends b5{constructor(e,t){super(e,t),"display-flex"===e&&(this.name="flex")}check(e){return"display"===e.prop&&e.value===this.name}prefixed(e){let t,r;return[t,e]=y5(e),2009===t?r="flex"===this.name?"box":"inline-box":2012===t?r="flex"===this.name?"flexbox":"inline-flexbox":"final"===t&&(r=this.name),e+r}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(t)return new w5(this.name,t)}};Xl.names=["display-flex","inline-flex"],Vw.exports=Xl})),Gw=v(((J4,Ww)=>{l();var v5=ke(),Kl=class extends v5{constructor(e,t){super(e,t),"display-grid"===e&&(this.name="grid")}check(e){return"display"===e.prop&&e.value===this.name}};Kl.names=["display-grid","inline-grid"],Ww.exports=Kl})),Yw=v(((X4,Hw)=>{l();var x5=ke(),Zl=class extends x5{constructor(e,t){super(e,t),"filter-function"===e&&(this.name="filter")}};Zl.names=["filter","filter-function"],Hw.exports=Zl})),Kw=v(((K4,Xw)=>{l();var Qw=ii(),M=R(),Jw=Dm(),k5=Qm(),S5=il(),C5=hg(),eu=pt(),rr=Ht(),A5=kg(),Le=ke(),ir=fe(),_5=Cg(),O5=_g(),E5=Eg(),T5=Pg(),P5=Mg(),D5=Ng(),I5=$g(),q5=zg(),R5=Ug(),M5=Gg(),B5=Yg(),F5=Jg(),N5=Kg(),L5=ey(),$5=ry(),j5=sy(),z5=oy(),V5=fy(),U5=py(),W5=hy(),G5=yy(),H5=by(),Y5=ky(),Q5=Cy(),J5=_y(),X5=Ey(),K5=Py(),Z5=qy(),eO=My(),tO=Fy(),rO=Ly(),iO=jy(),nO=Vy(),sO=Wy(),aO=Yy(),oO=Jy(),lO=Ky(),uO=ew(),fO=rw(),cO=sw(),pO=ow(),dO=uw(),hO=pw(),mO=hw(),gO=gw(),yO=bw(),wO=xw(),bO=Sw(),vO=Iw(),xO=Mw(),kO=Nw(),SO=$w(),CO=zw(),AO=Uw(),_O=Gw(),OO=Yw();rr.hack(_5),rr.hack(O5),rr.hack(E5),rr.hack(T5),M.hack(P5),M.hack(D5),M.hack(I5),M.hack(q5),M.hack(R5),M.hack(M5),M.hack(B5),M.hack(F5),M.hack(N5),M.hack(L5),M.hack($5),M.hack(j5),M.hack(z5),M.hack(V5),M.hack(U5),M.hack(W5),M.hack(G5),M.hack(H5),M.hack(Y5),M.hack(Q5),M.hack(J5),M.hack(X5),M.hack(K5),M.hack(Z5),M.hack(eO),M.hack(tO),M.hack(rO),M.hack(iO),M.hack(nO),M.hack(sO),M.hack(aO),M.hack(oO),M.hack(lO),M.hack(uO),M.hack(fO),M.hack(cO),M.hack(pO),M.hack(dO),M.hack(hO),M.hack(mO),M.hack(gO),M.hack(yO),M.hack(wO),M.hack(bO),Le.hack(vO),Le.hack(xO),Le.hack(kO),Le.hack(SO),Le.hack(CO),Le.hack(AO),Le.hack(_O),Le.hack(OO);var tu=new Map,si=class{constructor(e,t,r={}){this.data=e,this.browsers=t,this.options=r,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new k5(this),this.processor=new S5(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(!this.browsers.selected.length)return this;{let e=new eu(this.browsers.data,[]);this.cleanerCache=new si(this.data,e,this.options)}return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let r in e){let n=e[r],a=n.browsers.map((u=>{let c=u.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}})),s=a.filter((u=>u.note)).map((u=>`${this.browsers.prefix(u.browser)} ${u.note}`));s=ir.uniq(s),a=a.filter((u=>this.browsers.isSelected(u.browser))).map((u=>{let c=this.browsers.prefix(u.browser);return u.note?`${c} ${u.note}`:c})),a=this.sort(ir.uniq(a)),"no-2009"===this.options.flexbox&&(a=a.filter((u=>!u.includes("2009"))));let o=n.browsers.map((u=>this.browsers.prefix(u)));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(s),o=ir.uniq(o),a.length?(t.add[r]=a,a.length!a.includes(u))))):t.remove[r]=o}return t}sort(e){return e.sort(((t,r)=>{let n=ir.removeNote(t).length,a=ir.removeNote(r).length;return n===a?r.length-t.length:a-n}))}preprocess(e){let t={selectors:[],"@supports":new C5(si,this)};for(let n in e.add){let a=e.add[n];if("@keyframes"===n||"@viewport"===n)t[n]=new A5(n,a,this);else if("@resolution"===n)t[n]=new Jw(n,a,this);else if(this.data[n].selector)t.selectors.push(rr.load(n,a,this));else{let s=this.data[n].props;if(s){let o=Le.load(n,a,this);for(let u of s)t[u]||(t[u]={values:[]}),t[u].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=M.load(n,a,this),t[n].values=o}}}let r={selectors:[]};for(let n in e.remove){let a=e.remove[n];if(this.data[n].selector){let s=rr.load(n,a);for(let o of a)r.selectors.push(s.old(o))}else if("@keyframes"===n||"@viewport"===n)for(let s of a){r[`@${s}${n.slice(1)}`]={remove:!0}}else if("@resolution"===n)r[n]=new Jw(n,a,this);else{let s=this.data[n].props;if(s){let o=Le.load(n,[],this);for(let u of a){let c=o.old(u);if(c)for(let f of s)r[f]||(r[f]={}),r[f].values||(r[f].values=[]),r[f].values.push(c)}}else for(let o of a){let u=this.decl(n).old(n,o);if("align-self"===n){let c=t[n]&&t[n].prefixes;if(c){if("-webkit- 2009"===o&&c.includes("-webkit-"))continue;if("-webkit-"===o&&c.includes("-webkit- 2009"))continue}}for(let c of u)r[c]||(r[c]={}),r[c].remove=!0}}}return[t,r]}decl(e){return tu.has(e)||tu.set(e,M.load(e)),tu.get(e)}unprefixed(e){let t=this.normalize(Qw.unprefixed(e));return"flex-direction"===t&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=Qw.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let r=this[e],n=r["*"]&&r["*"].values,a=r[t]&&r[t].values;return n&&a?ir.uniq(n.concat(a)):n||a||[]}group(e){let t=e.parent,r=t.index(e),{length:n}=t.nodes,a=this.unprefixed(e.prop),s=(o,u)=>{for(r+=o;r>=0&&rs(-1,o),down:o=>s(1,o)}}};Xw.exports=si})),eb=v(((Z4,Zw)=>{l(),Zw.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}})),rb=v(((eq,tb)=>{l(),tb.exports={}})),ab=v(((tq,sb)=>{l();var EO=Wo(),{agents:TO}=($n(),Ln),ru=ym(),PO=pt(),DO=Kw(),IO=eb(),qO=rb(),ib={browsers:TO,prefixes:IO},nb="\n Replace Autoprefixer `browsers` option to Browserslist config.\n Use `browserslist` key in `package.json` or `.browserslistrc` file.\n\n Using `browsers` option can cause errors. Browserslist config can\n be used for Babel, Autoprefixer, postcss-normalize and other tools.\n\n If you really need to use option, rename it to `overrideBrowserslist`.\n\n Learn more at:\n https://github.com/browserslist/browserslist#readme\n https://twitter.com/browserslist\n\n";var iu=new Map;function nr(...i){let e;if(1===i.length&&function(i){return"[object Object]"===Object.prototype.toString.apply(i)}(i[0])?(e=i[0],i=void 0):0===i.length||1===i.length&&!i[0]?i=void 0:i.length<=2&&(Array.isArray(i[0])||!i[0])?(e=i[1],i=i[0]):"object"==typeof i[i.length-1]&&(e=i.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?i=e.overrideBrowserslist:e.browsers&&("undefined"!=typeof console&&console.warn&&(ru.red?console.warn(ru.red(nb.replace(/`[^`]+`/g,(n=>ru.yellow(n.slice(1,-1)))))):console.warn(nb)),i=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function r(n){let a=ib,s=new PO(a.browsers,i,n,t),o=s.selected.join(", ")+JSON.stringify(e);return iu.has(o)||iu.set(o,new DO(a.prefixes,s,e)),iu.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let a=r({from:n.opts.from,env:e.env});return{OnceExit(s){(function(i,e){0!==e.browsers.selected.length&&(e.add.selectors.length>0||Object.keys(e.add).length>2||i.warn("Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore.\nCheck your Browserslist config to be sure that your targets are set up correctly.\n\n Learn more at:\n https://github.com/postcss/autoprefixer#readme\n https://github.com/browserslist/browserslist#readme\n\n"))})(n,a),!1!==e.remove&&a.processor.remove(s,n),!1!==e.add&&a.processor.add(s,n)}}},info:n=>((n=n||{}).from=n.from||h.cwd(),qO(r(n))),options:e,browsers:i}}sb.exports=nr,nr.postcss=!0,nr.data=ib,nr.defaults=EO.defaults,nr.info=()=>nr().info()})),ob={};Ae(ob,{default:()=>BO});var BO,lb=C((()=>{l(),BO=[]})),fb={};Ae(fb,{default:()=>FO});var ub,FO,cb=C((()=>{l(),hi(),ub=K(bi()),FO=Ze(ub.default.theme)})),db={};Ae(db,{default:()=>NO});var pb,NO,hb=C((()=>{l(),hi(),pb=K(bi()),NO=Ze(pb.default)}));l();var LO=Je(mm()),$O=Je(ge()),jO=Je(ab()),zO=Je((lb(),ob)),VO=Je((cb(),fb)),UO=Je((hb(),db)),WO=Je((Zn(),ku)),GO=Je((wo(),yo)),HO=Je((hs(),tf));function Je(i){return i&&i.__esModule?i:{default:i}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var xt,au,Hn="tailwind",nu="text/tailwindcss",mb="/template.html",gb=!0,yb=0,su=new Set,wb="",bb=(i=!1)=>({get:(e,t)=>i&&"config"!==t||"object"!=typeof e[t]||null===e[t]?e[t]:new Proxy(e[t],bb()),set:(e,t,r)=>(e[t]=r,(!i||"config"===t)&&ou(!0),!0)});function vb(i){au.observe(i,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}async function ou(i=!1){i&&(yb++,su.clear());let e="";for(let r of document.querySelectorAll(`style[type="${nu}"]`))e+=r.textContent;let t=new Set;for(let r of document.querySelectorAll("[class]"))for(let n of r.classList)su.has(n)||t.add(n);if(document.body&&(gb||t.size>0||e!==wb||!xt||!xt.isConnected)){for(let n of t)su.add(n);gb=!1,wb=e,self[mb]=Array.from(t).join(" ");let{css:r}=await(0,$O.default)([(0,LO.default)({...window[Hn].config,_hash:yb,content:[mb],plugins:[...zO.default,...Array.isArray(window[Hn].config.plugins)?window[Hn].config.plugins:[]]}),(0,jO.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!xt||!xt.isConnected)&&(xt=document.createElement("style"),document.head.append(xt)),xt.textContent=r}}window[Hn]=new Proxy({config:{},defaultTheme:VO.default,defaultConfig:UO.default,colors:WO.default,plugin:GO.default,resolveConfig:HO.default},bb(!0)),new MutationObserver((async i=>{let e=!1;if(!au){au=new MutationObserver((async()=>await ou(!0)));for(let t of document.querySelectorAll(`style[type="${nu}"]`))vb(t)}for(let t of i)for(let r of t.addedNodes)1===r.nodeType&&"STYLE"===r.tagName&&r.getAttribute("type")===nu&&(vb(r),e=!0);await ou(e)})).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0})})(); + */function M(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ws=Object.prototype.hasOwnProperty,Ag=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ec={},Ac={};function Ye(e,t,n,r,o,a,s){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=s}var Me={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){Me[e]=new Ye(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];Me[t]=new Ye(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){Me[e]=new Ye(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){Me[e]=new Ye(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){Me[e]=new Ye(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){Me[e]=new Ye(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){Me[e]=new Ye(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){Me[e]=new Ye(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){Me[e]=new Ye(e,5,!1,e.toLowerCase(),null,!1,!1)}));var Ys=/[\-:]([a-z])/g;function Ks(e){return e[1].toUpperCase()}function Xs(e,t,n,r){var o=Me.hasOwnProperty(t)?Me[t]:null;(null!==o?0!==o.type:r||!(2"u"||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!Ws.call(Ac,e)||!Ws.call(Ec,e)&&(Ag.test(e)?Ac[e]=!0:(Ec[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(Ys,Ks);Me[t]=new Ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){Me[e]=new Ye(e,1,!1,e.toLowerCase(),null,!1,!1)})),Me.xlinkHref=new Ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){Me[e]=new Ye(e,1,!1,e.toLowerCase(),null,!0,!0)}));var Yt=mc.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Qo=Symbol.for("react.element"),nr=Symbol.for("react.portal"),rr=Symbol.for("react.fragment"),Qs=Symbol.for("react.strict_mode"),Js=Symbol.for("react.profiler"),bc=Symbol.for("react.provider"),_c=Symbol.for("react.context"),ei=Symbol.for("react.forward_ref"),ti=Symbol.for("react.suspense"),ni=Symbol.for("react.suspense_list"),ri=Symbol.for("react.memo"),sn=Symbol.for("react.lazy"),vc=Symbol.for("react.offscreen"),Dc=Symbol.iterator;function $r(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=Dc&&e[Dc]||e["@@iterator"])?e:null}var oi,be=Object.assign;function Zr(e){if(void 0===oi)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);oi=t&&t[1]||""}return"\n"+oi+e}var ai=!1;function si(e,t){if(!e||ai)return"";ai=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var o=u.stack.split("\n"),a=r.stack.split("\n"),s=o.length-1,i=a.length-1;1<=s&&0<=i&&o[s]!==a[i];)i--;for(;1<=s&&0<=i;s--,i--)if(o[s]!==a[i]){if(1!==s||1!==i)do{if(s--,0>--i||o[s]!==a[i]){var l="\n"+o[s].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}}while(1<=s&&0<=i);break}}}finally{ai=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Zr(e):""}function Dg(e){switch(e.tag){case 5:return Zr(e.type);case 16:return Zr("Lazy");case 13:return Zr("Suspense");case 19:return Zr("SuspenseList");case 0:case 2:case 15:return e=si(e.type,!1);case 11:return e=si(e.type.render,!1);case 1:return e=si(e.type,!0);default:return""}}function ii(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case rr:return"Fragment";case nr:return"Portal";case Js:return"Profiler";case Qs:return"StrictMode";case ti:return"Suspense";case ni:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case _c:return(e.displayName||"Context")+".Consumer";case bc:return(e._context.displayName||"Context")+".Provider";case ei:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case ri:return null!==(t=e.displayName||null)?t:ii(e.type)||"Memo";case sn:t=e._payload,e=e._init;try{return ii(e(t))}catch{}}return null}function yg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ii(t);case 8:return t===Qs?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function ln(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function yc(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Jo(e){e._valueTracker||(e._valueTracker=function(e){var t=yc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(s){r=""+s,a.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Tc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yc(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ea(e){if(typeof(e=e||(typeof document<"u"?document:void 0))>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function li(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cc(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ln(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Nc(e,t){null!=(t=t.checked)&&Xs(e,"checked",t,!1)}function ui(e,t){Nc(e,t);var n=ln(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ci(e,t.type,n):t.hasOwnProperty("defaultValue")&&ci(e,t.type,ln(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Sc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ci(e,t,n){("number"!==t||ea(e.ownerDocument)!==e)&&(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var jr=Array.isArray;function or(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=ta.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e);function Wr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var Yr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Cg=["Webkit","ms","Moz","O"];function kc(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||Yr.hasOwnProperty(e)&&Yr[e]?(""+t).trim():t+"px"}function Ic(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=kc(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(Yr).forEach((function(e){Cg.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Yr[t]=Yr[e]}))}));var Ng=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fi(e,t){if(t){if(Ng[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(M(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(M(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(M(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(M(62))}}function gi(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var mi=null;function hi(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ei=null,ar=null,sr=null;function Mc(e){if(e=Ao(e)){if("function"!=typeof Ei)throw Error(M(280));var t=e.stateNode;t&&(t=Ta(t),Ei(e.stateNode,e.type,t))}}function Fc(e){ar?sr?sr.push(e):sr=[e]:ar=e}function Bc(){if(ar){var e=ar,t=sr;if(sr=ar=null,Mc(e),t)for(e=0;e>>=0,0===e?32:31-(Bg(e)/Pg|0)|0},Bg=Math.log,Pg=Math.LN2;var sa=64,ia=4194304;function Jr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function la(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,s=268435455&n;if(0!==s){var i=s&~o;0!==i?r=Jr(i):0!==(a&=s)&&(r=Jr(a))}else 0!==(s=n&~o)?r=Jr(s):0!==a&&(r=Jr(a));if(0===r)return 0;if(0!==t&&t!==r&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function eo(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-St(t)]=n}function Ti(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-St(n),o=1<=lo),d0=" ",p0=!1;function f0(e,t){switch(e){case"keyup":return-1!==hm.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function g0(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ur=!1;var _m={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function m0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!_m[e.type]:"textarea"===t}function h0(e,t,n,r){Fc(r),0<(t=va(t,"onChange")).length&&(n=new Ri("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var uo=null,co=null;function vm(e){I0(e,0)}function Ea(e){if(Tc(gr(e)))return e}function Dm(e,t){if("change"===e)return t}var E0=!1;if(Wt){var Fi;if(Wt){var Bi="oninput"in document;if(!Bi){var A0=document.createElement("div");A0.setAttribute("oninput","return;"),Bi="function"==typeof A0.oninput}Fi=Bi}else Fi=!1;E0=Fi&&(!document.documentMode||9=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=v0(n)}}function y0(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?y0(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function T0(){for(var e=window,t=ea();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch{n=!1}if(!n)break;t=ea((e=t.contentWindow).document)}return t}function Pi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function wm(e){var t=T0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&y0(n.ownerDocument.documentElement,n)){if(null!==r&&Pi(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=D0(n,a);var s=D0(n,r);o&&s&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n=document.documentMode,cr=null,Ui=null,fo=null,qi=!1;function C0(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;qi||null==cr||cr!==ea(r)||("selectionStart"in(r=cr)&&Pi(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},fo&&po(fo,r)||(fo=r,0<(r=va(Ui,"onSelect")).length&&(t=new Ri("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=cr)))}function Aa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var dr={animationend:Aa("Animation","AnimationEnd"),animationiteration:Aa("Animation","AnimationIteration"),animationstart:Aa("Animation","AnimationStart"),transitionend:Aa("Transition","TransitionEnd")},Hi={},N0={};function ba(e){if(Hi[e])return Hi[e];if(!dr[e])return e;var n,t=dr[e];for(n in t)if(t.hasOwnProperty(n)&&n in N0)return Hi[e]=t[n];return e}Wt&&(N0=document.createElement("div").style,"AnimationEvent"in window||(delete dr.animationend.animation,delete dr.animationiteration.animation,delete dr.animationstart.animation),"TransitionEvent"in window||delete dr.transitionend.transition);var S0=ba("animationend"),w0=ba("animationiteration"),x0=ba("animationstart"),R0=ba("transitionend"),L0=new Map,O0="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function gn(e,t){L0.set(e,t),xn(t,[e])}for(var Vi=0;Vimr||(e.current=Qi[mr],Qi[mr]=null,mr--)}function pe(e,t){mr++,Qi[mr]=e.current,e.current=t}var En={},qe=hn(En),Je=hn(!1),On=En;function hr(e,t){var n=e.type.contextTypes;if(!n)return En;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function et(e){return null!=(e=e.childContextTypes)}function Ca(){Ee(Je),Ee(qe)}function q0(e,t,n){if(qe.current!==En)throw Error(M(168));pe(qe,t),pe(Je,n)}function H0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(M(108,yg(e)||"Unknown",o));return be({},n,r)}function Na(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||En,On=qe.current,pe(qe,e),pe(Je,Je.current),!0}function V0(e,t,n){var r=e.stateNode;if(!r)throw Error(M(169));n?(e=H0(e,t,On),r.__reactInternalMemoizedMergedChildContext=e,Ee(Je),Ee(qe),pe(qe,e)):Ee(Je),pe(Je,n)}var Xt=null,Sa=!1,Ji=!1;function z0(e){null===Xt?Xt=[e]:Xt.push(e)}function An(){if(!Ji&&null!==Xt){Ji=!0;var e=0,t=ue;try{var n=Xt;for(ue=1;e>=s,o-=s,Qt=1<<32-St(t)+o|n<R?(q=S,S=null):q=S.sibling;var I=d(h,S,E[R],v);if(null===I){null===S&&(S=q);break}e&&S&&null===I.alternate&&t(h,S),g=a(I,g,R),null===_?N=I:_.sibling=I,_=I,S=q}if(R===E.length)return n(h,S),Ae&&In(h,R),N;if(null===S){for(;RR?(q=S,S=null):q=S.sibling;var Q=d(h,S,I.value,v);if(null===Q){null===S&&(S=q);break}e&&S&&null===Q.alternate&&t(h,S),g=a(Q,g,R),null===_?N=Q:_.sibling=Q,_=Q,S=q}if(I.done)return n(h,S),Ae&&In(h,R),N;if(null===S){for(;!I.done;R++,I=E.next())null!==(I=p(h,I.value,v))&&(g=a(I,g,R),null===_?N=I:_.sibling=I,_=I);return Ae&&In(h,R),N}for(S=r(h,S);!I.done;R++,I=E.next())null!==(I=m(S,h,R,I.value,v))&&(e&&null!==I.alternate&&S.delete(null===I.key?R:I.key),g=a(I,g,R),null===_?N=I:_.sibling=I,_=I);return e&&S.forEach((function(ie){return t(h,ie)})),Ae&&In(h,R),N}(h,g,E,v);Fa(h,E)}return"string"==typeof E&&""!==E||"number"==typeof E?(E=""+E,null!==g&&6===g.tag?(n(h,g.sibling),(g=o(g,E)).return=h,h=g):(n(h,g),(g=Yl(E,h.mode,v)).return=h,h=g),s(h)):n(h,g)}}var Dr=od(!0),ad=od(!1),_o={},qt=hn(_o),vo=hn(_o),Do=hn(_o);function Fn(e){if(e===_o)throw Error(M(174));return e}function fl(e,t){switch(pe(Do,t),pe(vo,e),pe(qt,_o),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pi(null,"");break;default:t=pi(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ee(qt),pe(qt,t)}function yr(){Ee(qt),Ee(vo),Ee(Do)}function sd(e){Fn(Do.current);var t=Fn(qt.current),n=pi(t,e.type);t!==n&&(pe(vo,e),pe(qt,n))}function gl(e){vo.current===e&&(Ee(qt),Ee(vo))}var _e=hn(0);function Ba(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ml=[];function hl(){for(var e=0;en?n:4,e(!0);var r=El.transition;El.transition={};try{e(!1),t()}finally{ue=n,El.transition=r}}function Td(){return _t().memoizedState}function Gm(e,t,n){var r=Tn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Cd(e))Nd(t,n);else if(null!==(n=Y0(e,t,n,r))){kt(n,e,r,Xe()),Sd(n,t,r)}}function $m(e,t,n){var r=Tn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Cd(e))Nd(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var s=t.lastRenderedState,i=a(s,n);if(o.hasEagerState=!0,o.eagerState=i,wt(i,s)){var l=t.interleaved;return null===l?(o.next=o,ul(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch{}null!==(n=Y0(e,t,o,r))&&(kt(n,e,r,o=Xe()),Sd(n,t,r))}}function Cd(e){var t=e.alternate;return e===ve||null!==t&&t===ve}function Nd(e,t){yo=Ua=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Sd(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ti(e,n)}}var Va={readContext:bt,useCallback:He,useContext:He,useEffect:He,useImperativeHandle:He,useInsertionEffect:He,useLayoutEffect:He,useMemo:He,useReducer:He,useRef:He,useState:He,useDebugValue:He,useDeferredValue:He,useTransition:He,useMutableSource:He,useSyncExternalStore:He,useId:He,unstable_isNewReconciler:!1},Zm={readContext:bt,useCallback:function(e,t){return Ht().memoizedState=[e,void 0===t?null:t],e},useContext:bt,useEffect:hd,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,qa(4194308,4,bd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return qa(4194308,4,e,t)},useInsertionEffect:function(e,t){return qa(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Gm.bind(null,ve,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ht().memoizedState=e},useState:gd,useDebugValue:Tl,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=gd(!1),t=e[0];return e=zm.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ve,o=Ht();if(Ae){if(void 0===n)throw Error(M(407));n=n()}else{if(n=t(),null===Oe)throw Error(M(349));30&Bn||ud(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,hd(dd.bind(null,r,a,e),[e]),r.flags|=2048,No(9,cd.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Ht(),t=Oe.identifierPrefix;if(Ae){var n=Jt;t=":"+t+"R"+(n=(Qt&~(1<<32-St(Qt)-1)).toString(32)+n),0<(n=To++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=Vm++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},jm={readContext:bt,useCallback:vd,useContext:bt,useEffect:yl,useImperativeHandle:_d,useInsertionEffect:Ed,useLayoutEffect:Ad,useMemo:Dd,useReducer:vl,useRef:md,useState:function(){return vl(Co)},useDebugValue:Tl,useDeferredValue:function(e){return yd(_t(),we.memoizedState,e)},useTransition:function(){return[vl(Co)[0],_t().memoizedState]},useMutableSource:id,useSyncExternalStore:ld,useId:Td,unstable_isNewReconciler:!1},Wm={readContext:bt,useCallback:vd,useContext:bt,useEffect:yl,useImperativeHandle:_d,useInsertionEffect:Ed,useLayoutEffect:Ad,useMemo:Dd,useReducer:Dl,useRef:md,useState:function(){return Dl(Co)},useDebugValue:Tl,useDeferredValue:function(e){var t=_t();return null===we?t.memoizedState=e:yd(t,we.memoizedState,e)},useTransition:function(){return[Dl(Co)[0],_t().memoizedState]},useMutableSource:id,useSyncExternalStore:ld,useId:Td,unstable_isNewReconciler:!1};function Tr(e,t){try{var n="",r=t;do{n+=Dg(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function Cl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Nl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var Ym="function"==typeof WeakMap?WeakMap:Map;function wd(e,t,n){(n=tn(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ya||(Ya=!0,Hl=r),Nl(0,t)},n}function xd(e,t,n){(n=tn(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){Nl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){Nl(0,t),"function"!=typeof r&&(null===Dn?Dn=new Set([this]):Dn.add(this));var s=t.stack;this.componentDidCatch(t.value,{componentStack:null!==s?s:""})}),n}function Rd(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new Ym;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=uh.bind(null,e,t,n),t.then(e,e))}function Ld(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function Od(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=tn(-1,1)).tag=2,_n(n,t,1))),n.lanes|=1),e)}var Km=Yt.ReactCurrentOwner,tt=!1;function Ke(e,t,n,r){t.child=null===e?ad(t,null,n,r):Dr(t,e.child,n,r)}function kd(e,t,n,r,o){n=n.render;var a=t.ref;return vr(t,o),r=bl(e,t,n,r,a,o),n=_l(),null===e||tt?(Ae&&n&&el(t),t.flags|=1,Ke(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,nn(e,t,o))}function Id(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Wl(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=ts(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Md(e,t,a,r,o))}if(a=e.child,!(e.lanes&o)){var s=a.memoizedProps;if((n=null!==(n=n.compare)?n:po)(s,r)&&e.ref===t.ref)return nn(e,t,o)}return t.flags|=1,(e=Nn(a,r)).ref=t.ref,e.return=t,t.child=e}function Md(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(po(a,r)&&e.ref===t.ref){if(tt=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,nn(e,t,o);131072&e.flags&&(tt=!0)}}return Sl(e,t,n,r,o)}function Fd(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,pe(Nr,pt),pt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,pe(Nr,pt),pt|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},pe(Nr,pt),pt|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,pe(Nr,pt),pt|=r;return Ke(e,t,o,n),t.child}function Bd(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Sl(e,t,n,r,o){var a=et(n)?On:qe.current;return a=hr(t,a),vr(t,o),n=bl(e,t,n,r,a,o),r=_l(),null===e||tt?(Ae&&r&&el(t),t.flags|=1,Ke(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,nn(e,t,o))}function Pd(e,t,n,r,o){if(et(n)){var a=!0;Na(t)}else a=!1;if(vr(t,o),null===t.stateNode)Ga(e,t),td(t,n,r),pl(t,n,r,o),r=!0;else if(null===e){var s=t.stateNode,i=t.memoizedProps;s.props=i;var l=s.context,u=n.contextType;"object"==typeof u&&null!==u?u=bt(u):u=hr(t,u=et(n)?On:qe.current);var c=n.getDerivedStateFromProps,p="function"==typeof c||"function"==typeof s.getSnapshotBeforeUpdate;p||"function"!=typeof s.UNSAFE_componentWillReceiveProps&&"function"!=typeof s.componentWillReceiveProps||(i!==r||l!==u)&&nd(t,s,r,u),bn=!1;var d=t.memoizedState;s.state=d,Ia(t,r,s,o),l=t.memoizedState,i!==r||d!==l||Je.current||bn?("function"==typeof c&&(dl(t,n,c,r),l=t.memoizedState),(i=bn||ed(t,n,i,r,d,l,u))?(p||"function"!=typeof s.UNSAFE_componentWillMount&&"function"!=typeof s.componentWillMount||("function"==typeof s.componentWillMount&&s.componentWillMount(),"function"==typeof s.UNSAFE_componentWillMount&&s.UNSAFE_componentWillMount()),"function"==typeof s.componentDidMount&&(t.flags|=4194308)):("function"==typeof s.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),s.props=r,s.state=l,s.context=u,r=i):("function"==typeof s.componentDidMount&&(t.flags|=4194308),r=!1)}else{s=t.stateNode,K0(e,t),i=t.memoizedProps,u=t.type===t.elementType?i:Rt(t.type,i),s.props=u,p=t.pendingProps,d=s.context,"object"==typeof(l=n.contextType)&&null!==l?l=bt(l):l=hr(t,l=et(n)?On:qe.current);var m=n.getDerivedStateFromProps;(c="function"==typeof m||"function"==typeof s.getSnapshotBeforeUpdate)||"function"!=typeof s.UNSAFE_componentWillReceiveProps&&"function"!=typeof s.componentWillReceiveProps||(i!==p||d!==l)&&nd(t,s,r,l),bn=!1,d=t.memoizedState,s.state=d,Ia(t,r,s,o);var A=t.memoizedState;i!==p||d!==A||Je.current||bn?("function"==typeof m&&(dl(t,n,m,r),A=t.memoizedState),(u=bn||ed(t,n,u,r,d,A,l)||!1)?(c||"function"!=typeof s.UNSAFE_componentWillUpdate&&"function"!=typeof s.componentWillUpdate||("function"==typeof s.componentWillUpdate&&s.componentWillUpdate(r,A,l),"function"==typeof s.UNSAFE_componentWillUpdate&&s.UNSAFE_componentWillUpdate(r,A,l)),"function"==typeof s.componentDidUpdate&&(t.flags|=4),"function"==typeof s.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof s.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof s.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=A),s.props=r,s.state=A,s.context=l,r=u):("function"!=typeof s.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof s.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return wl(e,t,n,r,a,o)}function wl(e,t,n,r,o,a){Bd(e,t);var s=0!=(128&t.flags);if(!r&&!s)return o&&V0(t,n,!1),nn(e,t,a);r=t.stateNode,Km.current=t;var i=s&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&s?(t.child=Dr(t,e.child,null,a),t.child=Dr(t,null,i,a)):Ke(e,t,i,a),t.memoizedState=r.state,o&&V0(t,n,!0),t.child}function Ud(e){var t=e.stateNode;t.pendingContext?q0(0,t.pendingContext,t.pendingContext!==t.context):t.context&&q0(0,t.context,!1),fl(e,t.containerInfo)}function qd(e,t,n,r,o){return br(),ol(o),t.flags|=256,Ke(e,t,n,r),t.child}var Gd,kl,$d,Zd,xl={dehydrated:null,treeContext:null,retryLane:0};function Rl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Hd(e,t,n){var i,r=t.pendingProps,o=_e.current,a=!1,s=0!=(128&t.flags);if((i=s)||(i=(null===e||null!==e.memoizedState)&&0!=(2&o)),i?(a=!0,t.flags&=-129):(null===e||null!==e.memoizedState)&&(o|=1),pe(_e,1&o),null===e)return rl(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=r.children,e=r.fallback,a?(r=t.mode,a=t.child,s={mode:"hidden",children:s},1&r||null===a?a=ns(s,r,0,null):(a.childLanes=0,a.pendingProps=s),e=Vn(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Rl(n),t.memoizedState=xl,e):Ll(t,s));if(null!==(o=e.memoizedState)&&null!==(i=o.dehydrated))return function(e,t,n,r,o,a,s){if(n)return 256&t.flags?(t.flags&=-257,r=Cl(Error(M(422))),za(e,t,s,r)):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,o=t.mode,r=ns({mode:"visible",children:r.children},o,0,null),a=Vn(a,o,s,null),a.flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,1&t.mode&&Dr(t,e.child,null,s),t.child.memoizedState=Rl(s),t.memoizedState=xl,a);if(!(1&t.mode))return za(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var i=r.dgst;return r=i,za(e,t,s,r=Cl(a=Error(M(419)),r,void 0))}if(i=0!=(s&e.childLanes),tt||i){if(null!==(r=Oe)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(r.suspendedLanes|s)?0:o)&&o!==a.retryLane&&(a.retryLane=o,en(e,o),kt(r,e,o,-1))}return jl(),za(e,t,s,r=Cl(Error(M(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=ch.bind(null,e),o._reactRetry=t,null):(e=a.treeContext,dt=mn(o.nextSibling),ct=t,Ae=!0,xt=null,null!==e&&(Et[At++]=Qt,Et[At++]=Jt,Et[At++]=kn,Qt=e.id,Jt=e.overflow,kn=t),t=Ll(t,r.children),t.flags|=4096,t)}(e,t,s,r,i,o,n);if(a){a=r.fallback,s=t.mode,i=(o=e.child).sibling;var l={mode:"hidden",children:r.children};return 1&s||t.child===o?(r=Nn(o,l)).subtreeFlags=14680064&o.subtreeFlags:((r=t.child).childLanes=0,r.pendingProps=l,t.deletions=null),null!==i?a=Nn(i,a):(a=Vn(a,s,n,null)).flags|=2,a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,s=null===(s=e.child.memoizedState)?Rl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},a.memoizedState=s,a.childLanes=e.childLanes&~n,t.memoizedState=xl,r}return e=(a=e.child).sibling,r=Nn(a,{mode:"visible",children:r.children}),!(1&t.mode)&&(r.lanes=n),r.return=t,r.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Ll(e,t){return(t=ns({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function za(e,t,n,r){return null!==r&&ol(r),Dr(t,e.child,null,n),(e=Ll(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vd(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ll(e.return,t,n)}function Ol(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function zd(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Ke(e,t,r.children,n),2&(r=_e.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vd(e,n,t);else if(19===e.tag)Vd(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(pe(_e,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ol(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Ba(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ol(t,!0,n,null,a);break;case"together":Ol(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function Ga(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function nn(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Pn|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(M(153));if(null!==t.child){for(n=Nn(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nn(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function So(e,t){if(!Ae)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ve(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Jm(e,t,n){var r=t.pendingProps;switch(tl(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ve(t),null;case 1:case 17:return et(t.type)&&Ca(),Ve(t),null;case 3:return r=t.stateNode,yr(),Ee(Je),Ee(qe),hl(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(null===e||null===e.child)&&(Ra(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==xt&&(Gl(xt),xt=null))),kl(e,t),Ve(t),null;case 5:gl(t);var o=Fn(Do.current);if(n=t.type,null!==e&&null!=t.stateNode)$d(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(M(166));return Ve(t),null}if(e=Fn(qt.current),Ra(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[Ut]=t,r[Eo]=a,e=0!=(1&t.mode),n){case"dialog":he("cancel",r),he("close",r);break;case"iframe":case"object":case"embed":he("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Ut]=t,e[Eo]=r,Gd(e,t,!1,!1),t.stateNode=e;e:{switch(s=gi(n,r),n){case"dialog":he("cancel",e),he("close",e),o=r;break;case"iframe":case"object":case"embed":he("load",e),o=r;break;case"video":case"audio":for(o=0;oSr&&(t.flags|=128,r=!0,So(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=Ba(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),So(a,!0),null===a.tail&&"hidden"===a.tailMode&&!s.alternate&&!Ae)return Ve(t),null}else 2*Ne()-a.renderingStartTime>Sr&&1073741824!==n&&(t.flags|=128,r=!0,So(a,!1),t.lanes=4194304);a.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=a.last)?n.sibling=s:t.child=s,a.last=s)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Ne(),t.sibling=null,n=_e.current,pe(_e,r?1&n|2:1&n),t):(Ve(t),null);case 22:case 23:return Zl(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?1073741824&pt&&(Ve(t),6&t.subtreeFlags&&(t.flags|=8192)):Ve(t),null;case 24:case 25:return null}throw Error(M(156,t.tag))}function eh(e,t){switch(tl(t),t.tag){case 1:return et(t.type)&&Ca(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return yr(),Ee(Je),Ee(qe),hl(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return gl(t),null;case 13:if(Ee(_e),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(M(340));br()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ee(_e),null;case 4:return yr(),null;case 10:return il(t.type._context),null;case 22:case 23:return Zl(),null;default:return null}}Gd=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},kl=function(){},$d=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Fn(qt.current);var s,a=null;switch(n){case"input":o=li(e,o),r=li(e,r),a=[];break;case"select":o=be({},o,{value:void 0}),r=be({},r,{value:void 0}),a=[];break;case"textarea":o=di(e,o),r=di(e,r),a=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=ya)}for(u in fi(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var i=o[u];for(s in i)i.hasOwnProperty(s)&&(n||(n={}),n[s]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(Gr.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in r){var l=r[u];if(i=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&l!==i&&(null!=l||null!=i))if("style"===u)if(i){for(s in i)!i.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||(n={}),n[s]="");for(s in l)l.hasOwnProperty(s)&&i[s]!==l[s]&&(n||(n={}),n[s]=l[s])}else n||(a||(a=[]),a.push(u,n)),n=l;else"dangerouslySetInnerHTML"===u?(l=l?l.__html:void 0,i=i?i.__html:void 0,null!=l&&i!==l&&(a=a||[]).push(u,l)):"children"===u?"string"!=typeof l&&"number"!=typeof l||(a=a||[]).push(u,""+l):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(Gr.hasOwnProperty(u)?(null!=l&&"onScroll"===u&&he("scroll",e),a||i===l||(a=[])):(a=a||[]).push(u,l))}n&&(a=a||[]).push("style",n);var u=a;(t.updateQueue=u)&&(t.flags|=4)}},Zd=function(e,t,n,r){n!==r&&(t.flags|=4)};var $a=!1,ze=!1,th="function"==typeof WeakSet?WeakSet:Set,U=null;function Cr(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){ye(e,t,r)}else n.current=null}function Il(e,t,n){try{n()}catch(r){ye(e,t,r)}}var jd=!1;function wo(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&Il(t,n,a)}o=o.next}while(o!==r)}}function Za(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ml(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function Wd(e){var t=e.alternate;null!==t&&(e.alternate=null,Wd(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[Ut],delete t[Eo],delete t[Xi],delete t[Pm],delete t[Um])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Yd(e){return 5===e.tag||3===e.tag||4===e.tag}function Kd(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Yd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Fl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=ya));else if(4!==r&&null!==(e=e.child))for(Fl(e,t,n),e=e.sibling;null!==e;)Fl(e,t,n),e=e.sibling}function Bl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(Bl(e,t,n),e=e.sibling;null!==e;)Bl(e,t,n),e=e.sibling}var Fe=null,Lt=!1;function vn(e,t,n){for(n=n.child;null!==n;)Xd(e,t,n),n=n.sibling}function Xd(e,t,n){if(Pt&&"function"==typeof Pt.onCommitFiberUnmount)try{Pt.onCommitFiberUnmount(aa,n)}catch{}switch(n.tag){case 5:ze||Cr(n,t);case 6:var r=Fe,o=Lt;Fe=null,vn(e,t,n),Lt=o,null!==(Fe=r)&&(Lt?(e=Fe,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):Fe.removeChild(n.stateNode));break;case 18:null!==Fe&&(Lt?(e=Fe,n=n.stateNode,8===e.nodeType?Ki(e.parentNode,n):1===e.nodeType&&Ki(e,n),ao(e)):Ki(Fe,n.stateNode));break;case 4:r=Fe,o=Lt,Fe=n.stateNode.containerInfo,Lt=!0,vn(e,t,n),Fe=r,Lt=o;break;case 0:case 11:case 14:case 15:if(!ze&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,s=a.destroy;a=a.tag,void 0!==s&&(2&a||4&a)&&Il(n,t,s),o=o.next}while(o!==r)}vn(e,t,n);break;case 1:if(!ze&&(Cr(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){ye(n,t,i)}vn(e,t,n);break;case 21:vn(e,t,n);break;case 22:1&n.mode?(ze=(r=ze)||null!==n.memoizedState,vn(e,t,n),ze=r):vn(e,t,n);break;default:vn(e,t,n)}}function Qd(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new th),t.forEach((function(r){var o=dh.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))}))}}function Ot(e,t){var n=t.deletions;if(null!==n)for(var r=0;ro&&(o=s),r&=~a}if(r=o,10<(r=(120>(r=Ne()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*oh(r/1960))-r)){e.timeoutHandle=Yi(Hn.bind(null,e,nt,rn),r);break}Hn(e,nt,rn);break;default:throw Error(M(329))}}}return rt(e,Ne()),e.callbackNode===n?o2.bind(null,e):null}function zl(e,t){var n=Ro;return e.current.memoizedState.isDehydrated&&(qn(e,t).flags|=256),2!==(e=es(e,t))&&(t=nt,nt=n,null!==t&&Gl(t)),e}function Gl(e){null===nt?nt=e:nt.push.apply(nt,e)}function Cn(e,t){for(t&=~Ul,t&=~Wa,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0e?16:e,null===yn)var r=!1;else{if(e=yn,yn=null,Xa=0,6&re)throw Error(M(331));var o=re;for(re|=4,U=e.current;null!==U;){var a=U,s=a.child;if(16&U.flags){var i=a.deletions;if(null!==i){for(var l=0;lNe()-ql?qn(e,0):Ul|=n),rt(e,t)}function d2(e,t){0===t&&(1&e.mode?(t=ia,!(130023424&(ia<<=1))&&(ia=4194304)):t=1);var n=Xe();null!==(e=en(e,t))&&(eo(e,t,n),rt(e,n))}function ch(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),d2(e,n)}function dh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(M(314))}null!==r&&r.delete(t),d2(e,n)}function f2(e,t){return $c(e,t)}function ph(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dt(e,t,n,r){return new ph(e,t,n,r)}function Wl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return null===n?((n=Dt(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ts(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Wl(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case rr:return Vn(n.children,o,a,t);case Qs:s=8,o|=8;break;case Js:return(e=Dt(12,n,t,2|o)).elementType=Js,e.lanes=a,e;case ti:return(e=Dt(13,n,t,o)).elementType=ti,e.lanes=a,e;case ni:return(e=Dt(19,n,t,o)).elementType=ni,e.lanes=a,e;case vc:return ns(n,o,a,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case bc:s=10;break e;case _c:s=9;break e;case ei:s=11;break e;case ri:s=14;break e;case sn:s=16,r=null;break e}throw Error(M(130,null==e?e:typeof e,""))}return(t=Dt(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Vn(e,t,n,r){return(e=Dt(7,e,r,t)).lanes=n,e}function ns(e,t,n,r){return(e=Dt(22,e,r,t)).elementType=vc,e.lanes=n,e.stateNode={isHidden:!1},e}function Yl(e,t,n){return(e=Dt(6,e,null,t)).lanes=n,e}function Kl(e,t,n){return(t=Dt(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function gh(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yi(0),this.expirationTimes=yi(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yi(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Xl(e,t,n,r,o,a,s,i,l){return e=new gh(e,t,n,i,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Dt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},cl(a),e}function g2(e){if(!e)return En;e:{if(Rn(e=e._reactInternals)!==e||1!==e.tag)throw Error(M(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(et(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(M(171))}if(1===e.tag){var n=e.type;if(et(n))return H0(e,n,t)}return t}function m2(e,t,n,r,o,a,s,i,l){return(e=Xl(n,r,!0,e,0,a,0,i,l)).context=g2(null),n=e.current,(a=tn(r=Xe(),o=Tn(n))).callback=t??null,_n(n,a,o),e.current.lanes=o,eo(e,o,r),rt(e,r),e}function rs(e,t,n,r){var o=t.current,a=Xe(),s=Tn(o);return n=g2(n),null===t.context?t.context=n:t.pendingContext=n,(t=tn(a,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=_n(o,t,s))&&(kt(e,o,s,a),ka(e,o,s)),s}function os(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function h2(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n"u"||"function"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(b2)}catch(e){console.error(e)}}(),pc.exports=it;var _2=pc.exports;js.createRoot=_2.createRoot,js.hydrateRoot=_2.hydrateRoot;const v2={embedId:null,baseApiUrl:null,prompt:null,model:null,temperature:null,chatIcon:"plus",brandImageUrl:null,greeting:null,buttonColor:"#262626",userBgColor:"#2C2F35",assistantBgColor:"#2563eb",noSponsor:null,sponsorText:"Powered by AnythingLLM",sponsorLink:"https://useanything.com",position:"bottom-right",assistantName:"AnythingLLM Chat Assistant",assistantIcon:null,windowHeight:null,windowWidth:null,textSize:null,openOnLoad:"off",supportEmail:null};let us;const Dh=new Uint8Array(16);function yh(){if(!us&&(us=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!us))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return us(Dh)}const Pe=[];for(let e=0;e<256;++e)Pe.push((e+256).toString(16).slice(1));const D2={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function zn(e,t,n){if(D2.randomUUID&&!t&&!e)return D2.randomUUID();const r=(e=e||{}).random||(e.rng||yh)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let o=0;o<16;++o)t[n+o]=r[o];return t}return function(e,t=0){return Pe[e[t+0]]+Pe[e[t+1]]+Pe[e[t+2]]+Pe[e[t+3]]+"-"+Pe[e[t+4]]+Pe[e[t+5]]+"-"+Pe[e[t+6]]+Pe[e[t+7]]+"-"+Pe[e[t+8]]+Pe[e[t+9]]+"-"+Pe[e[t+10]]+Pe[e[t+11]]+Pe[e[t+12]]+Pe[e[t+13]]+Pe[e[t+14]]+Pe[e[t+15]]}(r)}function y2(){const[e,t]=Z.useState("");return Z.useEffect((()=>{!function(){var s,i;if(!window||null==(s=null==Te?void 0:Te.settings)||!s.embedId)return;const r=`allm_${null==(i=null==Te?void 0:Te.settings)?void 0:i.embedId}_session_id`,o=window.localStorage.getItem(r);if(o)return console.log("Resuming session id",o),void t(o);const a=zn();console.log("Registering new session id",a),window.localStorage.setItem(r,a),t(a)}()}),[window]),e}const tu="___anythingllm-chat-widget-open___";const Nh="\npre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!\n Theme: GitHub Dark Dimmed\n Description: Dark dimmed theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Colors taken from GitHub's CSS\n*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}\n",Sh='\n /**\n * ==============================================\n * Dot Falling\n * ==============================================\n */\n .dot-falling {\n position: relative;\n left: -9999px;\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #5fa4fa;\n box-shadow: 9999px 0 0 0 #000000;\n animation: dot-falling 1.5s infinite linear;\n animation-delay: 0.1s;\n }\n\n .dot-falling::before,\n .dot-falling::after {\n content: "";\n display: inline-block;\n position: absolute;\n top: 0;\n }\n\n .dot-falling::before {\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #000000;\n animation: dot-falling-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n\n .dot-falling::after {\n width: 10px;\n height: 10px;\n border-radius: 5px;\n background-color: #000000;\n color: #000000;\n animation: dot-falling-after 1.5s infinite linear;\n animation-delay: 0.2s;\n }\n\n @keyframes dot-falling {\n 0% {\n box-shadow: 9999px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 9999px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 9999px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n @keyframes dot-falling-before {\n 0% {\n box-shadow: 9984px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 9984px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 9984px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n @keyframes dot-falling-after {\n 0% {\n box-shadow: 10014px -15px 0 0 rgba(152, 128, 255, 0);\n }\n 25%,\n 50%,\n 75% {\n box-shadow: 10014px 0 0 0 #000000;\n }\n 100% {\n box-shadow: 10014px 15px 0 0 rgba(152, 128, 255, 0);\n }\n }\n\n #chat-history::-webkit-scrollbar,\n #chat-container::-webkit-scrollbar,\n .no-scroll::-webkit-scrollbar {\n display: none !important;\n }\n\n /* Hide scrollbar for IE, Edge and Firefox */\n #chat-history,\n #chat-container,\n .no-scroll {\n -ms-overflow-style: none !important; /* IE and Edge */\n scrollbar-width: none !important; /* Firefox */\n }\n\n .animate-slow-pulse {\n transform: scale(1);\n animation: subtlePulse 20s infinite;\n will-change: transform;\n }\n\n @keyframes subtlePulse {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n }\n\n @keyframes subtleShift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n\n .bg-black-900 {\n background: #141414;\n }\n';function wh(){return w.jsxs("head",{children:[w.jsx("style",{children:Nh}),w.jsx("style",{children:Sh})]})}const xh=Z.createContext({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var Rh=Object.defineProperty,cs=Object.getOwnPropertySymbols,T2=Object.prototype.hasOwnProperty,C2=Object.prototype.propertyIsEnumerable,N2=(e,t,n)=>t in e?Rh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S2=(e,t)=>{for(var n in t||(t={}))T2.call(t,n)&&N2(e,n,t[n]);if(cs)for(var n of cs(t))C2.call(t,n)&&N2(e,n,t[n]);return e},w2=(e,t)=>{var n={};for(var r in e)T2.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&cs)for(var r of cs(e))t.indexOf(r)<0&&C2.call(e,r)&&(n[r]=e[r]);return n};const Ue=Z.forwardRef(((e,t)=>{const n=e,{alt:r,color:o,size:a,weight:s,mirrored:i,children:l,weights:u}=n,c=w2(n,["alt","color","size","weight","mirrored","children","weights"]),p=Z.useContext(xh),{color:d="currentColor",size:m,weight:A="regular",mirrored:b=!1}=p,C=w2(p,["color","size","weight","mirrored"]);return f.createElement("svg",S2(S2({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a??m,height:a??m,fill:o??d,viewBox:"0 0 256 256",transform:i||b?"scale(-1, 1)":void 0},C),c),!!r&&f.createElement("title",null,r),l,u.get(s??A))}));Ue.displayName="IconBase";const Lh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a100,100,0,0,1-98.66,100H128a99.39,99.39,0,0,1-68.62-27.29,12,12,0,0,1,16.48-17.45,76,76,0,1,0-1.57-109c-.13.13-.25.25-.39.37L54.89,92H72a12,12,0,0,1,0,24H24a12,12,0,0,1-12-12V56a12,12,0,0,1,24,0V76.72L57.48,57.06A100,100,0,0,1,228,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M72,104H24V56Z",opacity:"0.2"}),f.createElement("path",{d:"M195.88,60.08A96.08,96.08,0,0,0,60.25,60L49.31,70,29.66,50.3A8,8,0,0,0,16,56v48a8,8,0,0,0,8,8H72a8,8,0,0,0,5.66-13.66l-17-17,10.54-9.65a3.07,3.07,0,0,0,.26-.25,80,80,0,1,1,1.65,114.78,8,8,0,0,0-11,11.63A95.38,95.38,0,0,0,128,224h1.32A96,96,0,0,0,195.88,60.08ZM32,96V75.28L52.69,96Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L60.63,81.29l17,17A8,8,0,0,1,72,112H24a8,8,0,0,1-8-8V56A8,8,0,0,1,29.66,50.3L49.31,70,60.25,60A96,96,0,0,1,224,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222,128a94,94,0,0,1-92.74,94H128a93.43,93.43,0,0,1-64.5-25.65,6,6,0,1,1,8.24-8.72A82,82,0,1,0,70,70l-.19.19L39.44,98H72a6,6,0,0,1,0,12H24a6,6,0,0,1-6-6V56a6,6,0,0,1,12,0V90.34L61.63,61.4A94,94,0,0,1,222,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L44.59,96H72a8,8,0,0,1,0,16H24a8,8,0,0,1-8-8V56a8,8,0,0,1,16,0V85.8L60.25,60A96,96,0,0,1,224,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M220,128a92,92,0,0,1-90.77,92H128a91.47,91.47,0,0,1-63.13-25.1,4,4,0,1,1,5.5-5.82A84,84,0,1,0,68.6,68.57l-.13.12L34.3,100H72a4,4,0,0,1,0,8H24a4,4,0,0,1-4-4V56a4,4,0,0,1,8,0V94.89l35-32A92,92,0,0,1,220,128Z"}))]]);var Oh=Object.defineProperty,kh=Object.defineProperties,Ih=Object.getOwnPropertyDescriptors,x2=Object.getOwnPropertySymbols,Mh=Object.prototype.hasOwnProperty,Fh=Object.prototype.propertyIsEnumerable,R2=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const L2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>kh(e,Ih(t)))(((e,t)=>{for(var n in t||(t={}))Mh.call(t,n)&&R2(e,n,t[n]);if(x2)for(var n of x2(t))Fh.call(t,n)&&R2(e,n,t[n]);return e})({ref:t},e),{weights:Lh}))));L2.displayName="ArrowCounterClockwise";const Uh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M200,144l-72,72L56,144Z",opacity:"0.2"}),f.createElement("path",{d:"M207.39,140.94A8,8,0,0,0,200,136H136V40a8,8,0,0,0-16,0v96H56a8,8,0,0,0-5.66,13.66l72,72a8,8,0,0,0,11.32,0l72-72A8,8,0,0,0,207.39,140.94ZM128,204.69,75.31,152H180.69Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,5.66,13.66Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.24,148.24l-72,72a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L122,201.51V40a6,6,0,0,1,12,0V201.51l61.76-61.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M202.83,146.83l-72,72a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L124,206.34V40a4,4,0,0,1,8,0V206.34l65.17-65.17a4,4,0,0,1,5.66,5.66Z"}))]]);var qh=Object.defineProperty,Hh=Object.defineProperties,Vh=Object.getOwnPropertyDescriptors,O2=Object.getOwnPropertySymbols,zh=Object.prototype.hasOwnProperty,Gh=Object.prototype.propertyIsEnumerable,k2=(e,t,n)=>t in e?qh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const I2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>Hh(e,Vh(t)))(((e,t)=>{for(var n in t||(t={}))zh.call(t,n)&&k2(e,n,t[n]);if(O2)for(var n of O2(t))Gh.call(t,n)&&k2(e,n,t[n]);return e})({ref:t},e),{weights:Uh}))));I2.displayName="ArrowDown";const jh=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M241,150.65s0,0,0-.05a51.33,51.33,0,0,0-2.53-5.9L196.93,50.18a12,12,0,0,0-2.5-3.65,36,36,0,0,0-50.92,0A12,12,0,0,0,140,55V76H116V55a12,12,0,0,0-3.51-8.48,36,36,0,0,0-50.92,0,12,12,0,0,0-2.5,3.65L17.53,144.7A51.33,51.33,0,0,0,15,150.6s0,0,0,.05A52,52,0,1,0,116,168V100h24v68a52,52,0,1,0,101-17.35ZM80,62.28a12,12,0,0,1,12-1.22v63.15a51.9,51.9,0,0,0-35.9-7.62ZM64,196a28,28,0,1,1,28-28A28,28,0,0,1,64,196ZM164,61.06a12.06,12.06,0,0,1,12,1.22l23.87,54.31a51.9,51.9,0,0,0-35.9,7.62ZM192,196a28,28,0,1,1,28-28A28,28,0,0,1,192,196Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M104,168a40,40,0,1,1-40-40A40,40,0,0,1,104,168Zm88-40a40,40,0,1,0,40,40A40,40,0,0,0,192,128Z",opacity:"0.2"}),f.createElement("path",{d:"M237.2,151.87v0a47.1,47.1,0,0,0-2.35-5.45L193.26,51.8a7.82,7.82,0,0,0-1.66-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,7.82,7.82,0,0,0-1.66,2.44L21.15,146.4a47.1,47.1,0,0,0-2.35,5.45v0A48,48,0,1,0,112,168V96h32v72a48,48,0,1,0,93.2-16.13ZM76.71,59.75a16,16,0,0,1,19.29-1v73.51a47.9,47.9,0,0,0-46.79-9.92ZM64,200a32,32,0,1,1,32-32A32,32,0,0,1,64,200ZM160,58.74a16,16,0,0,1,19.29,1l27.5,62.58A47.9,47.9,0,0,0,160,132.25ZM192,200a32,32,0,1,1,32-32A32,32,0,0,1,192,200Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M237.22,151.9l0-.1a1.42,1.42,0,0,0-.07-.22,48.46,48.46,0,0,0-2.31-5.3L193.27,51.8a8,8,0,0,0-1.67-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,8,8,0,0,0-1.67,2.44L21.2,146.28a48.46,48.46,0,0,0-2.31,5.3,1.72,1.72,0,0,0-.07.21s0,.08,0,.11a48,48,0,0,0,90.32,32.51,47.49,47.49,0,0,0,2.9-16.59V96h32v71.83a47.49,47.49,0,0,0,2.9,16.59,48,48,0,0,0,90.32-32.51Zm-143.15,27a32,32,0,0,1-60.2-21.71l1.81-4.13A32,32,0,0,1,96,167.88V168h0A32,32,0,0,1,94.07,178.94ZM203,198.07A32,32,0,0,1,160,168h0v-.11a32,32,0,0,1,60.32-14.78l1.81,4.13A32,32,0,0,1,203,198.07Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M233,147.24,191.43,52.6a6,6,0,0,0-1.25-1.83,30,30,0,0,0-42.42,0A6,6,0,0,0,146,55V82H110V55a6,6,0,0,0-1.76-4.25,30,30,0,0,0-42.42,0,6,6,0,0,0-1.25,1.83L23,147.24A46,46,0,1,0,110,168V94h36v74a46,46,0,1,0,87-20.76ZM64,202a34,34,0,1,1,34-34A34,34,0,0,1,64,202Zm0-80a45.77,45.77,0,0,0-18.55,3.92L75.06,58.54A18,18,0,0,1,98,57.71V137A45.89,45.89,0,0,0,64,122Zm94-64.28a18,18,0,0,1,22.94.83l29.61,67.37A45.9,45.9,0,0,0,158,137ZM192,202a34,34,0,1,1,34-34A34,34,0,0,1,192,202Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M237.2,151.87v0a47.1,47.1,0,0,0-2.35-5.45L193.26,51.8a7.82,7.82,0,0,0-1.66-2.44,32,32,0,0,0-45.26,0A8,8,0,0,0,144,55V80H112V55a8,8,0,0,0-2.34-5.66,32,32,0,0,0-45.26,0,7.82,7.82,0,0,0-1.66,2.44L21.15,146.4a47.1,47.1,0,0,0-2.35,5.45v0A48,48,0,1,0,112,168V96h32v72a48,48,0,1,0,93.2-16.13ZM76.71,59.75a16,16,0,0,1,19.29-1v73.51a47.9,47.9,0,0,0-46.79-9.92ZM64,200a32,32,0,1,1,32-32A32,32,0,0,1,64,200ZM160,58.74a16,16,0,0,1,19.29,1l27.5,62.58A47.9,47.9,0,0,0,160,132.25ZM192,200a32,32,0,1,1,32-32A32,32,0,0,1,192,200Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M231.22,148.09,189.6,53.41a3.94,3.94,0,0,0-.83-1.22,28,28,0,0,0-39.6,0A4,4,0,0,0,148,55V84H108V55a4,4,0,0,0-1.17-2.83,28,28,0,0,0-39.6,0,3.94,3.94,0,0,0-.83,1.22L24.78,148.09A44,44,0,1,0,108,168V92h40v76a44,44,0,1,0,83.22-19.91ZM64,204a36,36,0,1,1,36-36A36,36,0,0,1,64,204Zm0-80a43.78,43.78,0,0,0-22.66,6.3L73.4,57.35a20,20,0,0,1,26.6-.59v86A44,44,0,0,0,64,124Zm92-67.23a20,20,0,0,1,26.6.59l32.06,72.94A43.92,43.92,0,0,0,156,142.74ZM192,204a36,36,0,1,1,36-36A36,36,0,0,1,192,204Z"}))]]);var Wh=Object.defineProperty,Yh=Object.defineProperties,Kh=Object.getOwnPropertyDescriptors,M2=Object.getOwnPropertySymbols,Xh=Object.prototype.hasOwnProperty,Qh=Object.prototype.propertyIsEnumerable,F2=(e,t,n)=>t in e?Wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const B2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>Yh(e,Kh(t)))(((e,t)=>{for(var n in t||(t={}))Xh.call(t,n)&&F2(e,n,t[n]);if(M2)for(var n of M2(t))Qh.call(t,n)&&F2(e,n,t[n]);return e})({ref:t},e),{weights:jh}))));B2.displayName="Binoculars";const tE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M120,128a16,16,0,1,1-16-16A16,16,0,0,1,120,128Zm32-16a16,16,0,1,0,16,16A16,16,0,0,0,152,112Zm84,16A108,108,0,0,1,78.77,224.15L46.34,235A20,20,0,0,1,21,209.66l10.81-32.43A108,108,0,1,1,236,128Zm-24,0A84,84,0,1,0,55.27,170.06a12,12,0,0,1,1,9.81l-9.93,29.79,29.79-9.93a12.1,12.1,0,0,1,3.8-.62,12,12,0,0,1,6,1.62A84,84,0,0,0,212,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128A96,96,0,0,1,79.93,211.11h0L42.54,223.58a8,8,0,0,1-10.12-10.12l12.47-37.39h0A96,96,0,1,1,224,128Z",opacity:"0.2"}),f.createElement("path",{d:"M128,24A104,104,0,0,0,36.18,176.88L24.83,210.93a16,16,0,0,0,20.24,20.24l34.05-11.35A104,104,0,1,0,128,24Zm0,192a87.87,87.87,0,0,1-44.06-11.81,8,8,0,0,0-4-1.08,7.85,7.85,0,0,0-2.53.42L40,216,52.47,178.6a8,8,0,0,0-.66-6.54A88,88,0,1,1,128,216Zm12-88a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm-44,0a12,12,0,1,1-12-12A12,12,0,0,1,96,128Zm88,0a12,12,0,1,1-12-12A12,12,0,0,1,184,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,24A104,104,0,0,0,36.18,176.88L24.83,210.93a16,16,0,0,0,20.24,20.24l34.05-11.35A104,104,0,1,0,128,24ZM84,140a12,12,0,1,1,12-12A12,12,0,0,1,84,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,172,140Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M138,128a10,10,0,1,1-10-10A10,10,0,0,1,138,128ZM84,118a10,10,0,1,0,10,10A10,10,0,0,0,84,118Zm88,0a10,10,0,1,0,10,10A10,10,0,0,0,172,118Zm58,10A102,102,0,0,1,79.31,217.65L44.44,229.27a14,14,0,0,1-17.71-17.71l11.62-34.87A102,102,0,1,1,230,128Zm-12,0A90,90,0,1,0,50.08,173.06a6,6,0,0,1,.5,4.91L38.12,215.35a2,2,0,0,0,2.53,2.53L78,205.42a6.2,6.2,0,0,1,1.9-.31,6.09,6.09,0,0,1,3,.81A90,90,0,0,0,218,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128ZM84,116a12,12,0,1,0,12,12A12,12,0,0,0,84,116Zm88,0a12,12,0,1,0,12,12A12,12,0,0,0,172,116Zm60,12A104,104,0,0,1,79.12,219.82L45.07,231.17a16,16,0,0,1-20.24-20.24l11.35-34.05A104,104,0,1,1,232,128Zm-16,0A88,88,0,1,0,51.81,172.06a8,8,0,0,1,.66,6.54L40,216,77.4,203.53a7.85,7.85,0,0,1,2.53-.42,8,8,0,0,1,4,1.08A88,88,0,0,0,216,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M136,128a8,8,0,1,1-8-8A8,8,0,0,1,136,128Zm-52-8a8,8,0,1,0,8,8A8,8,0,0,0,84,120Zm88,0a8,8,0,1,0,8,8A8,8,0,0,0,172,120Zm56,8A100,100,0,0,1,79.5,215.47l-35.69,11.9a12,12,0,0,1-15.18-15.18l11.9-35.69A100,100,0,1,1,228,128Zm-8,0A92,92,0,1,0,48.35,174.07a4,4,0,0,1,.33,3.27L36.22,214.72a4,4,0,0,0,5.06,5.06l37.38-12.46a3.93,3.93,0,0,1,1.27-.21,4.05,4.05,0,0,1,2,.54A92,92,0,0,0,220,128Z"}))]]);var nE=Object.defineProperty,rE=Object.defineProperties,oE=Object.getOwnPropertyDescriptors,P2=Object.getOwnPropertySymbols,aE=Object.prototype.hasOwnProperty,sE=Object.prototype.propertyIsEnumerable,U2=(e,t,n)=>t in e?nE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const q2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>rE(e,oE(t)))(((e,t)=>{for(var n in t||(t={}))aE.call(t,n)&&U2(e,n,t[n]);if(P2)for(var n of P2(t))sE.call(t,n)&&U2(e,n,t[n]);return e})({ref:t},e),{weights:tE}))));q2.displayName="ChatCircleDots";const uE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z",opacity:"0.2"}),f.createElement("path",{d:"M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z"}))]]);var cE=Object.defineProperty,dE=Object.defineProperties,pE=Object.getOwnPropertyDescriptors,H2=Object.getOwnPropertySymbols,fE=Object.prototype.hasOwnProperty,gE=Object.prototype.propertyIsEnumerable,V2=(e,t,n)=>t in e?cE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const z2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>dE(e,pE(t)))(((e,t)=>{for(var n in t||(t={}))fE.call(t,n)&&V2(e,n,t[n]);if(H2)for(var n of H2(t))gE.call(t,n)&&V2(e,n,t[n]);return e})({ref:t},e),{weights:uE}))));z2.displayName="Check";const EE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236,128a108,108,0,0,1-216,0c0-42.52,24.73-81.34,63-98.9A12,12,0,1,1,93,50.91C63.24,64.57,44,94.83,44,128a84,84,0,0,0,168,0c0-33.17-19.24-63.43-49-77.09A12,12,0,1,1,173,29.1C211.27,46.66,236,85.48,236,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),f.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,176A72,72,0,0,1,92,65.64a8,8,0,0,1,8,13.85,56,56,0,1,0,56,0,8,8,0,0,1,8-13.85A72,72,0,0,1,128,200Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M230,128a102,102,0,0,1-204,0c0-40.18,23.35-76.86,59.5-93.45a6,6,0,0,1,5,10.9C58.61,60.09,38,92.49,38,128a90,90,0,0,0,180,0c0-35.51-20.61-67.91-52.5-82.55a6,6,0,0,1,5-10.9C206.65,51.14,230,87.82,230,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a100,100,0,0,1-200,0c0-39.4,22.9-75.37,58.33-91.63a4,4,0,1,1,3.34,7.27C57.07,58.6,36,91.71,36,128a92,92,0,0,0,184,0c0-36.29-21.07-69.4-53.67-84.36a4,4,0,1,1,3.34-7.27C205.1,52.63,228,88.6,228,128Z"}))]]);var AE=Object.defineProperty,bE=Object.defineProperties,_E=Object.getOwnPropertyDescriptors,G2=Object.getOwnPropertySymbols,vE=Object.prototype.hasOwnProperty,DE=Object.prototype.propertyIsEnumerable,$2=(e,t,n)=>t in e?AE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const nu=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>bE(e,_E(t)))(((e,t)=>{for(var n in t||(t={}))vE.call(t,n)&&$2(e,n,t[n]);if(G2)for(var n of G2(t))DE.call(t,n)&&$2(e,n,t[n]);return e})({ref:t},e),{weights:EE}))));nu.displayName="CircleNotch";const CE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,28H88A12,12,0,0,0,76,40V76H40A12,12,0,0,0,28,88V216a12,12,0,0,0,12,12H168a12,12,0,0,0,12-12V180h36a12,12,0,0,0,12-12V40A12,12,0,0,0,216,28ZM156,204H52V100H156Zm48-48H180V88a12,12,0,0,0-12-12H100V52H204Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,40V168H168V88H88V40Z",opacity:"0.2"}),f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32Zm-8,128H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,34H88a6,6,0,0,0-6,6V82H40a6,6,0,0,0-6,6V216a6,6,0,0,0,6,6H168a6,6,0,0,0,6-6V174h42a6,6,0,0,0,6-6V40A6,6,0,0,0,216,34ZM162,210H46V94H162Zm48-48H174V88a6,6,0,0,0-6-6H94V46H210Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,36H88a4,4,0,0,0-4,4V84H40a4,4,0,0,0-4,4V216a4,4,0,0,0,4,4H168a4,4,0,0,0,4-4V172h44a4,4,0,0,0,4-4V40A4,4,0,0,0,216,36ZM164,212H44V92H164Zm48-48H172V88a4,4,0,0,0-4-4H92V44H212Z"}))]]);var NE=Object.defineProperty,SE=Object.defineProperties,wE=Object.getOwnPropertyDescriptors,Z2=Object.getOwnPropertySymbols,xE=Object.prototype.hasOwnProperty,RE=Object.prototype.propertyIsEnumerable,j2=(e,t,n)=>t in e?NE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const W2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>SE(e,wE(t)))(((e,t)=>{for(var n in t||(t={}))xE.call(t,n)&&j2(e,n,t[n]);if(Z2)for(var n of Z2(t))RE.call(t,n)&&j2(e,n,t[n]);return e})({ref:t},e),{weights:CE}))));W2.displayName="Copy";const kE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,40a8,8,0,1,1,8-8A8,8,0,0,1,128,136Zm0-56A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-40a8,8,0,1,1-8,8A8,8,0,0,1,128,40Zm0,136a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,40a8,8,0,1,1,8-8A8,8,0,0,1,128,216Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M152,128a24,24,0,1,1-24-24A24,24,0,0,1,152,128ZM128,72a24,24,0,1,0-24-24A24,24,0,0,0,128,72Zm0,112a24,24,0,1,0,24,24A24,24,0,0,0,128,184Z",opacity:"0.2"}),f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,144Zm0-64A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-48a16,16,0,1,1-16,16A16,16,0,0,1,128,32Zm0,144a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,224Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M156,128a28,28,0,1,1-28-28A28,28,0,0,1,156,128ZM128,76a28,28,0,1,0-28-28A28,28,0,0,0,128,76Zm0,104a28,28,0,1,0,28,28A28,28,0,0,0,128,180Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,98a30,30,0,1,0,30,30A30,30,0,0,0,128,98Zm0,48a18,18,0,1,1,18-18A18,18,0,0,1,128,146Zm0-68A30,30,0,1,0,98,48,30,30,0,0,0,128,78Zm0-48a18,18,0,1,1-18,18A18,18,0,0,1,128,30Zm0,148a30,30,0,1,0,30,30A30,30,0,0,0,128,178Zm0,48a18,18,0,1,1,18-18A18,18,0,0,1,128,226Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,96a32,32,0,1,0,32,32A32,32,0,0,0,128,96Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,144Zm0-64A32,32,0,1,0,96,48,32,32,0,0,0,128,80Zm0-48a16,16,0,1,1-16,16A16,16,0,0,1,128,32Zm0,144a32,32,0,1,0,32,32A32,32,0,0,0,128,176Zm0,48a16,16,0,1,1,16-16A16,16,0,0,1,128,224Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M128,100a28,28,0,1,0,28,28A28,28,0,0,0,128,100Zm0,48a20,20,0,1,1,20-20A20,20,0,0,1,128,148Zm0-72a28,28,0,1,0-28-28A28,28,0,0,0,128,76Zm0-48a20,20,0,1,1-20,20A20,20,0,0,1,128,28Zm0,152a28,28,0,1,0,28,28A28,28,0,0,0,128,180Zm0,48a20,20,0,1,1,20-20A20,20,0,0,1,128,228Z"}))]]);var IE=Object.defineProperty,ME=Object.defineProperties,FE=Object.getOwnPropertyDescriptors,Y2=Object.getOwnPropertySymbols,BE=Object.prototype.hasOwnProperty,PE=Object.prototype.propertyIsEnumerable,K2=(e,t,n)=>t in e?IE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const X2=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>ME(e,FE(t)))(((e,t)=>{for(var n in t||(t={}))BE.call(t,n)&&K2(e,n,t[n]);if(Y2)for(var n of Y2(t))PE.call(t,n)&&K2(e,n,t[n]);return e})({ref:t},e),{weights:kE}))));X2.displayName="DotsThreeOutlineVertical";const HE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,44H32A12,12,0,0,0,20,56V192a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V56A12,12,0,0,0,224,44Zm-96,83.72L62.85,68h130.3ZM92.79,128,44,172.72V83.28Zm17.76,16.28,9.34,8.57a12,12,0,0,0,16.22,0l9.34-8.57L193.15,188H62.85ZM163.21,128,212,83.28v89.44Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,56l-96,88L32,56Z",opacity:"0.2"}),f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48Zm-96,85.15L52.57,64H203.43ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,50H32a6,6,0,0,0-6,6V192a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A6,6,0,0,0,224,50Zm-96,85.86L47.42,62H208.58ZM101.67,128,38,186.36V69.64Zm8.88,8.14L124,148.42a6,6,0,0,0,8.1,0l13.4-12.28L208.58,194H47.43ZM154.33,128,218,69.64V186.36Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48Zm-96,85.15L52.57,64H203.43ZM98.71,128,40,181.81V74.19Zm11.84,10.85,12,11.05a8,8,0,0,0,10.82,0l12-11.05,58,53.15H52.57ZM157.29,128,216,74.18V181.82Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,52H32a4,4,0,0,0-4,4V192a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A4,4,0,0,0,224,52Zm-96,86.57L42.28,60H213.72ZM104.63,128,36,190.91V65.09Zm5.92,5.43L125.3,147a4,4,0,0,0,5.4,0l14.75-13.52L213.72,196H42.28ZM151.37,128,220,65.09V190.91Z"}))]]);var VE=Object.defineProperty,zE=Object.defineProperties,GE=Object.getOwnPropertyDescriptors,Q2=Object.getOwnPropertySymbols,$E=Object.prototype.hasOwnProperty,ZE=Object.prototype.propertyIsEnumerable,J2=(e,t,n)=>t in e?VE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const ep=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>zE(e,GE(t)))(((e,t)=>{for(var n in t||(t={}))$E.call(t,n)&&J2(e,n,t[n]);if(Q2)for(var n of Q2(t))ZE.call(t,n)&&J2(e,n,t[n]);return e})({ref:t},e),{weights:HE}))));ep.displayName="Envelope";const YE=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.73,51.85A108.07,108.07,0,0,0,20,128v56a28,28,0,0,0,28,28H64a28,28,0,0,0,28-28V144a28,28,0,0,0-28-28H44.84A84.05,84.05,0,0,1,128,44h.64a83.7,83.7,0,0,1,82.52,72H192a28,28,0,0,0-28,28v40a28,28,0,0,0,28,28h19.6A20,20,0,0,1,192,228H136a12,12,0,0,0,0,24h56a44.05,44.05,0,0,0,44-44V128A107.34,107.34,0,0,0,204.73,51.85ZM64,140a4,4,0,0,1,4,4v40a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V140Zm124,44V144a4,4,0,0,1,4-4h20v48H192A4,4,0,0,1,188,184Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M80,144v40a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V128H64A16,16,0,0,1,80,144Zm112-16a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h32V128Z",opacity:"0.2"}),f.createElement("path",{d:"M201.89,54.66A104.08,104.08,0,0,0,24,128v56a24,24,0,0,0,24,24H64a24,24,0,0,0,24-24V144a24,24,0,0,0-24-24H40.36A88.12,88.12,0,0,1,190.54,65.93,87.39,87.39,0,0,1,215.65,120H192a24,24,0,0,0-24,24v40a24,24,0,0,0,24,24h24a24,24,0,0,1-24,24H136a8,8,0,0,0,0,16h56a40,40,0,0,0,40-40V128A103.41,103.41,0,0,0,201.89,54.66ZM64,136a8,8,0,0,1,8,8v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V136Zm128,56a8,8,0,0,1-8-8V144a8,8,0,0,1,8-8h24v56Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,128v80a40,40,0,0,1-40,40H136a8,8,0,0,1,0-16h56a24,24,0,0,0,24-24H192a24,24,0,0,1-24-24V144a24,24,0,0,1,24-24h23.65A88,88,0,0,0,66,65.54,87.29,87.29,0,0,0,40.36,120H64a24,24,0,0,1,24,24v40a24,24,0,0,1-24,24H48a24,24,0,0,1-24-24V128A104.11,104.11,0,0,1,201.89,54.66,103.41,103.41,0,0,1,232,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M200.47,56.07A101.37,101.37,0,0,0,128.77,26H128A102,102,0,0,0,26,128v56a22,22,0,0,0,22,22H64a22,22,0,0,0,22-22V144a22,22,0,0,0-22-22H38.2A90,90,0,0,1,128,38h.68a89.71,89.71,0,0,1,89.13,84H192a22,22,0,0,0-22,22v40a22,22,0,0,0,22,22h26v2a26,26,0,0,1-26,26H136a6,6,0,0,0,0,12h56a38,38,0,0,0,38-38V128A101.44,101.44,0,0,0,200.47,56.07ZM64,134a10,10,0,0,1,10,10v40a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V134Zm118,50V144a10,10,0,0,1,10-10h26v60H192A10,10,0,0,1,182,184Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M201.89,54.66A103.43,103.43,0,0,0,128.79,24H128A104,104,0,0,0,24,128v56a24,24,0,0,0,24,24H64a24,24,0,0,0,24-24V144a24,24,0,0,0-24-24H40.36A88.12,88.12,0,0,1,190.54,65.93,87.39,87.39,0,0,1,215.65,120H192a24,24,0,0,0-24,24v40a24,24,0,0,0,24,24h24a24,24,0,0,1-24,24H136a8,8,0,0,0,0,16h56a40,40,0,0,0,40-40V128A103.41,103.41,0,0,0,201.89,54.66ZM64,136a8,8,0,0,1,8,8v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V136Zm128,56a8,8,0,0,1-8-8V144a8,8,0,0,1,8-8h24v56Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M199.05,57.48A100.07,100.07,0,0,0,28,128v56a20,20,0,0,0,20,20H64a20,20,0,0,0,20-20V144a20,20,0,0,0-20-20H36.08A92,92,0,0,1,128,36h.7a91.75,91.75,0,0,1,91.22,88H192a20,20,0,0,0-20,20v40a20,20,0,0,0,20,20h28v4a28,28,0,0,1-28,28H136a4,4,0,0,0,0,8h56a36,36,0,0,0,36-36V128A99.44,99.44,0,0,0,199.05,57.48ZM64,132a12,12,0,0,1,12,12v40a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V132Zm116,52V144a12,12,0,0,1,12-12h28v64H192A12,12,0,0,1,180,184Z"}))]]);var KE=Object.defineProperty,XE=Object.defineProperties,QE=Object.getOwnPropertyDescriptors,tp=Object.getOwnPropertySymbols,JE=Object.prototype.hasOwnProperty,eA=Object.prototype.propertyIsEnumerable,np=(e,t,n)=>t in e?KE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const rp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>XE(e,QE(t)))(((e,t)=>{for(var n in t||(t={}))JE.call(t,n)&&np(e,n,t[n]);if(tp)for(var n of tp(t))eA.call(t,n)&&np(e,n,t[n]);return e})({ref:t},e),{weights:YE}))));rp.displayName="Headset";const rA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M252,152a12,12,0,0,1-12,12H228v12a12,12,0,0,1-24,0V164H192a12,12,0,0,1,0-24h12V128a12,12,0,0,1,24,0v12h12A12,12,0,0,1,252,152ZM56,76H68V88a12,12,0,0,0,24,0V76h12a12,12,0,1,0,0-24H92V40a12,12,0,0,0-24,0V52H56a12,12,0,0,0,0,24ZM184,188h-4v-4a12,12,0,0,0-24,0v4h-4a12,12,0,0,0,0,24h4v4a12,12,0,0,0,24,0v-4h4a12,12,0,0,0,0-24ZM222.14,82.83,82.82,222.14a20,20,0,0,1-28.28,0L33.85,201.46a20,20,0,0,1,0-28.29L173.17,33.86a20,20,0,0,1,28.28,0l20.69,20.68A20,20,0,0,1,222.14,82.83ZM159,112,144,97,53.65,187.31l15,15Zm43.31-43.31-15-15L161,80l15,15Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M176,112,74.34,213.66a8,8,0,0,1-11.31,0L42.34,193a8,8,0,0,1,0-11.31L144,80Z",opacity:"0.2"}),f.createElement("path",{d:"M248,152a8,8,0,0,1-8,8H224v16a8,8,0,0,1-16,0V160H192a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,248,152ZM56,72H72V88a8,8,0,0,0,16,0V72h16a8,8,0,0,0,0-16H88V40a8,8,0,0,0-16,0V56H56a8,8,0,0,0,0,16ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80Zm-54.63,32L144,91.31l-96,96L68.68,208ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M248,152a8,8,0,0,1-8,8H224v16a8,8,0,0,1-16,0V160H192a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,248,152ZM56,72H72V88a8,8,0,0,0,16,0V72h16a8,8,0,0,0,0-16H88V40a8,8,0,0,0-16,0V56H56a8,8,0,0,0,0,16ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M246,152a6,6,0,0,1-6,6H222v18a6,6,0,0,1-12,0V158H192a6,6,0,0,1,0-12h18V128a6,6,0,0,1,12,0v18h18A6,6,0,0,1,246,152ZM56,70H74V88a6,6,0,0,0,12,0V70h18a6,6,0,0,0,0-12H86V40a6,6,0,0,0-12,0V58H56a6,6,0,0,0,0,12ZM184,194H174V184a6,6,0,0,0-12,0v10H152a6,6,0,0,0,0,12h10v10a6,6,0,0,0,12,0V206h10a6,6,0,0,0,0-12ZM217.9,78.59,78.58,217.9a14,14,0,0,1-19.8,0L38.09,197.21a14,14,0,0,1,0-19.8L177.41,38.1a14,14,0,0,1,19.8,0L217.9,58.79A14,14,0,0,1,217.9,78.59ZM167.51,112,144,88.49,46.58,185.9a2,2,0,0,0,0,2.83l20.69,20.68a2,2,0,0,0,2.82,0h0Zm41.9-44.73L188.73,46.59a2,2,0,0,0-2.83,0L152.48,80,176,103.52,209.41,70.1A2,2,0,0,0,209.41,67.27Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M48,64a8,8,0,0,1,8-8H72V40a8,8,0,0,1,16,0V56h16a8,8,0,0,1,0,16H88V88a8,8,0,0,1-16,0V72H56A8,8,0,0,1,48,64ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16Zm56-48H224V128a8,8,0,0,0-16,0v16H192a8,8,0,0,0,0,16h16v16a8,8,0,0,0,16,0V160h16a8,8,0,0,0,0-16ZM219.31,80,80,219.31a16,16,0,0,1-22.62,0L36.68,198.63a16,16,0,0,1,0-22.63L176,36.69a16,16,0,0,1,22.63,0l20.68,20.68A16,16,0,0,1,219.31,80Zm-54.63,32L144,91.31l-96,96L68.68,208ZM208,68.69,187.31,48l-32,32L176,100.69Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M244,152a4,4,0,0,1-4,4H220v20a4,4,0,0,1-8,0V156H192a4,4,0,0,1,0-8h20V128a4,4,0,0,1,8,0v20h20A4,4,0,0,1,244,152ZM56,68H76V88a4,4,0,0,0,8,0V68h20a4,4,0,0,0,0-8H84V40a4,4,0,0,0-8,0V60H56a4,4,0,0,0,0,8ZM184,196H172V184a4,4,0,0,0-8,0v12H152a4,4,0,0,0,0,8h12v12a4,4,0,0,0,8,0V204h12a4,4,0,0,0,0-8ZM216.48,77.17,77.17,216.49a12,12,0,0,1-17,0L39.51,195.8a12,12,0,0,1,0-17L178.83,39.51a12,12,0,0,1,17,0L216.48,60.2A12,12,0,0,1,216.48,77.17ZM170.34,112,144,85.66,45.17,184.49a4,4,0,0,0,0,5.65l20.68,20.69a4,4,0,0,0,5.66,0Zm40.49-46.14L190.14,45.17a4,4,0,0,0-5.66,0L149.65,80,176,106.34l34.83-34.83A4,4,0,0,0,210.83,65.86Z"}))]]);var oA=Object.defineProperty,aA=Object.defineProperties,sA=Object.getOwnPropertyDescriptors,op=Object.getOwnPropertySymbols,iA=Object.prototype.hasOwnProperty,lA=Object.prototype.propertyIsEnumerable,ap=(e,t,n)=>t in e?oA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const sp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>aA(e,sA(t)))(((e,t)=>{for(var n in t||(t={}))iA.call(t,n)&&ap(e,n,t[n]);if(op)for(var n of op(t))lA.call(t,n)&&ap(e,n,t[n]);return e})({ref:t},e),{weights:rA}))));sp.displayName="MagicWand";const dA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),f.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]);var pA=Object.defineProperty,fA=Object.defineProperties,gA=Object.getOwnPropertyDescriptors,ip=Object.getOwnPropertySymbols,mA=Object.prototype.hasOwnProperty,hA=Object.prototype.propertyIsEnumerable,lp=(e,t,n)=>t in e?pA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const up=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>fA(e,gA(t)))(((e,t)=>{for(var n in t||(t={}))mA.call(t,n)&&lp(e,n,t[n]);if(ip)for(var n of ip(t))hA.call(t,n)&&lp(e,n,t[n]);return e})({ref:t},e),{weights:dA}))));up.displayName="MagnifyingGlass";const bA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M225.86,110.48,57.8,14.58A20,20,0,0,0,29.16,38.67l30.61,89.21L29.16,217.33A20,20,0,0,0,48,244a20.1,20.1,0,0,0,9.81-2.58l.09-.06,168-96.07a20,20,0,0,0,0-34.81ZM55.24,215.23,81,140h55a12,12,0,0,0,0-24H81.07L55.25,40.76l152.69,87.13Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M219.91,134.86,51.93,231a8,8,0,0,1-11.44-9.67l31-90.71a7.89,7.89,0,0,0,0-5.38l-31-90.47a8,8,0,0,1,11.44-9.67l168,95.85A8,8,0,0,1,219.91,134.86Z",opacity:"0.2"}),f.createElement("path",{d:"M223.87,114l-168-95.89A16,16,0,0,0,32.93,37.32l31,90.47a.42.42,0,0,0,0,.1.3.3,0,0,0,0,.1l-31,90.67A16,16,0,0,0,48,240a16.14,16.14,0,0,0,7.92-2.1l167.91-96.05a16,16,0,0,0,.05-27.89ZM48,224l0-.09L78.14,136H136a8,8,0,0,0,0-16H78.22L48.06,32.12,48,32l168,95.83Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M232,127.89a16,16,0,0,1-8.18,14L55.91,237.9A16.14,16.14,0,0,1,48,240a16,16,0,0,1-15.05-21.34L60.3,138.71A4,4,0,0,1,64.09,136H136a8,8,0,0,0,8-8.53,8.19,8.19,0,0,0-8.26-7.47H64.16a4,4,0,0,1-3.79-2.7l-27.44-80A16,16,0,0,1,55.85,18.07l168,95.89A16,16,0,0,1,232,127.89Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222.88,115.69l-168-95.88a14,14,0,0,0-20,16.85l31,90.48,0,.07a2.11,2.11,0,0,1,0,1.42l-31,90.64A14,14,0,0,0,48,238a14.11,14.11,0,0,0,6.92-1.83L222.84,140.1a14,14,0,0,0,0-24.41Zm-5.95,14L49,225.73a1.87,1.87,0,0,1-2.27-.22,1.92,1.92,0,0,1-.56-2.28L76.7,134H136a6,6,0,0,0,0-12H76.78L46.14,32.7A2,2,0,0,1,49,30.25l168,95.89a1.93,1.93,0,0,1,1,1.74A2,2,0,0,1,216.93,129.66Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M223.87,114l-168-95.89A16,16,0,0,0,32.93,37.32l31,90.47a.42.42,0,0,0,0,.1.3.3,0,0,0,0,.1l-31,90.67A16,16,0,0,0,48,240a16.14,16.14,0,0,0,7.92-2.1l167.91-96.05a16,16,0,0,0,.05-27.89ZM48,224l0-.09L78.14,136H136a8,8,0,0,0,0-16H78.22L48.06,32.12,48,32l168,95.83Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M221.89,117.43l-168-95.88A12,12,0,0,0,36.7,36l31.05,90.48v.05a4.09,4.09,0,0,1,0,2.74L36.72,220A12,12,0,0,0,48,236a12.13,12.13,0,0,0,5.93-1.57l167.94-96.08a12,12,0,0,0,0-20.92Zm-4,14L50,227.47a4,4,0,0,1-5.7-4.88l31-90.59H136a4,4,0,0,0,0-8H75.35a.65.65,0,0,1,0-.13L44.25,33.37A4,4,0,0,1,50,28.52l168,95.87a4,4,0,0,1,0,7Z"}))]]);var _A=Object.defineProperty,vA=Object.defineProperties,DA=Object.getOwnPropertyDescriptors,cp=Object.getOwnPropertySymbols,yA=Object.prototype.hasOwnProperty,TA=Object.prototype.propertyIsEnumerable,dp=(e,t,n)=>t in e?_A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const pp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>vA(e,DA(t)))(((e,t)=>{for(var n in t||(t={}))yA.call(t,n)&&dp(e,n,t[n]);if(cp)for(var n of cp(t))TA.call(t,n)&&dp(e,n,t[n]);return e})({ref:t},e),{weights:bA}))));pp.displayName="PaperPlaneRight";const SA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),f.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z"}))]]);var wA=Object.defineProperty,xA=Object.defineProperties,RA=Object.getOwnPropertyDescriptors,fp=Object.getOwnPropertySymbols,LA=Object.prototype.hasOwnProperty,OA=Object.prototype.propertyIsEnumerable,gp=(e,t,n)=>t in e?wA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const mp=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>xA(e,RA(t)))(((e,t)=>{for(var n in t||(t={}))LA.call(t,n)&&gp(e,n,t[n]);if(fp)for(var n of fp(t))OA.call(t,n)&&gp(e,n,t[n]);return e})({ref:t},e),{weights:SA}))));mp.displayName="Plus";const MA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]]);var FA=Object.defineProperty,BA=Object.defineProperties,PA=Object.getOwnPropertyDescriptors,hp=Object.getOwnPropertySymbols,UA=Object.prototype.hasOwnProperty,qA=Object.prototype.propertyIsEnumerable,Ep=(e,t,n)=>t in e?FA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const ru=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>BA(e,PA(t)))(((e,t)=>{for(var n in t||(t={}))UA.call(t,n)&&Ep(e,n,t[n]);if(hp)for(var n of hp(t))qA.call(t,n)&&Ep(e,n,t[n]);return e})({ref:t},e),{weights:MA}))));ru.displayName="Warning";const zA=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),f.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]);var GA=Object.defineProperty,$A=Object.defineProperties,ZA=Object.getOwnPropertyDescriptors,Ap=Object.getOwnPropertySymbols,jA=Object.prototype.hasOwnProperty,WA=Object.prototype.propertyIsEnumerable,bp=(e,t,n)=>t in e?GA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const _p=Z.forwardRef(((e,t)=>f.createElement(Ue,((e,t)=>$A(e,ZA(t)))(((e,t)=>{for(var n in t||(t={}))jA.call(t,n)&&bp(e,n,t[n]);if(Ap)for(var n of Ap(t))WA.call(t,n)&&bp(e,n,t[n]);return e})({ref:t},e),{weights:zA}))));_p.displayName="X";const ou={plus:mp,chatBubble:q2,support:rp,search2:B2,search:up,magic:sp};function XA({settings:e,isOpen:t,toggleOpen:n}){if(t)return null;const r=ou.hasOwnProperty(null==e?void 0:e.chatIcon)?ou[e.chatIcon]:ou.plus;return w.jsx("button",{onClick:n,className:`flex items-center justify-center p-4 rounded-full bg-[${e.buttonColor}] text-white text-2xl`,"aria-label":"Toggle Menu",children:w.jsx(r,{className:"text-white"})})}const ko="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.898438'%20y='0.5'%20width='48'%20height='48'%20rx='24'%20fill='%23222628'%20fill-opacity='0.8'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.0173%2014.2937C10.4387%2014.2937%209.14844%2015.584%209.14844%2017.1626V31.8372C9.14844%2033.4156%2010.4365%2034.7061%2012.0173%2034.7061H17.5428C18.4316%2034.7061%2019.2557%2034.3035%2019.8034%2033.6063L19.8041%2033.6054L32.4126%2017.4869H37.4552V31.509H32.4204L29.8951%2027.9721L29.8867%2027.9615C29.4483%2027.4042%2028.602%2027.4042%2028.1635%2027.9615L27.52%2028.7815L27.5178%2028.7843C27.2188%2029.1751%2027.2113%2029.7217%2027.512%2030.1178L29.985%2033.5936L29.9935%2033.6044C30.5415%2034.302%2031.3696%2034.7042%2032.2541%2034.7042H37.7795C39.3643%2034.7042%2040.6484%2033.4175%2040.6484%2031.8353V17.1626C40.6484%2015.5827%2039.3646%2014.2937%2037.7795%2014.2937H32.2541C31.3673%2014.2937%2030.5407%2014.6964%2029.9928%2015.3964L17.3858%2031.511H12.3417V17.4889H17.3757L20.133%2021.2573L20.1386%2021.2645C20.5782%2021.8273%2021.4253%2021.8239%2021.8647%2021.2666L21.8661%2021.2648L22.505%2020.4477L22.5069%2020.4453C22.8064%2020.0538%2022.8139%2019.5046%2022.5076%2019.1075L19.8102%2015.4041L19.804%2015.3963C19.2562%2014.6965%2018.4318%2014.2937%2017.5428%2014.2937H12.0173Z'%20fill='white'/%3e%3cpath%20d='M19.8034%2033.6063L20.0392%2033.7915L20.0394%2033.7912L19.8034%2033.6063ZM19.8041%2033.6054L20.0401%2033.7903L20.0403%2033.7901L19.8041%2033.6054ZM32.4126%2017.4869V17.1871H32.2665L32.1764%2017.3022L32.4126%2017.4869ZM37.4552%2017.4869H37.755V17.1871H37.4552V17.4869ZM37.4552%2031.509V31.8089H37.755V31.509H37.4552ZM32.4204%2031.509L32.1763%2031.6833L32.266%2031.8089H32.4204V31.509ZM29.8951%2027.9721L30.1394%2027.7977L30.1307%2027.7867L29.8951%2027.9721ZM29.8867%2027.9615L29.6511%2028.1469L29.6511%2028.1469L29.8867%2027.9615ZM28.1635%2027.9615L27.9279%2027.7761L27.9277%2027.7764L28.1635%2027.9615ZM27.52%2028.7815L27.2841%2028.5964L27.2819%2028.5993L27.52%2028.7815ZM27.5178%2028.7843L27.7559%2028.9665L27.7559%2028.9665L27.5178%2028.7843ZM27.512%2030.1178L27.7564%2029.9439L27.7508%2029.9365L27.512%2030.1178ZM29.985%2033.5936L29.7407%2033.7674L29.7448%2033.7732L29.7492%2033.7788L29.985%2033.5936ZM29.9935%2033.6044L30.2293%2033.4191L30.2293%2033.4191L29.9935%2033.6044ZM29.9928%2015.3964L29.7567%2015.2116L29.7566%2015.2116L29.9928%2015.3964ZM17.3858%2031.511V31.8108H17.5319L17.6219%2031.6957L17.3858%2031.511ZM12.3417%2031.511H12.0418V31.8108H12.3417V31.511ZM12.3417%2017.4889V17.189H12.0418V17.4889H12.3417ZM17.3757%2017.4889L17.6177%2017.3118L17.5278%2017.189H17.3757V17.4889ZM20.133%2021.2573L19.8909%2021.4345L19.8967%2021.4419L20.133%2021.2573ZM20.1386%2021.2645L19.9023%2021.4491V21.4491L20.1386%2021.2645ZM21.8647%2021.2666L22.1001%2021.4522L22.1005%2021.4517L21.8647%2021.2666ZM21.8661%2021.2648L22.1019%2021.45L22.1023%2021.4495L21.8661%2021.2648ZM22.505%2020.4477L22.7412%2020.6324L22.7431%2020.63L22.505%2020.4477ZM22.5069%2020.4453L22.7449%2020.6276L22.745%2020.6275L22.5069%2020.4453ZM22.5076%2019.1075L22.2651%2019.2841L22.2702%2019.2907L22.5076%2019.1075ZM19.8102%2015.4041L20.0527%2015.2275L20.0463%2015.2193L19.8102%2015.4041ZM19.804%2015.3963L19.5679%2015.5811L19.5679%2015.5811L19.804%2015.3963ZM9.44828%2017.1626C9.44828%2015.7496%2010.6043%2014.5935%2012.0173%2014.5935V13.9939C10.2731%2013.9939%208.8486%2015.4184%208.8486%2017.1626H9.44828ZM9.44828%2031.8372V17.1626H8.8486V31.8372H9.44828ZM12.0173%2034.4063C10.6022%2034.4063%209.44828%2033.2501%209.44828%2031.8372H8.8486C8.8486%2033.581%2010.2707%2035.006%2012.0173%2035.006V34.4063ZM17.5428%2034.4063H12.0173V35.006H17.5428V34.4063ZM19.5676%2033.4211C19.0766%2034.0462%2018.3393%2034.4063%2017.5428%2034.4063V35.006C18.524%2035.006%2019.4349%2034.5608%2020.0392%2033.7915L19.5676%2033.4211ZM19.5681%2033.4205L19.5674%2033.4214L20.0394%2033.7912L20.0401%2033.7903L19.5681%2033.4205ZM32.1764%2017.3022L19.5679%2033.4206L20.0403%2033.7901L32.6488%2017.6717L32.1764%2017.3022ZM37.4552%2017.1871H32.4126V17.7868H37.4552V17.1871ZM37.755%2031.509V17.4869H37.1553V31.509H37.755ZM32.4204%2031.8089H37.4552V31.2092H32.4204V31.8089ZM29.651%2028.1464L32.1763%2031.6833L32.6644%2031.3348L30.1391%2027.7979L29.651%2028.1464ZM29.6511%2028.1469L29.6594%2028.1575L30.1307%2027.7867L30.1224%2027.7761L29.6511%2028.1469ZM28.3992%2028.1469C28.7176%2027.7422%2029.3327%2027.7422%2029.6511%2028.1469L30.1224%2027.7761C29.5639%2027.0662%2028.4864%2027.0662%2027.9279%2027.7761L28.3992%2028.1469ZM27.7558%2028.9666L28.3994%2028.1466L27.9277%2027.7764L27.2841%2028.5964L27.7558%2028.9666ZM27.7559%2028.9665L27.7581%2028.9637L27.2819%2028.5993L27.2797%2028.6021L27.7559%2028.9665ZM27.7508%2029.9365C27.5333%2029.65%2027.5374%2029.2521%2027.7559%2028.9665L27.2797%2028.6021C26.9002%2029.098%2026.8893%2029.7935%2027.2732%2030.2991L27.7508%2029.9365ZM30.2293%2033.4197L27.7563%2029.944L27.2677%2030.2916L29.7407%2033.7674L30.2293%2033.4197ZM30.2293%2033.4191L30.2208%2033.4083L29.7492%2033.7788L29.7577%2033.7896L30.2293%2033.4191ZM32.2541%2034.4044C31.4617%2034.4044%2030.7205%2034.0445%2030.2293%2033.4191L29.7577%2033.7896C30.3625%2034.5595%2031.2775%2035.0041%2032.2541%2035.0041V34.4044ZM37.7795%2034.4044H32.2541V35.0041H37.7795V34.4044ZM40.3486%2031.8353C40.3486%2033.2521%2039.1985%2034.4044%2037.7795%2034.4044V35.0041C39.5301%2035.0041%2040.9483%2033.5829%2040.9483%2031.8353H40.3486ZM40.3486%2017.1626V31.8353H40.9483V17.1626H40.3486ZM37.7795%2014.5935C39.1987%2014.5935%2040.3486%2015.7479%2040.3486%2017.1626H40.9483C40.9483%2015.4174%2039.5305%2013.9939%2037.7795%2013.9939V14.5935ZM32.2541%2014.5935H37.7795V13.9939H32.2541V14.5935ZM30.2289%2015.5812C30.72%2014.9537%2031.4596%2014.5935%2032.2541%2014.5935V13.9939C31.2749%2013.9939%2030.3613%2014.4391%2029.7567%2015.2116L30.2289%2015.5812ZM17.6219%2031.6957L30.2289%2015.5811L29.7566%2015.2116L17.1496%2031.3262L17.6219%2031.6957ZM12.3417%2031.8108H17.3858V31.2111H12.3417V31.8108ZM12.0418%2017.4889V31.511H12.6415V17.4889H12.0418ZM17.3757%2017.189H12.3417V17.7887H17.3757V17.189ZM20.375%2021.0803L17.6177%2017.3118L17.1337%2017.6659L19.891%2021.4344L20.375%2021.0803ZM20.3749%2021.08L20.3693%2021.0728L19.8967%2021.4419L19.9023%2021.4491L20.3749%2021.08ZM21.6292%2021.0809C21.3091%2021.4869%2020.6937%2021.488%2020.3749%2021.08L19.9023%2021.4491C20.4627%2022.1665%2021.5415%2022.1608%2022.1001%2021.4522L21.6292%2021.0809ZM21.6302%2021.0796L21.6288%2021.0814L22.1005%2021.4517L22.1019%2021.45L21.6302%2021.0796ZM22.2688%2020.263L21.6299%2021.0801L22.1023%2021.4495L22.7412%2020.6324L22.2688%2020.263ZM22.2688%2020.263L22.2669%2020.2654L22.7431%2020.63L22.7449%2020.6276L22.2688%2020.263ZM22.2702%2019.2907C22.4916%2019.5777%2022.4877%2019.977%2022.2687%2020.2631L22.745%2020.6275C23.1252%2020.1307%2023.1363%2019.4315%2022.7449%2018.9243L22.2702%2019.2907ZM19.5678%2015.5807L22.2652%2019.284L22.7499%2018.931L20.0525%2015.2276L19.5678%2015.5807ZM19.5679%2015.5811L19.5741%2015.589L20.0463%2015.2193L20.0401%2015.2114L19.5679%2015.5811ZM17.5428%2014.5935C18.3394%2014.5935%2019.0768%2014.9537%2019.5679%2015.5811L20.0401%2015.2114C19.4357%2014.4393%2018.5243%2013.9939%2017.5428%2013.9939V14.5935ZM12.0173%2014.5935H17.5428V13.9939H12.0173V14.5935Z'%20fill='white'/%3e%3c/svg%3e";function JA(e){let t,n,r,o=!1;return function(s){void 0===t?(t=s,n=0,r=-1):t=function(e,t){const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(t,s);const i=t.length;let l=0;for(;n{const m=Object.assign({},r);let A;function b(){A.abort(),document.hidden||N()}m.accept||(m.accept=au),l||document.addEventListener("visibilitychange",b);let C=1e3,h=0;function g(){document.removeEventListener("visibilitychange",b),window.clearTimeout(h),A.abort()}null==n||n.addEventListener("abort",(()=>{g(),p()}));const E=u??window.fetch,v=o??ab;async function N(){var _;A=new AbortController;try{const S=await E(e,Object.assign(Object.assign({},c),{headers:m,signal:A.signal}));await v(S),await async function(e,t){const n=e.getReader();let r;for(;!(r=await n.read()).done;)t(r.value)}(S.body,JA(function(e,t,n){let r={data:"",event:"",id:"",retry:void 0};const o=new TextDecoder;return function(s,i){if(0===s.length)null==n||n(r),r={data:"",event:"",id:"",retry:void 0};else if(i>0){const l=o.decode(s.subarray(0,i)),u=i+(32===s[i+1]?2:1),c=o.decode(s.subarray(u));switch(l){case"data":r.data=r.data?r.data+"\n"+c:c;break;case"event":r.event=c;break;case"id":e(r.id=c);break;case"retry":const p=parseInt(c,10);isNaN(p)||t(r.retry=p)}}}}((R=>{R?m[Dp]=R:delete m[Dp]}),(R=>{C=R}),a))),null==s||s(),g(),p()}catch(S){if(!A.signal.aborted)try{const R=null!==(_=null==i?void 0:i(S))&&void 0!==_?_:C;window.clearTimeout(h),h=window.setTimeout(N,R)}catch(R){g(),d(R)}}}N()}))}function ab(e){const t=e.headers.get("content-type");if(null==t||!t.startsWith(au))throw new Error(`Expected content-type to be ${au}, Actual: ${t}`)}const ds={embedSessionHistory:async function(e,t){const{embedId:n,baseApiUrl:r}=e;return await fetch(`${r}/${n}/${t}`).then((o=>{if(o.ok)return o.json();throw new Error("Invalid response from server")})).then((o=>o.history.map((a=>({...a,id:zn(),sender:"user"===a.role?"user":"system",textResponse:a.content,close:!1}))))).catch((o=>(console.error(o),[])))},resetEmbedChatSession:async function(e,t){const{baseApiUrl:n,embedId:r}=e;return await fetch(`${n}/${r}/${t}`,{method:"DELETE"}).then((o=>o.ok)).catch((()=>!1))},streamChat:async function(e,t,n,r){const{baseApiUrl:o,embedId:a}=t,s={prompt:(null==t?void 0:t.prompt)??null,model:(null==t?void 0:t.model)??null,temperature:(null==t?void 0:t.temperature)??null},i=new AbortController;await ob(`${o}/${a}/stream-chat`,{method:"POST",body:JSON.stringify({message:n,sessionId:e,...s}),signal:i.signal,openWhenHidden:!0,async onopen(l){if(!l.ok)throw l.status>=400?(await l.json().then((u=>{r(u)})).catch((()=>{r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:`An error occurred while streaming response. Code ${l.status}`})})),i.abort(),new Error):(r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:"An error occurred while streaming response. Unknown Error."}),i.abort(),new Error("Unknown Error"))},async onmessage(l){try{const u=JSON.parse(l.data);r(u)}catch{}},onerror(l){throw r({id:zn(),type:"abort",textResponse:null,sources:[],close:!0,error:`An error occurred while streaming response. ${l.message}`}),i.abort(),new Error}})}};function yp({sessionId:e,settings:t={},iconUrl:n=null,closeChat:r,setChatHistory:o}){const[a,s]=Z.useState(!1),i=Z.useRef(),l=Z.useRef();return Z.useEffect((()=>{function c(p){i.current&&!i.current.contains(p.target)&&l.current&&!l.current.contains(p.target)&&s(!1)}return document.addEventListener("mousedown",c),()=>{document.removeEventListener("mousedown",c)}}),[i]),w.jsxs("div",{className:"flex items-center relative rounded-t-2xl bg-black/10",id:"anything-llm-header",children:[w.jsx("div",{className:"flex justify-center items-center w-full h-[76px]",children:w.jsx("img",{style:{maxWidth:48,maxHeight:48},src:n??ko,alt:n?"Brand":"AnythingLLM Logo"})}),w.jsxs("div",{className:"absolute right-0 flex gap-x-1 items-center px-[22px]",children:[t.loaded&&w.jsx("button",{ref:l,type:"button",onClick:()=>s(!a),className:"hover:bg-gray-100 rounded-sm text-slate-800","aria-label":"Options",children:w.jsx(X2,{size:20,weight:"fill"})}),w.jsx("button",{type:"button",onClick:r,className:"hover:bg-gray-100 rounded-sm text-slate-800","aria-label":"Close",children:w.jsx(_p,{size:20,weight:"bold"})})]}),w.jsx(sb,{settings:t,showing:a,resetChat:async()=>{await ds.resetEmbedChatSession(t,e),o([]),s(!1)},sessionId:e,menuRef:i})]})}function sb({settings:e,showing:t,resetChat:n,sessionId:r,menuRef:o}){return t?w.jsxs("div",{ref:o,className:"absolute z-10 bg-white flex flex-col gap-y-1 rounded-xl shadow-lg border border-gray-300 top-[64px] right-[46px]",children:[w.jsxs("button",{onClick:n,className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(L2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Reset Chat"})]}),w.jsx(lb,{email:e.supportEmail}),w.jsx(ib,{sessionId:r})]}):null}function ib({sessionId:e}){if(!e)return null;const[t,n]=Z.useState(!1);return t?w.jsxs("div",{className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(z2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Copied!"})]}):w.jsxs("button",{onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout((()=>n(!1)),1e3)},className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(W2,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Session ID"})]})}function lb({email:e=null}){if(!e)return null;const t=`Inquiry from ${window.location.origin}`;return w.jsxs("a",{href:`mailto:${e}?Subject=${encodeURIComponent(t)}`,className:"flex items-center gap-x-2 hover:bg-gray-100 text-sm text-gray-700 py-2.5 px-4 rounded-xl",children:[w.jsx(ep,{size:24}),w.jsx("p",{className:"text-sm text-[#7A7D7E] font-bold",children:"Email Support"})]})}function ub(){const e=y2();return e?w.jsx("div",{className:"text-xs text-gray-300 w-full text-center",children:e}):null}var ps={exports:{}};/*! https://mths.be/he v1.2.0 by @mathias | MIT license */!function(e,t){!function(n){var r=t,o=e&&e.exports==r&&e,a="object"==typeof Nt&&Nt;(a.global===a||a.window===a)&&(n=a);var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,u=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,c={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},p=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},m=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,A=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,b=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,C={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},h={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},g={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},E=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],v=String.fromCharCode,_={}.hasOwnProperty,S=function(y,L){return _.call(y,L)},q=function(y,L){if(!y)return L;var H,k={};for(H in L)k[H]=S(y,H)?y[H]:L[H];return k},I=function(y,L){var k="";return y>=55296&&y<=57343||y>1114111?(L&&Y("character reference outside the permissible Unicode range"),"�"):S(g,y)?(L&&Y("disallowed character reference"),g[y]):(L&&function(y,L){for(var k=-1,H=y.length;++k65535&&(k+=v((y-=65536)>>>10&1023|55296),y=56320|1023&y),k+=v(y))},Q=function(y){return"&#x"+y.toString(16).toUpperCase()+";"},ie=function(y){return"&#"+y+";"},Y=function(y){throw Error("Parse error: "+y)},O=function(y,L){(L=q(L,O.options)).strict&&A.test(y)&&Y("forbidden code point");var H=L.encodeEverything,j=L.useNamedReferences,fe=L.allowUnsafeSymbols,ce=L.decimal?ie:Q,se=function(le){return ce(le.charCodeAt(0))};return H?(y=y.replace(i,(function(le){return j&&S(c,le)?"&"+c[le]+";":se(le)})),j&&(y=y.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),j&&(y=y.replace(u,(function(le){return"&"+c[le]+";"})))):j?(fe||(y=y.replace(p,(function(le){return"&"+c[le]+";"}))),y=(y=y.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(u,(function(le){return"&"+c[le]+";"}))):fe||(y=y.replace(p,se)),y.replace(s,(function(le){var mt=le.charCodeAt(0),Ft=le.charCodeAt(1);return ce(1024*(mt-55296)+Ft-56320+65536)})).replace(l,se)};O.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var G=function(y,L){var k=(L=q(L,G.options)).strict;return k&&m.test(y)&&Y("malformed character reference"),y.replace(b,(function(H,j,fe,ce,se,le,mt,Ft,ht){var Ge,Ct,te,Re,ke,Ce;return j?C[ke=j]:fe?(ke=fe,(Ce=ce)&&L.isAttributeValue?(k&&"="==Ce&&Y("`&` did not start a character reference"),H):(k&&Y("named character reference was not terminated by a semicolon"),h[ke]+(Ce||""))):se?(te=se,Ct=le,k&&!Ct&&Y("character reference was not terminated by a semicolon"),Ge=parseInt(te,10),I(Ge,k)):mt?(Re=mt,Ct=Ft,k&&!Ct&&Y("character reference was not terminated by a semicolon"),Ge=parseInt(Re,16),I(Ge,k)):(k&&Y("named character reference was not terminated by a semicolon"),H)}))};G.options={isAttributeValue:!1,strict:!1};var x={version:"1.2.0",encode:O,decode:G,escape:function(y){return y.replace(p,(function(L){return d[L]}))},unescape:G};if(r&&!r.nodeType)if(o)o.exports=x;else for(var T in x)S(x,T)&&(r[T]=x[T]);else n.he=x}(Nt)}(ps,ps.exports);var db=ps.exports,ae={},Tp={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"},su=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,xr={},Cp={};function fs(e,t,n){var r,o,a,s,i,l="";for("string"!=typeof t&&(n=t,t=fs.defaultChars),typeof n>"u"&&(n=!0),i=function(e){var t,n,r=Cp[e];if(r)return r;for(r=Cp[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?r.push(n):r.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&a<=57343){if(a>=55296&&a<=56319&&r+1=56320&&s<=57343)){l+=encodeURIComponent(e[r]+e[r+1]),r++;continue}l+="%EF%BF%BD"}else l+=encodeURIComponent(e[r]);return l}fs.defaultChars=";/?:@&=+$,-_.!~*'()#",fs.componentChars="-_.!~*'()";var fb=fs,Np={};function gs(e,t){var n;return"string"!=typeof t&&(t=gs.defaultChars),n=function(e){var t,n,r=Np[e];if(r)return r;for(r=Np[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),r.push(n);for(t=0;t=55296&&c<=57343?"���":String.fromCharCode(c),o+=6):240==(248&s)&&o+91114111?p+="����":(c-=65536,p+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),o+=9):p+="�";return p}))}gs.defaultChars=";/?:@&=+$,#",gs.componentChars="";var mb=gs;function ms(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var Eb=/^([a-z0-9.+-]+:)/i,Ab=/:[0-9]*$/,bb=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,vb=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Db=["'"].concat(vb),Sp=["%","/","?",";","#"].concat(Db),wp=["/","?","#"],xp=/^[+a-z0-9A-Z_-]{0,63}$/,Tb=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Rp={javascript:!0,"javascript:":!0},Lp={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};ms.prototype.parse=function(e,t){var n,r,o,a,s,i=e;if(i=i.trim(),!t&&1===e.split("#").length){var l=bb.exec(i);if(l)return this.pathname=l[1],l[2]&&(this.search=l[2]),this}var u=Eb.exec(i);if(u&&(o=(u=u[0]).toLowerCase(),this.protocol=u,i=i.substr(u.length)),(t||u||i.match(/^\/\/[^@\/]+@[^@\/]+/))&&((s="//"===i.substr(0,2))&&!(u&&Rp[u])&&(i=i.substr(2),this.slashes=!0)),!Rp[u]&&(s||u&&!Lp[u])){var p,d,c=-1;for(n=0;n127?h+="x":h+=C[g];if(!h.match(xp)){var v=b.slice(0,n),N=b.slice(n+1),_=C.match(Tb);_&&(v.push(_[1]),N.unshift(_[2])),N.length&&(i=N.join(".")+i),this.hostname=v.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var S=i.indexOf("#");-1!==S&&(this.hash=i.substr(S),i=i.slice(0,S));var R=i.indexOf("?");return-1!==R&&(this.search=i.substr(R),i=i.slice(0,R)),i&&(this.pathname=i),Lp[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},ms.prototype.parseHost=function(e){var t=Ab.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var Nb=function(e,t){if(e&&e instanceof ms)return e;var n=new ms;return n.parse(e,t),n};xr.encode=fb,xr.decode=mb,xr.format=function(t){var n="";return n+=t.protocol||"",n+=t.slashes?"//":"",n+=t.auth?t.auth+"@":"",t.hostname&&-1!==t.hostname.indexOf(":")?n+="["+t.hostname+"]":n+=t.hostname||"",n+=t.port?":"+t.port:"",n+=t.pathname||"",n+=t.search||"",n+=t.hash||""},xr.parse=Nb;var iu,Op,lu,Ip,uu,Fp,cu,Bp,Up,Gn={};function kp(){return Op||(Op=1,iu=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),iu}function Mp(){return Ip||(Ip=1,lu=/[\0-\x1F\x7F-\x9F]/),lu}function Pp(){return Bp||(Bp=1,cu=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),cu}function wb(){return Up||(Up=1,Gn.Any=kp(),Gn.Cc=Mp(),Gn.Cf=(Fp||(Fp=1,uu=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/),uu),Gn.P=su,Gn.Z=Pp()),Gn}!function(e){var r=Object.prototype.hasOwnProperty;function o(O,G){return r.call(O,G)}function i(O){return!(O>=55296&&O<=57343||O>=64976&&O<=65007||65535==(65535&O)||65534==(65535&O)||O>=0&&O<=8||11===O||O>=14&&O<=31||O>=127&&O<=159||O>1114111)}function l(O){if(O>65535){var G=55296+((O-=65536)>>10),P=56320+(1023&O);return String.fromCharCode(G,P)}return String.fromCharCode(O)}var u=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,p=new RegExp(u.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),d=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i,m=Tp;var h=/[&<>"]/,g=/[&<>"]/g,E={"&":"&","<":"<",">":">",'"':"""};function v(O){return E[O]}var _=/[.?*+^$[\]\\(){}|-]/g;var I=su;e.lib={},e.lib.mdurl=xr,e.lib.ucmicro=wb(),e.assign=function(O){return Array.prototype.slice.call(arguments,1).forEach((function(P){if(P){if("object"!=typeof P)throw new TypeError(P+"must be object");Object.keys(P).forEach((function(x){O[x]=P[x]}))}})),O},e.isString=function(O){return"[object String]"===function(O){return Object.prototype.toString.call(O)}(O)},e.has=o,e.unescapeMd=function(O){return O.indexOf("\\")<0?O:O.replace(u,"$1")},e.unescapeAll=function(O){return O.indexOf("\\")<0&&O.indexOf("&")<0?O:O.replace(p,(function(G,P,x){return P||function(O,G){var P;return o(m,G)?m[G]:35===G.charCodeAt(0)&&d.test(G)&&i(P="x"===G[1].toLowerCase()?parseInt(G.slice(2),16):parseInt(G.slice(1),10))?l(P):O}(G,x)}))},e.isValidEntityCode=i,e.fromCodePoint=l,e.escapeHtml=function(O){return h.test(O)?O.replace(g,v):O},e.arrayReplaceAt=function(O,G,P){return[].concat(O.slice(0,G),P,O.slice(G+1))},e.isSpace=function(O){switch(O){case 9:case 32:return!0}return!1},e.isWhiteSpace=function(O){if(O>=8192&&O<=8202)return!0;switch(O){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},e.isMdAsciiPunct=function(O){switch(O){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},e.isPunctChar=function(O){return I.test(O)},e.escapeRE=function(O){return O.replace(_,"\\$&")},e.normalizeReference=function(O){return O=O.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(O=O.replace(/ẞ/g,"ß")),O.toLowerCase().toUpperCase()}}(ae);var hs={},qp=ae.unescapeAll,Lb=ae.unescapeAll;hs.parseLinkLabel=function(t,n,r){var o,a,s,i,l=-1,u=t.posMax,c=t.pos;for(t.pos=n+1,o=1;t.pos32)return i;if(41===o){if(0===a)break;a--}s++}return n===s||0!==a||(i.str=qp(t.slice(n,s)),i.pos=s,i.ok=!0),i},hs.parseLinkTitle=function(t,n,r){var o,a,s=0,i=n,l={ok:!1,pos:0,lines:0,str:""};if(i>=r||34!==(a=t.charCodeAt(i))&&39!==a&&40!==a)return l;for(i++,40===a&&(a=41);i"+$n(a.content)+""},zt.code_block=function(e,t,n,r,o){var a=e[t];return""+$n(e[t].content)+"\n"},zt.fence=function(e,t,n,r,o){var u,c,p,d,m,a=e[t],s=a.info?Ib(a.info).trim():"",i="",l="";return s&&(i=(p=s.split(/(\s+)/g))[0],l=p.slice(2).join("")),0===(u=n.highlight&&n.highlight(a.content,i,l)||$n(a.content)).indexOf(""+u+"\n"):"
"+u+"
\n"},zt.image=function(e,t,n,r,o){var a=e[t];return a.attrs[a.attrIndex("alt")][1]=o.renderInlineAsText(a.children,n,r),o.renderToken(e,t,n)},zt.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},zt.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},zt.text=function(e,t){return $n(e[t].content)},zt.html_block=function(e,t){return e[t].content},zt.html_inline=function(e,t){return e[t].content},Rr.prototype.renderAttrs=function(t){var n,r,o;if(!t.attrs)return"";for(o="",n=0,r=t.attrs.length;n\n":">")},Rr.prototype.renderInline=function(e,t,n){for(var r,o="",a=this.rules,s=0,i=e.length;s\s]/i.test(e)}function zb(e){return/^<\/a\s*>/i.test(e)}var Hp=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,$b=/\((c|tm|r)\)/i,Zb=/\((c|tm|r)\)/gi,jb={c:"©",r:"®",tm:"™"};function Wb(e,t){return jb[t.toLowerCase()]}function Yb(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"===(n=e[t]).type&&!r&&(n.content=n.content.replace(Zb,Wb)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function Kb(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"===(n=e[t]).type&&!r&&Hp.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}var Vp=ae.isWhiteSpace,zp=ae.isPunctChar,Gp=ae.isMdAsciiPunct,Qb=/['"]/,$p=/['"]/g;function Es(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function Jb(e,t){var n,r,o,a,s,i,l,u,c,p,d,m,A,b,C,h,g,E,v,N,_;for(v=[],n=0;n=0&&!(v[g].level<=l);g--);if(v.length=g+1,"text"===r.type){s=0,i=(o=r.content).length;e:for(;s=0)c=o.charCodeAt(a.index-1);else for(g=n-1;g>=0&&"softbreak"!==e[g].type&&"hardbreak"!==e[g].type;g--)if(e[g].content){c=e[g].content.charCodeAt(e[g].content.length-1);break}if(p=32,s=48&&c<=57&&(h=C=!1),C&&h&&(C=d,h=m),C||h){if(h)for(g=v.length-1;g>=0&&(u=v[g],!(v[g].level=0&&(r=this.attrs[n][1]),r},Lr.prototype.attrJoin=function(t,n){var r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};var pu=Lr,n_=pu;function jp(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}jp.prototype.Token=n_;var r_=jp,o_=du,fu=[["normalize",function(t){var n;n=(n=t.src.replace(Fb,"\n")).replace(Bb,"�"),t.src=n}],["block",function(t){var n;t.inlineMode?((n=new t.Token("inline","",0)).content=t.src,n.map=[0,1],n.children=[],t.tokens.push(n)):t.md.block.parse(t.src,t.md,t.env,t.tokens)}],["inline",function(t){var r,o,a,n=t.tokens;for(o=0,a=n.length;o=0;n--)if("link_close"!==(i=a[n]).type){if("html_inline"===i.type&&(Vb(i.content)&&A>0&&A--,zb(i.content)&&A++),!(A>0)&&"text"===i.type&&t.md.linkify.test(i.content)){for(c=i.content,E=t.md.linkify.match(c),l=[],m=i.level,d=0,E.length>0&&0===E[0].index&&n>0&&"text_special"===a[n-1].type&&(E=E.slice(1)),u=0;ud&&((s=new t.Token("text","",0)).content=c.slice(d,p),s.level=m,l.push(s)),(s=new t.Token("link_open","a",1)).attrs=[["href",C]],s.level=m++,s.markup="linkify",s.info="auto",l.push(s),(s=new t.Token("text","",0)).content=h,s.level=m,l.push(s),(s=new t.Token("link_close","a",-1)).level=--m,s.markup="linkify",s.info="auto",l.push(s),d=E[u].lastIndex);d=0;n--)"inline"===t.tokens[n].type&&($b.test(t.tokens[n].content)&&Yb(t.tokens[n].children),Hp.test(t.tokens[n].content)&&Kb(t.tokens[n].children))}],["smartquotes",function(t){var n;if(t.md.options.typographer)for(n=t.tokens.length-1;n>=0;n--)"inline"!==t.tokens[n].type||!Qb.test(t.tokens[n].content)||Jb(t.tokens[n].children,t)}],["text_join",function(t){var n,r,o,a,s,i,l=t.tokens;for(n=0,r=l.length;n=a||((n=e.src.charCodeAt(o++))<48||n>57))return-1;for(;;){if(o>=a)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-r>=10)return-1}return o`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Jp="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",w_=new RegExp("^(?:"+Qp+"|"+Jp+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),x_=new RegExp("^(?:"+Qp+"|"+Jp+")");bs.HTML_TAG_RE=w_,bs.HTML_OPEN_CLOSE_TAG_RE=x_;var R_=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],L_=bs.HTML_OPEN_CLOSE_TAG_RE,Or=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(L_.source+"\\s*$"),/^$/,!1]],ef=ae.isSpace,tf=pu,_s=ae.isSpace;function Gt(e,t,n,r){var o,a,s,i,l,u,c,p;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",p=!1,s=i=u=c=0,l=(a=this.src).length;i0&&this.level++,this.tokens.push(r),r},Gt.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]},Gt.prototype.skipEmptyLines=function(t){for(var n=this.lineMax;tn;)if(!_s(this.src.charCodeAt(--t)))return t+1;return t},Gt.prototype.skipChars=function(t,n){for(var r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t},Gt.prototype.getLines=function(t,n,r,o){var a,s,i,l,u,c,p,d=t;if(t>=n)return"";for(c=new Array(n-t),a=0;dr?new Array(s-r+1).join(" ")+this.src.slice(l,u):this.src.slice(l,u)}return c.join("")},Gt.prototype.Token=tf;var F_=Gt,B_=du,vs=[["table",function(t,n,r,o){var a,s,i,l,u,c,p,d,m,A,b,C,h,g,E,v,N,_;if(n+2>r||(c=n+1,t.sCount[c]=4||(i=t.bMarks[c]+t.tShift[c])>=t.eMarks[c]||124!==(N=t.src.charCodeAt(i++))&&45!==N&&58!==N||i>=t.eMarks[c]||124!==(_=t.src.charCodeAt(i++))&&45!==_&&58!==_&&!mu(_)||45===N&&mu(_))return!1;for(;i=4||((p=Wp(s)).length&&""===p[0]&&p.shift(),p.length&&""===p[p.length-1]&&p.pop(),0===(d=p.length)||d!==A.length))return!1;if(o)return!0;for(g=t.parentType,t.parentType="table",v=t.md.block.ruler.getRules("blockquote"),(m=t.push("table_open","table",1)).map=C=[n,0],(m=t.push("thead_open","thead",1)).map=[n,n+1],(m=t.push("tr_open","tr",1)).map=[n,n+1],l=0;l=4)break;for((p=Wp(s)).length&&""===p[0]&&p.shift(),p.length&&""===p[p.length-1]&&p.pop(),c===n+2&&((m=t.push("tbody_open","tbody",1)).map=h=[n+2,0]),(m=t.push("tr_open","tr",1)).map=[c,c+1],l=0;l=4))break;a=++o}return t.line=a,(s=t.push("code_block","code",0)).content=t.getLines(n,a,4+t.blkIndent,!1)+"\n",s.map=[n,t.line],!0}],["fence",function(t,n,r,o){var a,s,i,l,u,c,p,d=!1,m=t.bMarks[n]+t.tShift[n],A=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||m+3>A||126!==(a=t.src.charCodeAt(m))&&96!==a||(u=m,(s=(m=t.skipChars(m,a))-u)<3)||(p=t.src.slice(u,m),i=t.src.slice(m,A),96===a&&i.indexOf(String.fromCharCode(a))>=0))return!1;if(o)return!0;for(l=n;!(++l>=r||(m=u=t.bMarks[l]+t.tShift[l],A=t.eMarks[l],m=4||(m=t.skipChars(m,a),m-u=4||62!==t.src.charCodeAt(I))return!1;if(o)return!0;for(A=[],b=[],g=[],E=[],_=t.md.block.ruler.getRules("blockquote"),h=t.parentType,t.parentType="blockquote",d=n;d=(Q=t.eMarks[d])));d++)if(62!==t.src.charCodeAt(I++)||R){if(c)break;for(N=!1,i=0,u=_.length;i=Q,b.push(t.bsCount[d]),t.bsCount[d]=t.sCount[d]+1+(v?1:0),g.push(t.sCount[d]),t.sCount[d]=m-l,E.push(t.tShift[d]),t.tShift[d]=I-t.bMarks[d]}for(C=t.blkIndent,t.blkIndent=0,(S=t.push("blockquote_open","blockquote",1)).markup=">",S.map=p=[n,0],t.md.block.tokenize(t,n,d),(S=t.push("blockquote_close","blockquote",-1)).markup=">",t.lineMax=q,t.parentType=h,p[1]=t.line,i=0;i=4||42!==(a=t.src.charCodeAt(u++))&&45!==a&&95!==a)return!1;for(s=1;u=4||t.listIndent>=0&&t.sCount[P]-t.listIndent>=4&&t.sCount[P]=t.blkIndent&&(x=!0),(I=Xp(t,P))>=0){if(p=!0,ie=t.bMarks[P]+t.tShift[P],h=Number(t.src.slice(ie,I-1)),x&&1!==h)return!1}else{if(!((I=Kp(t,P))>=0))return!1;p=!1}if(x&&t.skipSpaces(I)>=t.eMarks[P])return!1;if(o)return!0;for(C=t.src.charCodeAt(I-1),b=t.tokens.length,p?(G=t.push("ordered_list_open","ol",1),1!==h&&(G.attrs=[["start",h]])):G=t.push("bullet_list_open","ul",1),G.map=A=[P,0],G.markup=String.fromCharCode(C),Q=!1,O=t.md.block.ruler.getRules("list"),N=t.parentType,t.parentType="list";P=g?1:E-c)>4&&(u=1),l=c+u,(G=t.push("list_item_open","li",1)).markup=String.fromCharCode(C),G.map=d=[P,0],p&&(G.info=t.src.slice(ie,I-1)),R=t.tight,S=t.tShift[P],_=t.sCount[P],v=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=l,t.tight=!0,t.tShift[P]=s-t.bMarks[P],t.sCount[P]=E,s>=g&&t.isEmpty(P+1)?t.line=Math.min(t.line+2,r):t.md.block.tokenize(t,P,r,!0),(!t.tight||Q)&&(T=!1),Q=t.line-P>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=v,t.tShift[P]=S,t.sCount[P]=_,t.tight=R,(G=t.push("list_item_close","li",-1)).markup=String.fromCharCode(C),P=t.line,d[1]=P,P>=r||t.sCount[P]=4)break;for(Y=!1,i=0,m=O.length;i=4||91!==t.src.charCodeAt(_))return!1;for(;++_3||t.sCount[R]<0)){for(g=!1,c=0,p=E.length;c"u"&&(t.env.references={}),typeof t.env.references[d]>"u"&&(t.env.references[d]={title:v,href:u}),t.parentType=A,t.line=n+N+1),!0)}],["html_block",function(t,n,r,o){var a,s,i,l,u=t.bMarks[n]+t.tShift[n],c=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||!t.md.options.html||60!==t.src.charCodeAt(u))return!1;for(l=t.src.slice(u,c),a=0;a=4||(35!==(a=t.src.charCodeAt(u))||u>=c))return!1;for(s=1,a=t.src.charCodeAt(++u);35===a&&u6||uu&&ef(t.src.charCodeAt(i-1))&&(c=i),t.line=n+1,(l=t.push("heading_open","h"+String(s),1)).markup="########".slice(0,s),l.map=[n,t.line],(l=t.push("inline","",0)).content=t.src.slice(u,c).trim(),l.map=[n,t.line],l.children=[],(l=t.push("heading_close","h"+String(s),-1)).markup="########".slice(0,s)),!0)},["paragraph","reference","blockquote"]],["lheading",function(t,n,r){var o,a,s,i,l,u,c,p,d,A,m=n+1,b=t.md.block.ruler.getRules("paragraph");if(t.sCount[n]-t.blkIndent>=4)return!1;for(A=t.parentType,t.parentType="paragraph";m3)){if(t.sCount[m]>=t.blkIndent&&((u=t.bMarks[m]+t.tShift[m])<(c=t.eMarks[m])&&((45===(d=t.src.charCodeAt(u))||61===d)&&(u=t.skipChars(u,d),(u=t.skipSpaces(u))>=c)))){p=61===d?1:2;break}if(!(t.sCount[m]<0)){for(a=!1,s=0,i=b.length;s3||t.sCount[c]<0)){for(a=!1,s=0,i=p.length;s=n||e.sCount[l]=c){e.line=n;break}for(a=e.line,o=0;o=e.line)throw new Error("block rule didn't increment state.line");break}if(!r)throw new Error("none of the block rules matched");e.tight=!u,e.isEmpty(e.line-1)&&(u=!0),(l=e.line)?@[]^_`{|}~-".split("").forEach((function(e){Eu[e.charCodeAt(0)]=1}));var ys={};function rf(e,t){var n,r,o,a,s,i=[],l=t.length;for(n=0;n=0;n--)(95===(r=t[n]).marker||42===r.marker)&&-1!==r.end&&(o=t[r.end],i=n>0&&t[n-1].end===r.end+1&&t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&t[r.end+1].token===o.token+1,s=String.fromCharCode(r.marker),(a=e.tokens[r.token]).type=i?"strong_open":"em_open",a.tag=i?"strong":"em",a.nesting=1,a.markup=i?s+s:s,a.content="",(a=e.tokens[o.token]).type=i?"strong_close":"em_close",a.tag=i?"strong":"em",a.nesting=-1,a.markup=i?s+s:s,a.content="",i&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}Ts.tokenize=function(t,n){var r,o,s=t.pos,i=t.src.charCodeAt(s);if(n||95!==i&&42!==i)return!1;for(o=t.scanDelims(t.pos,42===i),r=0;r\x00-\x20]*)$/,tv=bs.HTML_TAG_RE;var af=Tp,sv=ae.has,iv=ae.isValidEntityCode,sf=ae.fromCodePoint,lv=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,uv=/^&([a-z][a-z0-9]{1,31});/i;function lf(e){var t,n,r,o,a,s,i,l,u={},c=e.length;if(c){var p=0,d=-2,m=[];for(t=0;ta;n-=m[n]+1)if((o=e[n]).marker===r.marker&&o.open&&o.end<0&&(i=!1,(o.close||r.open)&&(o.length+r.length)%3==0&&(o.length%3!=0||r.length%3!=0)&&(i=!0),!i)){l=n>0&&!e[n-1].open?m[n-1]+1:0,m[t]=t-n+l,m[n]=l,r.open=!1,o.end=t,o.close=!1,s=-1,d=-2;break}-1!==s&&(u[r.marker][(r.open?3:0)+(r.length||0)%3]=s)}}}var _u=pu,uf=ae.isWhiteSpace,cf=ae.isPunctChar,df=ae.isMdAsciiPunct;function Io(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}Io.prototype.pushPending=function(){var e=new _u("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},Io.prototype.push=function(e,t,n){this.pending&&this.pushPending();var r=new _u(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(o),r},Io.prototype.scanDelims=function(e,t){var r,o,a,s,i,l,u,c,p,n=e,d=!0,m=!0,A=this.posMax,b=this.src.charCodeAt(e);for(r=e>0?this.src.charCodeAt(e-1):32;n0||(r=t.pos,o=t.posMax,r+3>o)||58!==t.src.charCodeAt(r)||47!==t.src.charCodeAt(r+1)||47!==t.src.charCodeAt(r+2)||(a=t.pending.match(H_),!a)||(s=a[1],i=t.md.linkify.matchAtStart(t.src.slice(r-s.length)),!i)||(l=i.url,l.length<=s.length)||(l=l.replace(/\*+$/,""),u=t.md.normalizeLink(l),!t.md.validateLink(u))||(n||(t.pending=t.pending.slice(0,-s.length),(c=t.push("link_open","a",1)).attrs=[["href",u]],c.markup="linkify",c.info="auto",(c=t.push("text","",0)).content=t.md.normalizeLinkText(l),(c=t.push("link_close","a",-1)).markup="linkify",c.info="auto"),t.pos+=l.length-s.length,0))}],["newline",function(t,n){var r,o,a,s=t.pos;if(10!==t.src.charCodeAt(s))return!1;if(r=t.pending.length-1,o=t.posMax,!n)if(r>=0&&32===t.pending.charCodeAt(r))if(r>=1&&32===t.pending.charCodeAt(r-1)){for(a=r-1;a>=1&&32===t.pending.charCodeAt(a-1);)a--;t.pending=t.pending.slice(0,a),t.push("hardbreak","br",0)}else t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0);else t.push("softbreak","br",0);for(s++;s=u)return!1;if(10===(r=t.src.charCodeAt(l))){for(n||t.push("hardbreak","br",0),l++;l=55296&&r<=56319&&l+1=56320&&o<=57343&&(s+=t.src[l+1],l++)),a="\\"+s,n||(i=t.push("text_special","",0),r<256&&0!==Eu[r]?i.content=s:i.content=a,i.markup=a,i.info="escape"),t.pos=l+1,!0}],["backticks",function(t,n){var r,o,a,s,i,l,u,c,p=t.pos;if(96!==t.src.charCodeAt(p))return!1;for(r=p,p++,o=t.posMax;p=b)return!1;if(C=l,(u=t.md.helpers.parseLinkDestination(t.src,l,t.posMax)).ok){for(d=t.md.normalizeLink(u.str),t.md.validateLink(d)?l=u.pos:d="",C=l;l=b||41!==t.src.charCodeAt(l))&&(h=!0),l++}if(h){if(typeof t.env.references>"u")return!1;if(l=0?a=t.src.slice(C,l++):l=s+1):l=s+1,a||(a=t.src.slice(i,s)),!(c=t.env.references[W_(a)]))return t.pos=A,!1;d=c.href,m=c.title}return n||(t.pos=i,t.posMax=s,t.push("link_open","a",1).attrs=r=[["href",d]],m&&r.push(["title",m]),t.linkLevel++,t.md.inline.tokenize(t),t.linkLevel--,t.push("link_close","a",-1)),t.pos=l,t.posMax=b,!0}],["image",function(t,n){var r,o,a,s,i,l,u,c,p,d,m,A,b,C="",h=t.pos,g=t.posMax;if(33!==t.src.charCodeAt(t.pos)||91!==t.src.charCodeAt(t.pos+1)||(l=t.pos+2,(i=t.md.helpers.parseLinkLabel(t,t.pos+1,!1))<0))return!1;if((u=i+1)=g)return!1;for(b=u,(p=t.md.helpers.parseLinkDestination(t.src,u,t.posMax)).ok&&(C=t.md.normalizeLink(p.str),t.md.validateLink(C)?u=p.pos:C=""),b=u;u=g||41!==t.src.charCodeAt(u))return t.pos=h,!1;u++}else{if(typeof t.env.references>"u")return!1;if(u=0?s=t.src.slice(b,u++):u=i+1):u=i+1,s||(s=t.src.slice(l,i)),!(c=t.env.references[K_(s)]))return t.pos=h,!1;C=c.href,d=c.title}return n||(a=t.src.slice(l,i),t.md.inline.parse(a,t.md,t.env,A=[]),(m=t.push("image","img",0)).attrs=r=[["src",C],["alt",""]],m.children=A,m.content=a,d&&r.push(["title",d])),t.pos=u,t.posMax=g,!0}],["autolink",function(t,n){var r,o,a,s,i,l,u=t.pos;if(60!==t.src.charCodeAt(u))return!1;for(i=t.pos,l=t.posMax;;){if(++u>=l||60===(s=t.src.charCodeAt(u)))return!1;if(62===s)break}return r=t.src.slice(i+1,u),J_.test(r)?(o=t.md.normalizeLink(r),!!t.md.validateLink(o)&&(n||((a=t.push("link_open","a",1)).attrs=[["href",o]],a.markup="autolink",a.info="auto",(a=t.push("text","",0)).content=t.md.normalizeLinkText(r),(a=t.push("link_close","a",-1)).markup="autolink",a.info="auto"),t.pos+=r.length+2,!0)):!!Q_.test(r)&&(o=t.md.normalizeLink("mailto:"+r),!!t.md.validateLink(o)&&(n||((a=t.push("link_open","a",1)).attrs=[["href",o]],a.markup="autolink",a.info="auto",(a=t.push("text","",0)).content=t.md.normalizeLinkText(r),(a=t.push("link_close","a",-1)).markup="autolink",a.info="auto"),t.pos+=r.length+2,!0))}],["html_inline",function(t,n){var r,o,a,s,i=t.pos;return!(!t.md.options.html||(a=t.posMax,60!==t.src.charCodeAt(i)||i+2>=a)||(r=t.src.charCodeAt(i+1),33!==r&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r))||(o=t.src.slice(i).match(tv),!o))&&(n||((s=t.push("html_inline","",0)).content=o[0],function(e){return/^\s]/i.test(e)}(s.content)&&t.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(s.content)&&t.linkLevel--),t.pos+=o[0].length,!0)}],["entity",function(t,n){var o,a,s,i=t.pos,l=t.posMax;if(38!==t.src.charCodeAt(i)||i+1>=l)return!1;if(35===t.src.charCodeAt(i+1)){if(a=t.src.slice(i).match(lv))return n||(o="x"===a[1][0].toLowerCase()?parseInt(a[1].slice(1),16):parseInt(a[1],10),(s=t.push("text_special","",0)).content=iv(o)?sf(o):sf(65533),s.markup=a[0],s.info="entity"),t.pos+=a[0].length,!0}else if((a=t.src.slice(i).match(uv))&&sv(af,a[1]))return n||((s=t.push("text_special","",0)).content=af[a[1]],s.markup=a[0],s.info="entity"),t.pos+=a[0].length,!0;return!1}]],Du=[["balance_pairs",function(t){var n,r=t.tokens_meta,o=t.tokens_meta.length;for(lf(t.delimiters),n=0;n0&&o++,"text"===a[n].type&&n+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;t||e.pos++,i[r]=e.pos}},Mo.prototype.tokenize=function(e){for(var t,n,r,o=this.ruler.getRules(""),a=o.length,s=e.posMax,i=e.md.options.maxNesting;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Mo.prototype.parse=function(e,t,n,r){var o,a,s,i=new this.State(e,t,n,r);for(this.tokenize(i),s=(a=this.ruler2.getRules("")).length,o=0;o=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Dv="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",yv="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Ns(e){var t=e.re=(ff||(ff=1,yu=function(e){var t={};e=e||{},t.src_Any=kp().source,t.src_Cc=Mp().source,t.src_Z=Pp().source,t.src_P=su.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var n="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+n+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}),yu)(e.__opts__),n=e.__tlds__.slice();function r(i){return i.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push(Dv),n.push(t.src_xn),t.src_tlds=n.join("|"),t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");var o=[];function a(i,l){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+l)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(i){var l=e.__schemas__[i];if(null!==l){var u={validate:null,link:null};if(e.__compiled__[i]=u,function(e){return"[object Object]"===Cs(e)}(l))return!function(e){return"[object RegExp]"===Cs(e)}(l.validate)?gf(l.validate)?u.validate=l.validate:a(i,l):u.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(l.validate),void(gf(l.normalize)?u.normalize=l.normalize:l.normalize?a(i,l):u.normalize=function(e,t){t.normalize(e)});if(function(e){return"[object String]"===Cs(e)}(l))return void o.push(i);a(i,l)}})),o.forEach((function(i){e.__compiled__[e.__schemas__[i]]&&(e.__compiled__[i].validate=e.__compiled__[e.__schemas__[i]].validate,e.__compiled__[i].normalize=e.__compiled__[e.__schemas__[i]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var s=Object.keys(e.__compiled__).filter((function(i){return i.length>0&&e.__compiled__[i]})).map(bv).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function Nv(e,t){var n=e.__index__,r=e.__last_index__,o=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=o,this.text=o,this.url=o}function Cu(e,t){var n=new Nv(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function ft(e,t){if(!(this instanceof ft))return new ft(e,t);t||function(e){return Object.keys(e||{}).reduce((function(t,n){return t||mf.hasOwnProperty(n)}),!1)}(e)&&(t=e,e={}),this.__opts__=Tu({},mf,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Tu({},vv,e),this.__compiled__={},this.__tlds__=yv,this.__tlds_replaced__=!1,this.re={},Ns(this)}ft.prototype.add=function(t,n){return this.__schemas__[t]=n,Ns(this),this},ft.prototype.set=function(t){return this.__opts__=Tu(this.__opts__,t),this},ft.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var n,r,o,a,s,i,l,u;if(this.re.schema_test.test(t))for((l=this.re.schema_search).lastIndex=0;null!==(n=l.exec(t));)if(a=this.testSchemaAt(t,n[2],l.lastIndex)){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&((u=t.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||u=0&&null!==(o=t.match(this.re.email_fuzzy))&&(s=o.index+o[1].length,i=o.index+o[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=i))),this.__index__>=0},ft.prototype.pretest=function(t){return this.re.pretest.test(t)},ft.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0},ft.prototype.match=function(t){var n=0,r=[];this.__index__>=0&&this.__text_cache__===t&&(r.push(Cu(this,n)),n=this.__last_index__);for(var o=n?t.slice(n):t;this.test(o);)r.push(Cu(this,n)),o=o.slice(this.__last_index__),n+=this.__last_index__;return r.length?r:null},ft.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;var n=this.re.schema_at_start.exec(t);if(!n)return null;var r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,Cu(this,0)):null},ft.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter((function(r,o,a){return r!==a[o-1]})).reverse(),Ns(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Ns(this),this)},ft.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),"mailto:"===t.schema&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)},ft.prototype.onCompile=function(){};var Sv=ft;const kr=2147483647,Rv=/^xn--/,Lv=/[^\0-\x7F]/,Ov=/[\x2E\u3002\uFF0E\uFF61]/g,kv={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zt=Math.floor,wu=String.fromCharCode;function Sn(e){throw new RangeError(kv[e])}function _f(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(Ov,".")).split("."),t).join(".");return r+a}function xu(e){const t=[];let n=0;const r=e.length;for(;n=55296&&o<=56319&&nString.fromCodePoint(...e),Mv=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:36},Df=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},yf=function(e,t,n){let r=0;for(e=n?Zt(e/700):e>>1,e+=Zt(e/t);e>455;r+=36)e=Zt(e/35);return Zt(r+36*e/(e+38))},Ru=function(e){const t=[],n=e.length;let r=0,o=128,a=72,s=e.lastIndexOf("-");s<0&&(s=0);for(let i=0;i=128&&Sn("not-basic"),t.push(e.charCodeAt(i));for(let i=s>0?s+1:0;i=n&&Sn("invalid-input");const d=Mv(e.charCodeAt(i++));d>=36&&Sn("invalid-input"),d>Zt((kr-r)/c)&&Sn("overflow"),r+=d*c;const m=p<=a?1:p>=a+26?26:p-a;if(dZt(kr/A)&&Sn("overflow"),c*=A}const u=t.length+1;a=yf(r-l,u,0==l),Zt(r/u)>kr-o&&Sn("overflow"),o+=Zt(r/u),r%=u,t.splice(r++,0,o)}return String.fromCodePoint(...t)},Lu=function(e){const t=[],n=(e=xu(e)).length;let r=128,o=0,a=72;for(const l of e)l<128&&t.push(wu(l));const s=t.length;let i=s;for(s&&t.push("-");i=r&&cZt((kr-o)/u)&&Sn("overflow"),o+=(l-r)*u,r=l;for(const c of e)if(ckr&&Sn("overflow"),c===r){let p=o;for(let d=36;;d+=36){const m=d<=a?1:d>=a+26?26:d-a;if(p=0))try{t.hostname=Nf.toASCII(t.hostname)}catch{}return Zn.encode(Zn.format(t))}function Xv(e){var t=Zn.parse(e,!0);if(t.hostname&&(!t.protocol||Sf.indexOf(t.protocol)>=0))try{t.hostname=Nf.toUnicode(t.hostname)}catch{}return Zn.decode(Zn.format(t),Zn.decode.defaultChars+"%")}function yt(e,t){if(!(this instanceof yt))return new yt(e,t);t||Bo.isString(e)||(t=e||{},e="default"),this.inline=new Gv,this.block=new zv,this.core=new Vv,this.renderer=new Hv,this.linkify=new $v,this.validateLink=Yv,this.normalizeLink=Kv,this.normalizeLinkText=Xv,this.utils=Bo,this.helpers=Bo.assign({},qv),this.options={},this.configure(e),t&&this.set(t)}yt.prototype.set=function(e){return Bo.assign(this.options,e),this},yt.prototype.configure=function(e){var n,t=this;if(Bo.isString(e)&&!(e=Zv[n=e]))throw new Error('Wrong `markdown-it` preset "'+n+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},yt.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(o){n=n.concat(this[o].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(o){return n.indexOf(o)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},yt.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(o){n=n.concat(this[o].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(o){return n.indexOf(o)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},yt.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},yt.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},yt.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},yt.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},yt.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const eD=jo(yt);function wf(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const n=e[t],r=typeof n;("object"===r||"function"===r)&&!Object.isFrozen(n)&&wf(n)})),e}class xf{constructor(t){void 0===t.data&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Rf(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function wn(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach((function(r){for(const o in r)n[o]=r[o]})),n}const Lf=e=>!!e.scope;class rD{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Rf(t)}openNode(t){if(!Lf(t))return;const n=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((r,o)=>`${r}${"_".repeat(o+1)}`))].join(" ")}return`${t}${e}`})(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Lf(t)&&(this.buffer+="
")}value(){return this.buffer}span(t){this.buffer+=``}}const Of=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class Ou{constructor(){this.rootNode=Of(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Of({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return"string"==typeof n?t.addText(n):n.children&&(t.openNode(n),n.children.forEach((r=>this._walk(t,r))),t.closeNode(n)),t}static _collapse(t){"string"!=typeof t&&t.children&&(t.children.every((n=>"string"==typeof n))?t.children=[t.children.join("")]:t.children.forEach((n=>{Ou._collapse(n)})))}}class oD extends Ou{constructor(t){super(),this.options=t}addText(t){""!==t&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new rD(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Po(e){return e?"string"==typeof e?e:e.source:null}function kf(e){return jn("(?=",e,")")}function aD(e){return jn("(?:",e,")*")}function sD(e){return jn("(?:",e,")?")}function jn(...e){return e.map((n=>Po(n))).join("")}function ku(...e){return"("+(function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map((r=>Po(r))).join("|")+")"}function If(e){return new RegExp(e.toString()+"|").exec("").length-1}const uD=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Iu(e,{joinWith:t}){let n=0;return e.map((r=>{n+=1;const o=n;let a=Po(r),s="";for(;a.length>0;){const i=uD.exec(a);if(!i){s+=a;break}s+=a.substring(0,i.index),a=a.substring(i.index+i[0].length),"\\"===i[0][0]&&i[1]?s+="\\"+String(Number(i[1])+o):(s+=i[0],"("===i[0]&&n++)}return s})).map((r=>`(${r})`)).join(t)}const Mf="[a-zA-Z]\\w*",Mu="[a-zA-Z_]\\w*",Ff="\\b\\d+(\\.\\d+)?",Bf="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Pf="\\b(0b[01]+)",Uo={begin:"\\\\[\\s\\S]",relevance:0},fD={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Uo]},gD={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Uo]},Ss=function(e,t,n={}){const r=wn({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const o=ku("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:jn(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},hD=Ss("//","$"),ED=Ss("/\\*","\\*/"),AD=Ss("#","$"),bD={scope:"number",begin:Ff,relevance:0},_D={scope:"number",begin:Bf,relevance:0},vD={scope:"number",begin:Pf,relevance:0},DD={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Uo,{begin:/\[/,end:/\]/,relevance:0,contains:[Uo]}]},yD={scope:"title",begin:Mf,relevance:0},TD={scope:"title",begin:Mu,relevance:0},CD={begin:"\\.\\s*"+Mu,relevance:0};var ws=Object.freeze({__proto__:null,APOS_STRING_MODE:fD,BACKSLASH_ESCAPE:Uo,BINARY_NUMBER_MODE:vD,BINARY_NUMBER_RE:Pf,COMMENT:Ss,C_BLOCK_COMMENT_MODE:ED,C_LINE_COMMENT_MODE:hD,C_NUMBER_MODE:_D,C_NUMBER_RE:Bf,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:AD,IDENT_RE:Mf,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:CD,NUMBER_MODE:bD,NUMBER_RE:Ff,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:gD,REGEXP_MODE:DD,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=jn(t,/.*\b/,e.binary,/\b.*/)),wn({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{0!==n.index&&r.ignoreMatch()}},e)},TITLE_MODE:yD,UNDERSCORE_IDENT_RE:Mu,UNDERSCORE_TITLE_MODE:TD});function ND(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function SD(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function wD(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=ND,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function xD(e,t){Array.isArray(e.illegal)&&(e.illegal=ku(...e.illegal))}function RD(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function LD(e,t){void 0===e.relevance&&(e.relevance=1)}const OD=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((r=>{delete e[r]})),e.keywords=n.keywords,e.begin=jn(n.beforeMatch,kf(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},kD=["of","and","for","in","not","or","if","then","parent","list","value"],ID="keyword";function Uf(e,t,n=ID){const r=Object.create(null);return"string"==typeof e?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach((function(a){Object.assign(r,Uf(e[a],t,a))})),r;function o(a,s){t&&(s=s.map((i=>i.toLowerCase()))),s.forEach((function(i){const l=i.split("|");r[l[0]]=[a,MD(l[0],l[1])]}))}}function MD(e,t){return t?Number(t):function(e){return kD.includes(e.toLowerCase())}(e)?0:1}const qf={},Wn=e=>{console.error(e)},Hf=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ir=(e,t)=>{qf[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),qf[`${e}/${t}`]=!0)},xs=new Error;function Vf(e,t,{key:n}){let r=0;const o=e[n],a={},s={};for(let i=1;i<=t.length;i++)s[i+r]=o[i],a[i+r]=!0,r+=If(t[i-1]);e[n]=s,e[n]._emit=a,e[n]._multi=!0}function qD(e){(function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Wn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xs;if("object"!=typeof e.beginScope||null===e.beginScope)throw Wn("beginScope must be object"),xs;Vf(e,e.begin,{key:"beginScope"}),e.begin=Iu(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Wn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xs;if("object"!=typeof e.endScope||null===e.endScope)throw Wn("endScope must be object"),xs;Vf(e,e.end,{key:"endScope"}),e.end=Iu(e.end,{joinWith:""})}}(e)}function HD(e){function t(s,i){return new RegExp(Po(s),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(i?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(i,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,i]),this.matchAt+=If(i)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const i=this.regexes.map((l=>l[1]));this.matcherRe=t(Iu(i,{joinWith:"|"}),!0),this.lastIndex=0}exec(i){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(i);if(!l)return null;const u=l.findIndex(((p,d)=>d>0&&void 0!==p)),c=this.matchIndexes[u];return l.splice(0,u),Object.assign(l,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(i){if(this.multiRegexes[i])return this.multiRegexes[i];const l=new n;return this.rules.slice(i).forEach((([u,c])=>l.addRule(u,c))),l.compile(),this.multiRegexes[i]=l,l}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(i,l){this.rules.push([i,l]),"begin"===l.type&&this.count++}exec(i){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let u=l.exec(i);if(this.resumingScanAtSamePosition()&&(!u||u.index!==this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,u=c.exec(i)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=wn(e.classNameAliases||{}),function a(s,i){const l=s;if(s.isCompiled)return l;[SD,RD,qD,OD].forEach((c=>c(s,i))),e.compilerExtensions.forEach((c=>c(s,i))),s.__beforeBegin=null,[wD,xD,LD].forEach((c=>c(s,i))),s.isCompiled=!0;let u=null;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),u=s.keywords.$pattern,delete s.keywords.$pattern),u=u||/\w+/,s.keywords&&(s.keywords=Uf(s.keywords,e.case_insensitive)),l.keywordPatternRe=t(u,!0),i&&(s.begin||(s.begin=/\B|\b/),l.beginRe=t(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=t(l.end)),l.terminatorEnd=Po(l.end)||"",s.endsWithParent&&i.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+i.terminatorEnd)),s.illegal&&(l.illegalRe=t(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(c){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return wn(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:zf(e)?wn(e,{starts:e.starts?wn(e.starts):null}):Object.isFrozen(e)?wn(e):e}("self"===c?s:c)}))),s.contains.forEach((function(c){a(c,l)})),s.starts&&a(s.starts,i),l.matcher=function(s){const i=new r;return s.contains.forEach((l=>i.addRule(l.begin,{rule:l,type:"begin"}))),s.terminatorEnd&&i.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&i.addRule(s.illegal,{type:"illegal"}),i}(l),l}(e)}function zf(e){return!!e&&(e.endsWithParent||zf(e.starts))}class GD extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Fu=Rf,Gf=wn,$f=Symbol("nomatch"),Zf=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let i={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:oD};function l(x){return i.noHighlightRe.test(x)}function c(x,T,y){let L="",k="";"object"==typeof T?(L=x,y=T.ignoreIllegals,k=T.language):(Ir("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ir("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),k=x,L=T),void 0===y&&(y=!0);const H={code:L,language:k};G("before:highlight",H);const j=H.result?H.result:p(H.language,H.code,y);return j.code=H.code,G("after:highlight",j),j}function p(x,T,y,L){const k=Object.create(null);function H(B,V){return B.keywords[V]}function j(){if(!W.keywords)return void De.addText(oe);let B=0;W.keywordPatternRe.lastIndex=0;let V=W.keywordPatternRe.exec(oe),K="";for(;V;){K+=oe.substring(B,V.index);const ne=Ce.case_insensitive?V[0].toLowerCase():V[0],ge=H(W,ne);if(ge){const[$e,zo]=ge;if(De.addText(K),K="",k[ne]=(k[ne]||0)+1,k[ne]<=7&&(Bt+=zo),$e.startsWith("_"))K+=V[0];else{const Go=Ce.classNameAliases[$e]||$e;se(V[0],Go)}}else K+=V[0];B=W.keywordPatternRe.lastIndex,V=W.keywordPatternRe.exec(oe)}K+=oe.substring(B),De.addText(K)}function ce(){null!=W.subLanguage?function(){if(""===oe)return;let B=null;if("string"==typeof W.subLanguage){if(!t[W.subLanguage])return void De.addText(oe);B=p(W.subLanguage,oe,!0,Ur[W.subLanguage]),Ur[W.subLanguage]=B._top}else B=m(oe,W.subLanguage.length?W.subLanguage:null);W.relevance>0&&(Bt+=B.relevance),De.__addSublanguage(B._emitter,B.language)}():j(),oe=""}function se(B,V){""!==B&&(De.startScope(V),De.addText(B),De.endScope())}function le(B,V){let K=1;const ne=V.length-1;for(;K<=ne;){if(!B._emit[K]){K++;continue}const ge=Ce.classNameAliases[B[K]]||B[K],$e=V[K];ge?se($e,ge):(oe=$e,j(),oe=""),K++}}function mt(B,V){return B.scope&&"string"==typeof B.scope&&De.openNode(Ce.classNameAliases[B.scope]||B.scope),B.beginScope&&(B.beginScope._wrap?(se(oe,Ce.classNameAliases[B.beginScope._wrap]||B.beginScope._wrap),oe=""):B.beginScope._multi&&(le(B.beginScope,V),oe="")),W=Object.create(B,{parent:{value:W}}),W}function Ft(B,V,K){let ne=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(B.endRe,K);if(ne){if(B["on:end"]){const ge=new xf(B);B["on:end"](V,ge),ge.isMatchIgnored&&(ne=!1)}if(ne){for(;B.endsParent&&B.parent;)B=B.parent;return B}}if(B.endsWithParent)return Ft(B.parent,V,K)}function ht(B){return 0===W.matcher.regexIndex?(oe+=B[0],1):(Hr=!0,0)}function Ct(B){const V=B[0],K=T.substring(B.index),ne=Ft(W,B,K);if(!ne)return $f;const ge=W;W.endScope&&W.endScope._wrap?(ce(),se(V,W.endScope._wrap)):W.endScope&&W.endScope._multi?(ce(),le(W.endScope,B)):ge.skip?oe+=V:(ge.returnEnd||ge.excludeEnd||(oe+=V),ce(),ge.excludeEnd&&(oe=V));do{W.scope&&De.closeNode(),!W.skip&&!W.subLanguage&&(Bt+=W.relevance),W=W.parent}while(W!==ne.parent);return ne.starts&&mt(ne.starts,B),ge.returnEnd?0:V.length}let Re={};function ke(B,V){const K=V&&V[0];if(oe+=B,null==K)return ce(),0;if("begin"===Re.type&&"end"===V.type&&Re.index===V.index&&""===K){if(oe+=T.slice(V.index,V.index+1),!o){const ne=new Error(`0 width match regex (${x})`);throw ne.languageName=x,ne.badRule=Re.rule,ne}return 1}if(Re=V,"begin"===V.type)return function(B){const V=B[0],K=B.rule,ne=new xf(K),ge=[K.__beforeBegin,K["on:begin"]];for(const $e of ge)if($e&&($e(B,ne),ne.isMatchIgnored))return ht(V);return K.skip?oe+=V:(K.excludeBegin&&(oe+=V),ce(),!K.returnBegin&&!K.excludeBegin&&(oe=V)),mt(K,B),K.returnBegin?0:V.length}(V);if("illegal"===V.type&&!y){const ne=new Error('Illegal lexeme "'+K+'" for mode "'+(W.scope||"")+'"');throw ne.mode=W,ne}if("end"===V.type){const ne=Ct(V);if(ne!==$f)return ne}if("illegal"===V.type&&""===K)return 1;if(qr>1e5&&qr>3*V.index)throw new Error("potential infinite loop, way more iterations than matches");return oe+=K,K.length}const Ce=q(x);if(!Ce)throw Wn(a.replace("{}",x)),new Error('Unknown language: "'+x+'"');const Hs=HD(Ce);let Pr="",W=L||Hs;const Ur={},De=new i.__emitter(i);!function(){const B=[];for(let V=W;V!==Ce;V=V.parent)V.scope&&B.unshift(V.scope);B.forEach((V=>De.openNode(V)))}();let oe="",Bt=0,jt=0,qr=0,Hr=!1;try{if(Ce.__emitTokens)Ce.__emitTokens(T,De);else{for(W.matcher.considerAll();;){qr++,Hr?Hr=!1:W.matcher.considerAll(),W.matcher.lastIndex=jt;const B=W.matcher.exec(T);if(!B)break;const K=ke(T.substring(jt,B.index),B);jt=B.index+K}ke(T.substring(jt))}return De.finalize(),Pr=De.toHTML(),{language:x,value:Pr,relevance:Bt,illegal:!1,_emitter:De,_top:W}}catch(B){if(B.message&&B.message.includes("Illegal"))return{language:x,value:Fu(T),illegal:!0,relevance:0,_illegalBy:{message:B.message,index:jt,context:T.slice(jt-100,jt+100),mode:B.mode,resultSoFar:Pr},_emitter:De};if(o)return{language:x,value:Fu(T),illegal:!1,relevance:0,errorRaised:B,_emitter:De,_top:W};throw B}}function m(x,T){T=T||i.languages||Object.keys(t);const y=function(x){const T={value:Fu(x),illegal:!1,relevance:0,_top:s,_emitter:new i.__emitter(i)};return T._emitter.addText(x),T}(x),L=T.filter(q).filter(Q).map((ce=>p(ce,x,!1)));L.unshift(y);const k=L.sort(((ce,se)=>{if(ce.relevance!==se.relevance)return se.relevance-ce.relevance;if(ce.language&&se.language){if(q(ce.language).supersetOf===se.language)return 1;if(q(se.language).supersetOf===ce.language)return-1}return 0})),[H,j]=k,fe=H;return fe.secondBest=j,fe}function b(x){let T=null;const y=function(x){let T=x.className+" ";T+=x.parentNode?x.parentNode.className:"";const y=i.languageDetectRe.exec(T);if(y){const L=q(y[1]);return L||(Hf(a.replace("{}",y[1])),Hf("Falling back to no-highlight mode for this block.",x)),L?y[1]:"no-highlight"}return T.split(/\s+/).find((L=>l(L)||q(L)))}(x);if(l(y))return;if(G("before:highlightElement",{el:x,language:y}),x.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",x);if(x.children.length>0&&(i.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(x)),i.throwUnescapedHTML))throw new GD("One of your code blocks includes unescaped HTML.",x.innerHTML);T=x;const L=T.textContent,k=y?c(L,{language:y,ignoreIllegals:!0}):m(L);x.innerHTML=k.value,x.dataset.highlighted="yes",function(x,T,y){const L=T&&n[T]||y;x.classList.add("hljs"),x.classList.add(`language-${L}`)}(x,y,k.language),x.result={language:k.language,re:k.relevance,relevance:k.relevance},k.secondBest&&(x.secondBest={language:k.secondBest.language,relevance:k.secondBest.relevance}),G("after:highlightElement",{el:x,result:k,text:L})}let E=!1;function v(){"loading"!==document.readyState?document.querySelectorAll(i.cssSelector).forEach(b):E=!0}function q(x){return x=(x||"").toLowerCase(),t[x]||t[n[x]]}function I(x,{languageName:T}){"string"==typeof x&&(x=[x]),x.forEach((y=>{n[y.toLowerCase()]=T}))}function Q(x){const T=q(x);return T&&!T.disableAutodetect}function G(x,T){const y=x;r.forEach((function(L){L[y]&&L[y](T)}))}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){E&&v()}),!1),Object.assign(e,{highlight:c,highlightAuto:m,highlightAll:v,highlightElement:b,highlightBlock:function(x){return Ir("10.7.0","highlightBlock will be removed entirely in v12.0"),Ir("10.7.0","Please use highlightElement now."),b(x)},configure:function(x){i=Gf(i,x)},initHighlighting:()=>{v(),Ir("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),Ir("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(x,T){let y=null;try{y=T(e)}catch(L){if(Wn("Language definition for '{}' could not be registered.".replace("{}",x)),!o)throw L;Wn(L),y=s}y.name||(y.name=x),t[x]=y,y.rawDefinition=T.bind(null,e),y.aliases&&I(y.aliases,{languageName:x})},unregisterLanguage:function(x){delete t[x];for(const T of Object.keys(n))n[T]===x&&delete n[T]},listLanguages:function(){return Object.keys(t)},getLanguage:q,registerAliases:I,autoDetection:Q,inherit:Gf,addPlugin:function(x){(function(x){x["before:highlightBlock"]&&!x["before:highlightElement"]&&(x["before:highlightElement"]=T=>{x["before:highlightBlock"](Object.assign({block:T.el},T))}),x["after:highlightBlock"]&&!x["after:highlightElement"]&&(x["after:highlightElement"]=T=>{x["after:highlightBlock"](Object.assign({block:T.el},T))})})(x),r.push(x)},removePlugin:function(x){const T=r.indexOf(x);-1!==T&&r.splice(T,1)}}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString="11.9.0",e.regex={concat:jn,lookahead:kf,either:ku,optional:sD,anyNumberOfTimes:aD};for(const x in ws)"object"==typeof ws[x]&&wf(ws[x]);return Object.assign(e,ws),e},Mr=Zf({});Mr.newInstance=()=>Zf({});var ZD=Mr;Mr.HighlightJS=Mr,Mr.default=Mr;const X=jo(ZD);const JD=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ey=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],ty=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ny=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ry=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();var Fr="[0-9](_*[0-9])*",Rs=`\\.(${Fr})`,Ls="[0-9a-fA-F](_*[0-9a-fA-F])*",jf={className:"number",variants:[{begin:`(\\b(${Fr})((${Rs})|\\.)?|(${Rs}))[eE][+-]?(${Fr})[fFdD]?\\b`},{begin:`\\b(${Fr})((${Rs})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Rs})[fFdD]?\\b`},{begin:`\\b(${Fr})[fFdD]\\b`},{begin:`\\b0[xX]((${Ls})\\.?|(${Ls})?\\.(${Ls}))[pP][+-]?(${Fr})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ls})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Wf(e,t,n){return-1===n?"":e.replace(t,(r=>Wf(e,t,n-1)))}const Yf="[A-Za-z$_][0-9A-Za-z$_]*",cy=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],dy=["true","false","null","undefined","NaN","Infinity"],Kf=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Xf=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Qf=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],py=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],fy=[].concat(Qf,Kf,Xf);var Br="[0-9](_*[0-9])*",Os=`\\.(${Br})`,ks="[0-9a-fA-F](_*[0-9a-fA-F])*",hy={className:"number",variants:[{begin:`(\\b(${Br})((${Os})|\\.)?|(${Os}))[eE][+-]?(${Br})[fFdD]?\\b`},{begin:`\\b(${Br})((${Os})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Os})[fFdD]?\\b`},{begin:`\\b(${Br})[fFdD]\\b`},{begin:`\\b0[xX]((${ks})\\.?|(${ks})?\\.(${ks}))[pP][+-]?(${Br})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ks})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};const by=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],_y=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Jf=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],e1=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],vy=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),Dy=Jf.concat(e1);const qy=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Hy=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Vy=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],zy=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Gy=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function t1(e){return e?"string"==typeof e?e:e.source:null}function Is(e){return de("(?=",e,")")}function de(...e){return e.map((n=>t1(n))).join("")}function ot(...e){return"("+(function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map((r=>t1(r))).join("|")+")"}const Bu=e=>de(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Yy=["Protocol","Type"].map(Bu),n1=["init","self"].map(Bu),Ky=["Any","Self"],Pu=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],r1=["false","nil","true"],Xy=["assignment","associativity","higherThan","left","lowerThan","none","right"],Qy=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],o1=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],a1=ot(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),s1=ot(a1,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Uu=de(a1,s1,"*"),i1=ot(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ms=ot(i1,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),on=de(i1,Ms,"*"),qu=de(/[A-Z]/,Ms,"*"),Jy=["attached","autoclosure",de(/convention\(/,ot("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",de(/objc\(/,on,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],e3=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];const Fs="[A-Za-z$_][0-9A-Za-z$_]*",l1=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],u1=["true","false","null","undefined","NaN","Infinity"],c1=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],d1=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],p1=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],f1=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],g1=[].concat(p1,c1,d1);X.registerLanguage("apache",(function(e){const r={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[r,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},r,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}})),X.registerLanguage("bash",(function(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,o]};o.contains.push(s);const c={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},d=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[d,e.SHEBANG(),m,c,e.HASH_COMMENT_MODE,a,{match:/(\/[a-z._-]+)+/},s,{match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},n]}})),X.registerLanguage("c",(function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",s="("+r+"|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},m=t.optional(o)+e.IDENT_RE+"\\s*\\(",C={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},h=[p,i,n,e.C_BLOCK_COMMENT_MODE,c,u],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:h.concat([{begin:/\(/,end:/\)/,keywords:C,contains:h.concat(["self"]),relevance:0}]),relevance:0},E={begin:"("+s+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:C,relevance:0},{begin:m,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,i,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,p]};return{name:"C",aliases:["h"],keywords:C,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:p,strings:u,keywords:C}}})),X.registerLanguage("cpp",(function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",s="(?!struct)("+r+"|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},m=t.optional(o)+e.IDENT_RE+"\\s*\\(",v={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},N={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[N,p,i,n,e.C_BLOCK_COMMENT_MODE,c,u],S={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},R={className:"function",begin:"("+s+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:m,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,c]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,i,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,p]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}})),X.registerLanguage("csharp",(function(e){const s={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},c=e.inherit(u,{illegal:/\n/}),p={className:"subst",begin:/\{/,end:/\}/,keywords:s},d=e.inherit(p,{illegal:/\n/}),m={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,d]},A={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]},b=e.inherit(A,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},d]});p.contains=[A,m,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],d.contains=[b,m,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const C={variants:[A,m,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},g=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",E={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},C,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+g+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,h],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[C,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},E]}})),X.registerLanguage("css",(function(e){const t=e.regex,n=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),i=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ty.join("|")+")"},{begin:":(:)?("+ny.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ry.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...i,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...i,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ey.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...i,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+JD.join("|")+")\\b"}]}})),X.registerLanguage("diff",(function(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}})),X.registerLanguage("go",(function(e){const a={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:")?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},u={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,jf,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},jf,u]}})),X.registerLanguage("javascript",(function(e){const t=e.regex,r=Yf,o_begin="<>",o_end="",s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(T,y)=>{const L=T[0].length+T.index,k=T.input[L];if("<"===k||","===k)return void y.ignoreMatch();let H;">"===k&&(((T,{after:y})=>{const L="",x={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(P)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};var T;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,A,b,C,g,{match:/\$\d+/},p,R,{className:"attr",begin:r+t.lookahead(":"),relevance:0},x,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[g,e.REGEXP_MODE,{className:"function",begin:P,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o_begin,end:o_end},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},Y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,G,{match:/\$[(.]/}]}})),X.registerLanguage("json",(function(e){const r=["true","false","null"],o={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",keywords:{literal:r},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,o,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}})),X.registerLanguage("kotlin",(function(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},o={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,o]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,o]}]};o.contains.push(s);const i={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},u=hy,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=p;return d.variants[1].contains=[p],p.variants[1].contains=[d],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r,i,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,i,l,s,e.C_NUMBER_MODE]},c]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},i,l]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},u]}})),X.registerLanguage("less",(function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),n=Dy,o="[\\w-]+",a="("+o+"|@\\{"+o+"\\})",s=[],i=[],l=function(E){return{className:"string",begin:"~?"+E+".*?"+E}},u=function(E,v,N){return{className:E,begin:v,relevance:N}},c={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:_y.join(" ")},p={begin:"\\(",end:"\\)",contains:i,keywords:c,relevance:0};i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,p,u("variable","@@?"+o,10),u("variable","@\\{"+o+"\\}"),u("built_in","~?`[^`]*?`"),{className:"attribute",begin:o+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const d=i.concat({begin:/\{/,end:/\}/,contains:s}),m={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(i)},A={begin:a+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+vy.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:i}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:i,relevance:0}},C={className:"variable",variants:[{begin:"@"+o+"\\s*:",relevance:15},{begin:"@"+o}],starts:{end:"[;}]",returnEnd:!0,contains:d}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,u("keyword","all\\b"),u("variable","@\\{"+o+"\\}"),{begin:"\\b("+by.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,u("selector-tag",a,0),u("selector-id","#"+a),u("selector-class","\\."+a,0),u("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Jf.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+e1.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:d},{begin:"!important"},t.FUNCTION_DISPATCH]},g={begin:o+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[h]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,C,g,A,h,m,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:s}})),X.registerLanguage("lua",(function(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},o=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:o}].concat(o)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}})),X.registerLanguage("makefile",(function(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},c={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(u,{contains:[]}),d=e.inherit(c,{contains:[]});u.contains.push(d),c.contains.push(p);let m=[n,l];return[u,c,p,d].forEach((C=>{C.contains=C.contains.concat(m)})),m=m.concat(u,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:m},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:m}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u,c,{className:"quote",begin:"^>\\s+",contains:m,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},l,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}})),X.registerLanguage("nginx",(function(e){const t=e.regex,n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},o={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:o.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:o}],relevance:0}],illegal:"[^\\s\\}\\{]"}})),X.registerLanguage("objectivec",(function(e){const n=/[a-zA-Z@][a-zA-Z0-9_]*/,l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}})),X.registerLanguage("perl",(function(e){const t=e.regex,r=/[dualxmsipngr]{0,12}/,o={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:o},s={begin:/->\{/,end:/\}/},i={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},l=[e.BACKSLASH_ESCAPE,a,i],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(m,A,b="\\1")=>{const C="\\1"===b?b:t.concat(b,A);return t.concat(t.concat("(?:",m,")"),A,/(?:\\.|[^\\\/])*?/,C,/(?:\\.|[^\\\/])*?/,b,r)},p=(m,A,b)=>t.concat(t.concat("(?:",m,")"),A,/(?:\\.|[^\\\/])*?/,b,r),d=[i,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:l,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...u,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=d,s.contains=d,{name:"Perl",aliases:["pl","pm"],keywords:o,contains:d}})),X.registerLanguage("pgsql",(function(e){const t=e.COMMENT("--","$"),r="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",l="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",u=l.trim().split(" ").map((function(b){return b.split("|")[0]})).join("|"),A="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map((function(b){return b.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+A+")\\s*\\("},{begin:"\\.("+u+")\\b"},{begin:"\\b("+u+")\\s+PATH\\b",keywords:{keyword:"PATH",type:l.replace("PATH ","")}},{className:"type",begin:"\\b("+u+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:r,end:r,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}})),X.registerLanguage("php",(function(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),o=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a={scope:"variable",match:"\\$+"+r},i={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d="[ \t\n]",m={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(i)}),l,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(i),"on:begin":(Y,O)=>{O.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,O)=>{O.data._beginMatch!==Y[1]&&O.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},A={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},b=["false","null","true"],C=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],h=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],E={keyword:C,literal:(Y=>{const O=[];return Y.forEach((G=>{O.push(G),G.toLowerCase()===G?O.push(G.toUpperCase()):O.push(G.toLowerCase())})),O})(b),built_in:h},v=Y=>Y.map((O=>O.replace(/\|\d+$/,""))),N={variants:[{match:[/new/,t.concat(d,"+"),t.concat("(?!",v(h).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},_=t.concat(r,"\\b(?!\\()"),S={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),_],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,t.concat(/::/,t.lookahead(/(?!class\b)/)),_],scope:{1:"title.class",3:"variable.constant"}},{match:[o,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},R={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},q={relevance:0,begin:/\(/,end:/\)/,keywords:E,contains:[R,a,S,e.C_BLOCK_COMMENT_MODE,m,A,N]},I={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",v(C).join("\\b|"),"|",v(h).join("\\b|"),"\\b)"),r,t.concat(d,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[q]};q.contains.push(I);const Q=[R,S,e.C_BLOCK_COMMENT_MODE,m,A,N];return{case_insensitive:!1,keywords:E,contains:[{begin:t.concat(/#\[\s*/,o),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:b,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:b,keyword:["new","array"]},contains:["self",...Q]},...Q,{scope:"meta",match:o}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},a,I,S,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},N,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:E,contains:["self",a,S,e.C_BLOCK_COMMENT_MODE,m,A]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},m,A]}})),X.registerLanguage("php-template",(function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}})),X.registerLanguage("plaintext",(function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}})),X.registerLanguage("python",(function(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},u={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},c={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,c,u]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,u]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},d="[0-9](_?[0-9])*",m=`(\\b(${d}))?\\.(${d})|\\b(${d})\\.`,A=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${d})|(${m}))[eE][+-]?(${d})[jJ]?(?=${A})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${A})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${A})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${A})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${A})`},{begin:`\\b(${d})[jJ](?=${A})`}]},C={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},h={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",l,b,p,e.HASH_COMMENT_MODE]}]};return u.contains=[p,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[l,b,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},p,C,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[h]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,h,p]}]}})),X.registerLanguage("python-repl",(function(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),X.registerLanguage("r",(function(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[o,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[a,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}})),X.registerLanguage("ruby",(function(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),o=t.concat(r,/(::\w+)*/),s={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},i={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},u=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^=begin","^=end",{contains:[i],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:s},p={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},m="[0-9](_?[0-9])*",A={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${m}))?([eE][+-]?(${m})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:s}]},_=[p,{variants:[{match:[/class\s+/,o,/\s+<\s+/,o]},{match:[/\b(class|module)\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:s},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:s},{relevance:0,match:[o,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[p,{begin:n}],relevance:0},A,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:s},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,u),relevance:0}].concat(l,u);c.contains=_,b.contains=_;const I=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:s,contains:_}}];return u.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:s,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(I).concat(u).concat(_)}})),X.registerLanguage("rust",(function(e){const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(32|64))?",s=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],i=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:i,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:s},illegal:""},n]}})),X.registerLanguage("scss",(function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),n=zy,r=Vy,o="@[a-z-]+",i={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+qy.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},i,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Gy.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,i,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:o,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Hy.join(" ")},contains:[{begin:o,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},i,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}})),X.registerLanguage("shell",(function(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}})),X.registerLanguage("sql",(function(e){const t=e.regex,n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],c=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],m=c,A=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((E=>!c.includes(E))),h={begin:t.concat(/\b/,t.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(E,{exceptions:v,when:N}={}){const _=N;return v=v||[],E.map((S=>S.match(/\|\d+$/)||v.includes(S)?S:_(S)?`${S}|0`:S))}(A,{when:E=>E.length<3}),literal:a,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...d),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:A.concat(d),literal:a,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},h,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}})),X.registerLanguage("swift",(function(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],o={match:[/\./,ot(...Yy,...n1)],className:{2:"keyword"}},a={match:de(/\./,ot(...Pu)),relevance:0},s=Pu.filter((te=>"string"==typeof te)).concat(["_|0"]),l={variants:[{className:"keyword",match:ot(...Pu.filter((te=>"string"!=typeof te)).concat(Ky).map(Bu),...n1)}]},u={$pattern:ot(/\b\w+/,/#\w+/),keyword:s.concat(Qy),literal:r1},c=[o,a,l],m=[{match:de(/\./,ot(...o1)),relevance:0},{className:"built_in",match:de(/\b/,ot(...o1),/(?=\()/)}],A={match:/->/,relevance:0},C=[A,{className:"operator",relevance:0,variants:[{match:Uu},{match:`\\.(\\.|${s1})+`}]}],h="([0-9]_*)+",g="([0-9a-fA-F]_*)+",E={className:"number",relevance:0,variants:[{match:`\\b(${h})(\\.(${h}))?([eE][+-]?(${h}))?\\b`},{match:`\\b0x(${g})(\\.(${g}))?([pP][+-]?(${h}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(te="")=>({className:"subst",variants:[{match:de(/\\/,te,/[0\\tnr"']/)},{match:de(/\\/,te,/u\{[0-9a-fA-F]{1,8}\}/)}]}),N=(te="")=>({className:"subst",match:de(/\\/,te,/[\t ]*(?:[\r\n]|\r\n)/)}),_=(te="")=>({className:"subst",label:"interpol",begin:de(/\\/,te,/\(/),end:/\)/}),S=(te="")=>({begin:de(te,/"""/),end:de(/"""/,te),contains:[v(te),N(te),_(te)]}),R=(te="")=>({begin:de(te,/"/),end:de(/"/,te),contains:[v(te),_(te)]}),q={className:"string",variants:[S(),S("#"),S("##"),S("###"),R(),R("#"),R("##"),R("###")]},I=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],Q={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:I},ie=te=>{const Re=de(te,/\//),ke=de(/\//,te);return{begin:Re,end:ke,contains:[...I,{scope:"comment",begin:`#(?!.*${ke})`,end:/$/}]}},Y={scope:"regexp",variants:[ie("###"),ie("##"),ie("#"),Q]},O={match:de(/`/,on,/`/)},x=[O,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${Ms}+`}],k=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:e3,contains:[...C,E,q]}]}},{scope:"keyword",match:de(/@/,ot(...Jy))},{scope:"meta",match:de(/@/,on)}],H={match:Is(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:de(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ms,"+")},{className:"type",match:qu,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:de(/\s+&\s+/,Is(qu)),relevance:0}]},j={begin://,keywords:u,contains:[...r,...c,...k,A,H]};H.contains.push(j);const ce={begin:/\(/,end:/\)/,relevance:0,keywords:u,contains:["self",{match:de(on,/\s*:/),keywords:"_|0",relevance:0},...r,Y,...c,...m,...C,E,q,...x,...k,H]},se={begin://,keywords:"repeat each",contains:[...r,H]},mt={begin:/\(/,end:/\)/,keywords:u,contains:[{begin:ot(Is(de(on,/\s*:/)),Is(de(on,/\s+/,on,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:on}]},...r,...c,...C,E,q,...k,H,ce],endsParent:!0,illegal:/["']/},Ft={match:[/(func|macro)/,/\s+/,ot(O.match,on,Uu)],className:{1:"keyword",3:"title.function"},contains:[se,mt,t],illegal:[/\[/,/%/]},ht={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[se,mt,t],illegal:/\[|%/},Ge={match:[/operator/,/\s+/,Uu],className:{1:"keyword",3:"title"}},Ct={begin:[/precedencegroup/,/\s+/,qu],className:{1:"keyword",3:"title"},contains:[H],keywords:[...Xy,...r1],end:/}/};for(const te of q.variants){const Re=te.contains.find((Ce=>"interpol"===Ce.label));Re.keywords=u;const ke=[...c,...m,...C,E,q,...x];Re.contains=[...ke,{begin:/\(/,end:/\)/,contains:["self",...ke]}]}return{name:"Swift",keywords:u,contains:[...r,Ft,ht,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:u,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]},Ge,Ct,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},Y,...c,...m,...C,E,q,...x,...k,H,ce]}})),X.registerLanguage("typescript",(function(e){const t=function(e){const t=e.regex,r=Fs,o_begin="<>",o_end="",s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(T,y)=>{const L=T[0].length+T.index,k=T.input[L];if("<"===k||","===k)return void y.ignoreMatch();let H;">"===k&&(((T,{after:y})=>{const L="",x={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(P)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};var T;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,A,b,C,g,{match:/\$\d+/},p,R,{className:"attr",begin:r+t.lookahead(":"),relevance:0},x,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[g,e.REGEXP_MODE,{className:"function",begin:P,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o_begin,end:o_end},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},Y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,G,{match:/\$[(.]/}]}}(e),n=Fs,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},l={$pattern:Fs,keyword:l1.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:u1,built_in:g1.concat(r),"variable.language":f1},u={className:"meta",begin:"@"+n},c=(d,m,A)=>{const b=d.contains.findIndex((C=>C.label===m));if(-1===b)throw new Error("can not find mode to replace");d.contains.splice(b,1,A)};return Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(u),t.contains=t.contains.concat([u,o,a]),c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),t.contains.find((d=>"func.def"===d.label)).relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t})),X.registerLanguage("vbnet",(function(e){const t=e.regex,o=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,i=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,o),/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,t.either(a,o),/ +/,t.either(s,i),/ *#/)}]},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),d=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},l,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},p,d,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[d]}]}})),X.registerLanguage("wasm",(function(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}})),X.registerLanguage("xml",(function(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=e.inherit(a,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),u={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[a,l,i,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[a,s,l,i]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[u],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[u],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:u}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}})),X.registerLanguage("yaml",(function(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},s=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),d={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},m={begin:/\{/,end:/\}/,contains:[d],illegal:"\\n",relevance:0},A={begin:"\\[",end:"\\]",contains:[d],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},m,A,a],C=[...b];return C.pop(),C.push(s),d.contains=C,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:b}}));const m1=X,l3=eD({html:!1,typographer:!0,highlight:function(e,t){const n=zn();if(t&&m1.getLanguage(t))try{return`
\n
\n
${t}
\n \n
\n
`+m1.highlight(e,{language:t,ignoreIllegals:!0}).value+"
"}catch{}return`
\n
\n
\n \n
\n
`+db.encode(e)+"
"}}).disable("list");function h1(e=""){return l3.render(e)}/*! @license DOMPurify 3.0.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.8/LICENSE */const{entries:E1,setPrototypeOf:A1,isFrozen:u3,getPrototypeOf:c3,getOwnPropertyDescriptor:Hu}=Object;let{freeze:Qe,seal:Mt,create:b1}=Object,{apply:Vu,construct:zu}=typeof Reflect<"u"&&Reflect;Qe||(Qe=function(t){return t}),Mt||(Mt=function(t){return t}),Vu||(Vu=function(t,n,r){return t.apply(n,r)}),zu||(zu=function(t,n){return new t(...n)});const Bs=Tt(Array.prototype.forEach),_1=Tt(Array.prototype.pop),qo=Tt(Array.prototype.push),Ps=Tt(String.prototype.toLowerCase),Gu=Tt(String.prototype.toString),d3=Tt(String.prototype.match),Ho=Tt(String.prototype.replace),p3=Tt(String.prototype.indexOf),f3=Tt(String.prototype.trim),gt=Tt(RegExp.prototype.test),Vo=function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:Ps;A1&&A1(e,null);let r=t.length;for(;r--;){let o=t[r];if("string"==typeof o){const a=n(o);a!==o&&(u3(t)||(t[r]=a),o=a)}e[o]=!0}return e}function m3(e){for(let t=0;t/gm),_3=Mt(/\${[\w\W]*}/gm),v3=Mt(/^data-[\-\w.\u00B7-\uFFFF]/),D3=Mt(/^aria-[\-\w]+$/),C1=Mt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),y3=Mt(/^(?:\w+script|data):/i),T3=Mt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),N1=Mt(/^html$/i);var S1=Object.freeze({__proto__:null,MUSTACHE_EXPR:A3,ERB_EXPR:b3,TMPLIT_EXPR:_3,DATA_ATTR:v3,ARIA_ATTR:D3,IS_ALLOWED_URI:C1,IS_SCRIPT_OR_DATA:y3,ATTR_WHITESPACE:T3,DOCTYPE_NAME:N1});var S3=function w1(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:typeof window>"u"?null:window;const t=$=>w1($);if(t.version="3.0.8",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;let{document:n}=e;const r=n,o=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:i,Element:l,NodeFilter:u,NamedNodeMap:c=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:p,DOMParser:d,trustedTypes:m}=e,A=l.prototype,b=Us(A,"cloneNode"),C=Us(A,"nextSibling"),h=Us(A,"childNodes"),g=Us(A,"parentNode");if("function"==typeof s){const $=n.createElement("template");$.content&&$.content.ownerDocument&&(n=$.content.ownerDocument)}let E,v="";const{implementation:N,createNodeIterator:_,createDocumentFragment:S,getElementsByTagName:R}=n,{importNode:q}=r;let I={};t.isSupported="function"==typeof E1&&"function"==typeof g&&N&&void 0!==N.createHTMLDocument;const{MUSTACHE_EXPR:Q,ERB_EXPR:ie,TMPLIT_EXPR:Y,DATA_ATTR:O,ARIA_ATTR:G,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:x}=S1;let{IS_ALLOWED_URI:T}=S1,y=null;const L=J({},[...v1,...$u,...Zu,...ju,...D1]);let k=null;const H=J({},[...y1,...Wu,...T1,...qs]);let j=Object.seal(b1(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),fe=null,ce=null,se=!0,le=!0,mt=!1,Ft=!0,ht=!1,Ge=!1,Ct=!1,te=!1,Re=!1,ke=!1,Ce=!1,Hs=!0,Pr=!1,Ur=!0,De=!1,oe={},Bt=null;const jt=J({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let qr=null;const Hr=J({},["audio","video","img","source","image","track"]);let B=null;const V=J({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),K="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",ge="http://www.w3.org/1999/xhtml";let $e=ge,zo=!1,Go=null;const l8=J({},[K,ne,ge],Gu);let $o=null;const u8=["application/xhtml+xml","text/html"];let Ie=null,Vr=null;const d8=n.createElement("form"),M1=function(D){return D instanceof RegExp||D instanceof Function},Xu=function(){let D=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Vr||Vr!==D){if((!D||"object"!=typeof D)&&(D={}),D=Yn(D),$o=-1===u8.indexOf(D.PARSER_MEDIA_TYPE)?"text/html":D.PARSER_MEDIA_TYPE,Ie="application/xhtml+xml"===$o?Gu:Ps,y="ALLOWED_TAGS"in D?J({},D.ALLOWED_TAGS,Ie):L,k="ALLOWED_ATTR"in D?J({},D.ALLOWED_ATTR,Ie):H,Go="ALLOWED_NAMESPACES"in D?J({},D.ALLOWED_NAMESPACES,Gu):l8,B="ADD_URI_SAFE_ATTR"in D?J(Yn(V),D.ADD_URI_SAFE_ATTR,Ie):V,qr="ADD_DATA_URI_TAGS"in D?J(Yn(Hr),D.ADD_DATA_URI_TAGS,Ie):Hr,Bt="FORBID_CONTENTS"in D?J({},D.FORBID_CONTENTS,Ie):jt,fe="FORBID_TAGS"in D?J({},D.FORBID_TAGS,Ie):{},ce="FORBID_ATTR"in D?J({},D.FORBID_ATTR,Ie):{},oe="USE_PROFILES"in D&&D.USE_PROFILES,se=!1!==D.ALLOW_ARIA_ATTR,le=!1!==D.ALLOW_DATA_ATTR,mt=D.ALLOW_UNKNOWN_PROTOCOLS||!1,Ft=!1!==D.ALLOW_SELF_CLOSE_IN_ATTR,ht=D.SAFE_FOR_TEMPLATES||!1,Ge=D.WHOLE_DOCUMENT||!1,Re=D.RETURN_DOM||!1,ke=D.RETURN_DOM_FRAGMENT||!1,Ce=D.RETURN_TRUSTED_TYPE||!1,te=D.FORCE_BODY||!1,Hs=!1!==D.SANITIZE_DOM,Pr=D.SANITIZE_NAMED_PROPS||!1,Ur=!1!==D.KEEP_CONTENT,De=D.IN_PLACE||!1,T=D.ALLOWED_URI_REGEXP||C1,$e=D.NAMESPACE||ge,j=D.CUSTOM_ELEMENT_HANDLING||{},D.CUSTOM_ELEMENT_HANDLING&&M1(D.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=D.CUSTOM_ELEMENT_HANDLING.tagNameCheck),D.CUSTOM_ELEMENT_HANDLING&&M1(D.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=D.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),D.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof D.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(j.allowCustomizedBuiltInElements=D.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ht&&(le=!1),ke&&(Re=!0),oe&&(y=J({},D1),k=[],!0===oe.html&&(J(y,v1),J(k,y1)),!0===oe.svg&&(J(y,$u),J(k,Wu),J(k,qs)),!0===oe.svgFilters&&(J(y,Zu),J(k,Wu),J(k,qs)),!0===oe.mathMl&&(J(y,ju),J(k,T1),J(k,qs))),D.ADD_TAGS&&(y===L&&(y=Yn(y)),J(y,D.ADD_TAGS,Ie)),D.ADD_ATTR&&(k===H&&(k=Yn(k)),J(k,D.ADD_ATTR,Ie)),D.ADD_URI_SAFE_ATTR&&J(B,D.ADD_URI_SAFE_ATTR,Ie),D.FORBID_CONTENTS&&(Bt===jt&&(Bt=Yn(Bt)),J(Bt,D.FORBID_CONTENTS,Ie)),Ur&&(y["#text"]=!0),Ge&&J(y,["html","head","body"]),y.table&&(J(y,["tbody"]),delete fe.tbody),D.TRUSTED_TYPES_POLICY){if("function"!=typeof D.TRUSTED_TYPES_POLICY.createHTML)throw Vo('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof D.TRUSTED_TYPES_POLICY.createScriptURL)throw Vo('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=D.TRUSTED_TYPES_POLICY,v=E.createHTML("")}else void 0===E&&(E=function(t,n){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let r=null;const o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML:s=>s,createScriptURL:s=>s})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}}(m,o)),null!==E&&"string"==typeof v&&(v=E.createHTML(""));Qe&&Qe(D),Vr=D}},F1=J({},["mi","mo","mn","ms","mtext"]),B1=J({},["foreignobject","desc","title","annotation-xml"]),p8=J({},["title","style","font","a","script"]),P1=J({},[...$u,...Zu,...h3]),U1=J({},[...ju,...E3]),Xn=function(D){qo(t.removed,{element:D});try{D.parentNode.removeChild(D)}catch{D.remove()}},Qu=function(D,F){try{qo(t.removed,{attribute:F.getAttributeNode(D),from:F})}catch{qo(t.removed,{attribute:null,from:F})}if(F.removeAttribute(D),"is"===D&&!k[D])if(Re||ke)try{Xn(F)}catch{}else try{F.setAttribute(D,"")}catch{}},q1=function(D){let F=null,z=null;if(te)D=""+D;else{const je=d3(D,/^[\r\n\t ]+/);z=je&&je[0]}"application/xhtml+xml"===$o&&$e===ge&&(D=''+D+"");const me=E?E.createHTML(D):D;if($e===ge)try{F=(new d).parseFromString(me,$o)}catch{}if(!F||!F.documentElement){F=N.createDocument($e,"template",null);try{F.documentElement.innerHTML=zo?v:me}catch{}}const Ze=F.body||F.documentElement;return D&&z&&Ze.insertBefore(n.createTextNode(z),Ze.childNodes[0]||null),$e===ge?R.call(F,Ge?"html":"body")[0]:Ge?F.documentElement:Ze},H1=function(D){return _.call(D.ownerDocument||D,D,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null)},V1=function(D){return"function"==typeof i&&D instanceof i},an=function(D,F,z){I[D]&&Bs(I[D],(me=>{me.call(t,F,z,Vr)}))},z1=function(D){let F=null;if(an("beforeSanitizeElements",D,null),function(D){return D instanceof p&&("string"!=typeof D.nodeName||"string"!=typeof D.textContent||"function"!=typeof D.removeChild||!(D.attributes instanceof c)||"function"!=typeof D.removeAttribute||"function"!=typeof D.setAttribute||"string"!=typeof D.namespaceURI||"function"!=typeof D.insertBefore||"function"!=typeof D.hasChildNodes)}(D))return Xn(D),!0;const z=Ie(D.nodeName);if(an("uponSanitizeElement",D,{tagName:z,allowedTags:y}),D.hasChildNodes()&&!V1(D.firstElementChild)&>(/<[/\w]/g,D.innerHTML)&>(/<[/\w]/g,D.textContent))return Xn(D),!0;if(!y[z]||fe[z]){if(!fe[z]&&$1(z)&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,z)||j.tagNameCheck instanceof Function&&j.tagNameCheck(z)))return!1;if(Ur&&!Bt[z]){const me=g(D)||D.parentNode,Ze=h(D)||D.childNodes;if(Ze&&me){for(let at=Ze.length-1;at>=0;--at)me.insertBefore(b(Ze[at],!0),C(D))}}return Xn(D),!0}return D instanceof l&&!function(D){let F=g(D);(!F||!F.tagName)&&(F={namespaceURI:$e,tagName:"template"});const z=Ps(D.tagName),me=Ps(F.tagName);return!!Go[D.namespaceURI]&&(D.namespaceURI===ne?F.namespaceURI===ge?"svg"===z:F.namespaceURI===K?"svg"===z&&("annotation-xml"===me||F1[me]):!!P1[z]:D.namespaceURI===K?F.namespaceURI===ge?"math"===z:F.namespaceURI===ne?"math"===z&&B1[me]:!!U1[z]:D.namespaceURI===ge?!(F.namespaceURI===ne&&!B1[me]||F.namespaceURI===K&&!F1[me])&&!U1[z]&&(p8[z]||!P1[z]):!("application/xhtml+xml"!==$o||!Go[D.namespaceURI]))}(D)||("noscript"===z||"noembed"===z||"noframes"===z)&>(/<\/no(script|embed|frames)/i,D.innerHTML)?(Xn(D),!0):(ht&&3===D.nodeType&&(F=D.textContent,Bs([Q,ie,Y],(me=>{F=Ho(F,me," ")})),D.textContent!==F&&(qo(t.removed,{element:D.cloneNode()}),D.textContent=F)),an("afterSanitizeElements",D,null),!1)},G1=function(D,F,z){if(Hs&&("id"===F||"name"===F)&&(z in n||z in d8))return!1;if((!le||ce[F]||!gt(O,F))&&(!se||!gt(G,F)))if(!k[F]||ce[F]){if(!($1(D)&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,D)||j.tagNameCheck instanceof Function&&j.tagNameCheck(D))&&(j.attributeNameCheck instanceof RegExp&>(j.attributeNameCheck,F)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(F))||"is"===F&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&>(j.tagNameCheck,z)||j.tagNameCheck instanceof Function&&j.tagNameCheck(z))))return!1}else if(!B[F]&&!gt(T,Ho(z,x,""))&&("src"!==F&&"xlink:href"!==F&&"href"!==F||"script"===D||0!==p3(z,"data:")||!qr[D])&&(!mt||gt(P,Ho(z,x,"")))&&z)return!1;return!0},$1=function(D){return D.indexOf("-")>0},Z1=function(D){an("beforeSanitizeAttributes",D,null);const{attributes:F}=D;if(!F)return;const z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:k};let me=F.length;for(;me--;){const Ze=F[me],{name:je,namespaceURI:at,value:Qn}=Ze,Zo=Ie(je);let st="value"===je?Qn:f3(Qn);if(z.attrName=Zo,z.attrValue=st,z.keepAttr=!0,z.forceKeepAttr=void 0,an("uponSanitizeAttribute",D,z),st=z.attrValue,z.forceKeepAttr||(Qu(je,D),!z.keepAttr))continue;if(!Ft&>(/\/>/i,st)){Qu(je,D);continue}ht&&Bs([Q,ie,Y],(W1=>{st=Ho(st,W1," ")}));const j1=Ie(D.nodeName);if(G1(j1,Zo,st)){if(Pr&&("id"===Zo||"name"===Zo)&&(Qu(je,D),st="user-content-"+st),E&&"object"==typeof m&&"function"==typeof m.getAttributeType&&!at)switch(m.getAttributeType(j1,Zo)){case"TrustedHTML":st=E.createHTML(st);break;case"TrustedScriptURL":st=E.createScriptURL(st)}try{at?D.setAttributeNS(at,je,st):D.setAttribute(je,st),_1(t.removed)}catch{}}}an("afterSanitizeAttributes",D,null)},m8=function $(D){let F=null;const z=H1(D);for(an("beforeSanitizeShadowDOM",D,null);F=z.nextNode();)an("uponSanitizeShadowNode",F,null),!z1(F)&&(F.content instanceof a&&$(F.content),Z1(F));an("afterSanitizeShadowDOM",D,null)};return t.sanitize=function($){let D=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=null,z=null,me=null,Ze=null;if(zo=!$,zo&&($="\x3c!--\x3e"),"string"!=typeof $&&!V1($)){if("function"!=typeof $.toString)throw Vo("toString is not a function");if("string"!=typeof($=$.toString()))throw Vo("dirty is not a string, aborting")}if(!t.isSupported)return $;if(Ct||Xu(D),t.removed=[],"string"==typeof $&&(De=!1),De){if($.nodeName){const Qn=Ie($.nodeName);if(!y[Qn]||fe[Qn])throw Vo("root node is forbidden and cannot be sanitized in-place")}}else if($ instanceof i)F=q1("\x3c!----\x3e"),z=F.ownerDocument.importNode($,!0),1===z.nodeType&&"BODY"===z.nodeName||"HTML"===z.nodeName?F=z:F.appendChild(z);else{if(!Re&&!ht&&!Ge&&-1===$.indexOf("<"))return E&&Ce?E.createHTML($):$;if(F=q1($),!F)return Re?null:Ce?v:""}F&&te&&Xn(F.firstChild);const je=H1(De?$:F);for(;me=je.nextNode();)z1(me)||(me.content instanceof a&&m8(me.content),Z1(me));if(De)return $;if(Re){if(ke)for(Ze=S.call(F.ownerDocument);F.firstChild;)Ze.appendChild(F.firstChild);else Ze=F;return(k.shadowroot||k.shadowrootmode)&&(Ze=q.call(r,Ze,!0)),Ze}let at=Ge?F.outerHTML:F.innerHTML;return Ge&&y["!doctype"]&&F.ownerDocument&&F.ownerDocument.doctype&&F.ownerDocument.doctype.name&>(N1,F.ownerDocument.doctype.name)&&(at="\n"+at),ht&&Bs([Q,ie,Y],(Qn=>{at=Ho(at,Qn," ")})),E&&Ce?E.createHTML(at):at},t.setConfig=function(){Xu(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ct=!0},t.clearConfig=function(){Vr=null,Ct=!1},t.isValidAttribute=function($,D,F){Vr||Xu({});const z=Ie($),me=Ie(D);return G1(z,me,F)},t.addHook=function($,D){"function"==typeof D&&(I[$]=I[$]||[],qo(I[$],D))},t.removeHook=function($){if(I[$])return _1(I[$])},t.removeHooks=function($){I[$]&&(I[$]=[])},t.removeAllHooks=function(){I={}},t}();function x1(e){return new Date(1e3*e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})}const w3=S3(window),x3=Z.forwardRef((({uuid:e=zn(),message:t,role:n,sources:r=[],error:o=!1,sentAt:a},s)=>{const i=Te.settings.textSize?`text-[${Te.settings.textSize}px]`:"text-sm";return w.jsxs("div",{className:"py-[5px]",children:["assistant"===n&&w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mb-2 text-left",children:Te.settings.assistantName||"Anything LLM Chat Assistant"}),w.jsxs("div",{ref:s,className:"flex items-start w-full h-fit "+("user"===n?"justify-end":"justify-start"),children:["assistant"===n&&w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2 mt-2",id:"anything-llm-icon"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${o?"bg-red-200 rounded-lg mr-[37px] ml-[9px]":"user"===n?`${Te.USER_STYLES} anything-llm-user-message`:`${Te.ASSISTANT_STYLES} anything-llm-assistant-message`} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex",children:o?w.jsxs("div",{className:"p-2 rounded-lg bg-red-50 text-red-500",children:[w.jsxs("span",{className:"inline-block ",children:[w.jsx(ru,{className:"h-4 w-4 mb-1 inline-block"})," Could not respond to message."]}),w.jsx("p",{className:"text-xs font-mono mt-2 border-l-2 border-red-500 pl-2 bg-red-300 p-2 rounded-sm",children:o})]}):w.jsx("span",{className:`whitespace-pre-line font-medium flex flex-col gap-y-1 ${i} leading-[20px]`,dangerouslySetInnerHTML:{__html:w3.sanitize(h1(t))}})})})]},e),a&&w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mt-2 "+("user"===n?"text-right":"text-left"),children:x1(a)})]})})),R3=Z.memo(x3),L3=Z.forwardRef((({uuid:e,reply:t,pending:n,error:r,sources:o=[]},a)=>t||0!==o.length||n||r?n?w.jsxs("div",{className:"flex items-start w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${Te.ASSISTANT_STYLES} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex gap-x-5",children:w.jsx("div",{className:"mx-4 my-1 dot-falling"})})})]}):r?w.jsxs("div",{className:"flex items-end w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:"py-[11px] px-4 rounded-lg flex flex-col bg-red-200 shadow-[0_4px_14px_rgba(0,0,0,0.25)] mr-[37px] ml-[9px]",children:w.jsx("div",{className:"flex gap-x-5",children:w.jsxs("span",{className:"inline-block p-2 rounded-lg bg-red-50 text-red-500",children:[w.jsx(ru,{className:"h-4 w-4 mb-1 inline-block"})," Could not respond to message.",w.jsxs("span",{className:"text-xs",children:["Reason: ",r||"unknown"]})]})})})]}):w.jsxs("div",{className:"py-[5px]",children:[w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mb-2 text-left",children:Te.settings.assistantName||"Anything LLM Chat Assistant"}),w.jsxs("div",{ref:a,className:"flex items-start w-full h-fit justify-start",children:[w.jsx("img",{src:Te.settings.assistantIcon||ko,alt:"Anything LLM Icon",className:"w-9 h-9 flex-shrink-0 ml-2"}),w.jsx("div",{style:{wordBreak:"break-word"},className:`py-[11px] px-4 flex flex-col ${r?"bg-red-200":Te.ASSISTANT_STYLES} shadow-[0_4px_14px_rgba(0,0,0,0.25)]`,children:w.jsx("div",{className:"flex gap-x-5",children:w.jsx("span",{className:"reply whitespace-pre-line font-normal text-sm md:text-sm flex flex-col gap-y-1",dangerouslySetInnerHTML:{__html:h1(t)}})})})]},e),w.jsx("div",{className:"text-[10px] font-medium text-gray-400 ml-[54px] mr-6 mt-2 text-left",children:x1(Date.now()/1e3)})]}):null)),O3=Z.memo(L3);var R1=NaN,I3="[object Symbol]",M3=/^\s+|\s+$/g,F3=/^[-+]0x[0-9a-f]+$/i,B3=/^0b[01]+$/i,P3=/^0o[0-7]+$/i,U3=parseInt,q3="object"==typeof Nt&&Nt&&Nt.Object===Object&&Nt,H3="object"==typeof self&&self&&self.Object===Object&&self,V3=q3||H3||Function("return this")(),G3=Object.prototype.toString,$3=Math.max,Z3=Math.min,Yu=function(){return V3.Date.now()};function Ku(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function L1(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&G3.call(e)==I3}(e))return R1;if(Ku(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ku(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(M3,"");var n=B3.test(e);return n||P3.test(e)?U3(e.slice(2),n?2:8):F3.test(e)?R1:+e}var K3=function(e,t,n){var r,o,a,s,i,l,u=0,c=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(_){var S=r,R=o;return r=o=void 0,u=_,s=e.apply(R,S)}function C(_){var S=_-l;return void 0===l||S>=t||S<0||p&&_-u>=a}function h(){var _=Yu();if(C(_))return g(_);i=setTimeout(h,function(_){var q=t-(_-l);return p?Z3(q,a-(_-u)):q}(_))}function g(_){return i=void 0,d&&r?m(_):(r=o=void 0,s)}function N(){var _=Yu(),S=C(_);if(r=arguments,o=this,l=_,S){if(void 0===i)return function(_){return u=_,i=setTimeout(h,t),c?m(_):s}(l);if(p)return i=setTimeout(h,t),m(l)}return void 0===i&&(i=setTimeout(h,t)),s}return t=L1(t)||0,Ku(n)&&(c=!!n.leading,a=(p="maxWait"in n)?$3(L1(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),N.cancel=function(){void 0!==i&&clearTimeout(i),u=0,r=l=o=i=void 0},N.flush=function(){return void 0===i?s:g(Yu())},N};const X3=jo(K3);function Q3({settings:e={},history:t=[]}){const n=Z.useRef(null),[r,o]=Z.useState(!0),a=Z.useRef(null);Z.useEffect((()=>{l()}),[t]);const i=X3((()=>{if(!a.current)return;const c=a.current.scrollHeight-a.current.scrollTop-a.current.clientHeight<=40;o(c)}),100);Z.useEffect((()=>{!function(){if(!a.current)return null;const c=a.current;if(!c)return null;c.addEventListener("scroll",i)}()}),[]);const l=()=>{a.current&&a.current.scrollTo({top:a.current.scrollHeight,behavior:"smooth"})};return 0===t.length?w.jsx("div",{className:"pb-[100px] pt-[5px] rounded-lg px-2 h-full mt-2 gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll",children:w.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:w.jsx("p",{className:"text-slate-400 text-sm font-base py-4 text-center",children:(null==e?void 0:e.greeting)??"Send a chat to get started."})})}):w.jsxs("div",{className:"pb-[30px] pt-[5px] rounded-lg px-2 h-full gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll md:max-h-[500px]",id:"chat-history",ref:a,children:[t.map(((u,c)=>{const p=c===t.length-1;return c===t.length-1&&"assistant"===u.role&&u.animate?w.jsx(O3,{ref:p?n:null,uuid:u.uuid,reply:u.content,pending:u.pending,sources:u.sources,error:u.error,closed:u.closed},u.uuid):w.jsx(R3,{ref:p?n:null,message:u.content,sentAt:u.sentAt||Date.now()/1e3,role:u.role,sources:u.sources,chatId:u.chatId,feedbackScore:u.feedbackScore,error:u.error},c)})),!r&&w.jsx("div",{className:"fixed bottom-[10rem] right-[50px] z-50 cursor-pointer animate-pulse",children:w.jsx("div",{className:"flex flex-col items-center",children:w.jsx("div",{className:"p-1 rounded-full border border-white/10 bg-black/20 hover:bg-black/50",children:w.jsx(I2,{weight:"bold",className:"text-white/50 w-5 h-5",onClick:l,id:"scroll-to-bottom-button","aria-label":"Scroll to bottom"})})})})]})}function J3(){return w.jsx("div",{className:"h-full w-full relative",children:w.jsx("div",{className:"h-full max-h-[82vh] pb-[100px] pt-[5px] bg-gray-100 rounded-lg px-2 h-full mt-2 gap-y-2 overflow-y-scroll flex flex-col justify-start no-scroll",children:w.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:w.jsx(nu,{size:14,className:"text-slate-400 animate-spin"})})})})}function e8({message:e,submit:t,onChange:n,inputDisabled:r,buttonDisabled:o}){const a=Z.useRef(null),s=Z.useRef(null),[i,l]=Z.useState(!1);Z.useEffect((()=>{!r&&s.current&&s.current.focus(),c()}),[r]);const c=()=>{s.current&&(s.current.style.height="auto")},d=m=>{const A=m.target;A.style.height="auto",A.style.height=0!==m.target.value.length?A.scrollHeight+"px":"auto"};return w.jsx("div",{className:"w-full sticky bottom-0 z-10 flex justify-center items-center px-5 bg-white",children:w.jsx("form",{onSubmit:m=>{l(!1),t(m)},className:"flex flex-col gap-y-1 rounded-t-lg w-full items-center justify-center",children:w.jsx("div",{className:"flex items-center w-full",children:w.jsx("div",{className:"bg-white border-[1.5px] border-[#22262833]/20 rounded-2xl flex flex-col px-4 overflow-hidden w-full",children:w.jsxs("div",{className:"flex items-center w-full",children:[w.jsx("textarea",{ref:s,onKeyUp:d,onKeyDown:m=>{13==m.keyCode&&(m.shiftKey||t(m))},onChange:n,required:!0,disabled:r,onFocus:()=>l(!0),onBlur:m=>{l(!1),d(m)},value:e,className:"cursor-text max-h-[100px] text-[14px] mx-2 py-2 w-full text-black bg-transparent placeholder:text-slate-800/60 resize-none active:outline-none focus:outline-none flex-grow",placeholder:"Send a message",id:"message-input"}),w.jsxs("button",{ref:a,type:"submit",disabled:o,className:"inline-flex justify-center rounded-2xl cursor-pointer text-black group ml-4",id:"send-message-button","aria-label":"Send message",children:[o?w.jsx(nu,{className:"w-4 h-4 animate-spin"}):w.jsx(pp,{size:24,className:"my-3 text-[#22262899]/60 group-hover:text-[#22262899]/90",weight:"fill"}),w.jsx("span",{className:"sr-only",children:"Send message"})]})]})})})})})}function n8({sessionId:e,settings:t,knownHistory:n=[]}){const[r,o]=Z.useState(""),[a,s]=Z.useState(!1),[i,l]=Z.useState(n);Z.useEffect((()=>{n.length!==i.length&&l([...n])}),[n]);return Z.useEffect((()=>{!0===a&&async function(){const d=i.length>0?i[i.length-1]:null,m=i.length>0?i.slice(0,-1):[];var A=[...m];if(!d||null==d||!d.userMessage)return s(!1),!1;await ds.streamChat(e,t,d.userMessage,(b=>function(e,t,n,r,o){const{uuid:a,textResponse:s,type:i,sources:l=[],error:u,close:c}=e;if("abort"===i)t(!1),n([...r,{uuid:a,content:s,role:"assistant",sources:l,closed:!0,error:u,animate:!1,pending:!1}]),o.push({uuid:a,content:s,role:"assistant",sources:l,closed:!0,error:u,animate:!1,pending:!1});else if("textResponse"===i)t(!1),n([...r,{uuid:a,content:s,role:"assistant",sources:l,closed:c,error:u,animate:!c,pending:!1}]),o.push({uuid:a,content:s,role:"assistant",sources:l,closed:c,error:u,animate:!c,pending:!1});else if("textResponseChunk"===i){const p=o.findIndex((d=>d.uuid===a));if(-1!==p){const d={...o[p]},m={...d,content:d.content+s,sources:l,error:u,closed:c,animate:!c,pending:!1};o[p]=m}else o.push({uuid:a,sources:l,error:u,content:s,role:"assistant",closed:c,animate:!c,pending:!1});n([...o])}}(b,s,l,m,A)))}()}),[a,i]),w.jsxs("div",{className:"h-full w-full flex flex-col",children:[w.jsx("div",{className:"flex-grow overflow-y-auto",children:w.jsx(Q3,{settings:t,history:i})}),w.jsx(e8,{message:r,submit:async p=>{if(p.preventDefault(),!r||""===r)return!1;const d=[...i,{content:r,role:"user"},{content:"",role:"assistant",pending:!0,userMessage:r,animate:!0}];l(d),o(""),s(!0)},onChange:p=>{o(p.target.value)},inputDisabled:a,buttonDisabled:a})]})}function O1({settings:e}){return e.noSponsor?null:w.jsx("div",{className:"flex w-full items-center justify-center",children:w.jsx("a",{href:e.sponsorLink??"#",target:"_blank",rel:"noreferrer",className:"text-xs text-[#0119D9] hover:text-[#0119D9]/80 hover:underline",children:e.sponsorText})})}function r8({setChatHistory:e,settings:t,sessionId:n}){return w.jsx("div",{className:"w-full flex justify-center",children:w.jsx("button",{className:"text-sm text-[#7A7D7E] hover:text-[#7A7D7E]/80 hover:underline",onClick:()=>(async()=>{await ds.resetEmbedChatSession(t,n),e([])})(),children:"Reset Chat"})})}function o8({closeChat:e,settings:t,sessionId:n}){const{chatHistory:r,setChatHistory:o,loading:a}=function(e=null,t=null){const[n,r]=Z.useState(!0),[o,a]=Z.useState([]);return Z.useEffect((()=>{!async function(){if(t&&e)try{const i=await ds.embedSessionHistory(e,t);a(i),r(!1)}catch(i){console.error("Error fetching historical chats:",i),r(!1)}}()}),[t,e]),{chatHistory:o,setChatHistory:a,loading:n}}(t,n);return a?w.jsxs("div",{className:"flex flex-col h-full",children:[w.jsx(yp,{sessionId:n,settings:t,iconUrl:t.brandImageUrl,closeChat:e,setChatHistory:o}),w.jsx(J3,{}),w.jsxs("div",{className:"pt-4 pb-2 h-fit gap-y-1",children:[w.jsx(ub,{}),w.jsx(O1,{settings:t})]})]}):(null==document||document.addEventListener("click",(function(e){var r;const t=e.target.closest("[data-code-snippet]"),n=null==(r=null==t?void 0:t.dataset)?void 0:r.code;if(!n)return!1;!function(e){var o,a,s;const t=document.querySelector(`[data-code="${e}"]`);if(!t)return!1;const n=null==(s=null==(a=null==(o=t.parentElement)?void 0:o.parentElement)?void 0:a.querySelector("pre:first-of-type"))?void 0:s.innerText;if(!n)return!1;window.navigator.clipboard.writeText(n),t.classList.add("text-green-500");const r=t.innerHTML;t.innerText="Copied!",t.setAttribute("disabled",!0),setTimeout((()=>{t.classList.remove("text-green-500"),t.innerHTML=r,t.removeAttribute("disabled")}),2500)}(n)})),w.jsxs("div",{className:"flex flex-col h-full",children:[w.jsx(yp,{sessionId:n,settings:t,iconUrl:t.brandImageUrl,closeChat:e,setChatHistory:o}),w.jsx("div",{className:"flex-grow overflow-y-auto",children:w.jsx(n8,{sessionId:n,settings:t,knownHistory:r})}),w.jsxs("div",{className:"mt-4 pb-4 h-fit gap-y-2 z-10",children:[w.jsx(O1,{settings:t}),w.jsx(r8,{setChatHistory:o,settings:t,sessionId:n})]})]}))}const k1=document.createElement("div");document.body.appendChild(k1),js.createRoot(k1).render(w.jsx(f.StrictMode,{children:w.jsx((function(){const{isChatOpen:e,toggleOpenChat:t}=function(){var r;const[e,t]=Z.useState(!(null==(r=null==window?void 0:window.localStorage)||!r.getItem(tu))||!1);return{isChatOpen:e,toggleOpenChat:function(o){!0===o&&window.localStorage.setItem(tu,"1"),!1===o&&window.localStorage.removeItem(tu),t(o)}}}(),n=function(){const[e,t]=Z.useState({loaded:!1,...v2});return Z.useEffect((()=>{!function(){if(!document)return!1;if(!Te.settings.baseApiUrl||!Te.settings.embedId)throw new Error("[AnythingLLM Embed Module::Abort] - Invalid script tag setup detected. Missing required parameters for boot!");t({...v2,...Te.settings,loaded:!0})}()}),[document]),e}(),r=y2();if(Z.useEffect((()=>{"on"===n.openOnLoad&&t(!0)}),[n.loaded]),!n.loaded)return null;const o={"bottom-left":"bottom-0 left-0 ml-4","bottom-right":"bottom-0 right-0 mr-4","top-left":"top-0 left-0 ml-4 mt-4","top-right":"top-0 right-0 mr-4 mt-4"},a=n.position||"bottom-right",s=n.windowWidth?`max-w-[${n.windowWidth}]`:"max-w-[400px]",i=n.windowHeight?`max-h-[${n.windowHeight}]`:"max-h-[700px]";return w.jsxs(w.Fragment,{children:[w.jsx(wh,{}),w.jsx("div",{className:"fixed inset-0 z-50 "+(e?"block":"hidden"),children:w.jsx("div",{className:`${i} ${s} h-full w-full bg-white fixed bottom-0 right-0 mb-4 md:mr-4 rounded-2xl border border-gray-300 shadow-[0_4px_14px_rgba(0,0,0,0.25)] ${o[a]}`,id:"anything-llm-chat",children:e&&w.jsx(o8,{closeChat:()=>t(!1),settings:n,sessionId:r})})}),!e&&w.jsx("div",{className:`fixed bottom-0 ${o[a]} mb-4 z-50`,children:w.jsx(XA,{settings:n,isOpen:e,toggleOpen:()=>t(!0)})})]})}),{})}));const Kn=Object.assign({},(null==(I1=null==document?void 0:document.currentScript)?void 0:I1.dataset)||{}),Te={settings:Kn,USER_STYLES:`bg-[${(null==Kn?void 0:Kn.userBgColor)??"#3DBEF5"}] text-white rounded-t-[18px] rounded-bl-[18px] rounded-br-[4px] mx-[20px]`,ASSISTANT_STYLES:`bg-[${(null==Kn?void 0:Kn.assistantBgColor)??"#FFFFFF"}] text-[#222628] rounded-t-[18px] rounded-br-[18px] rounded-bl-[4px] mr-[37px] ml-[9px]`};Jn.embedderSettings=Te,Object.defineProperty(Jn,Symbol.toStringTag,{value:"Module"})})),(()=>{var h,Ob,re,du,xb=Object.create,li=Object.defineProperty,kb=Object.getOwnPropertyDescriptor,Sb=Object.getOwnPropertyNames,Cb=Object.getPrototypeOf,Ab=Object.prototype.hasOwnProperty,uu=i=>li(i,"__esModule",{value:!0}),fu=i=>{if("undefined"!=typeof require)return require(i);throw new Error('Dynamic require of "'+i+'" is not supported')},C=(i,e)=>()=>(i&&(e=i(i=0)),e),v=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Ae=(i,e)=>{for(var t in uu(i),e)li(i,t,{get:e[t],enumerable:!0})},K=i=>((i,e,t)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let r of Sb(e))!Ab.call(i,r)&&"default"!==r&&li(i,r,{get:()=>e[r],enumerable:!(t=kb(e,r))||t.enumerable});return i})(uu(li(null!=i?xb(Cb(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i),l=C((()=>{h={platform:"",env:{},versions:{node:"14.17.6"}}})),je=C((()=>{l(),Ob=0,re={readFileSync:i=>self[i]||"",statSync:()=>({mtimeMs:Ob++}),promises:{readFile:i=>Promise.resolve(self[i]||"")}}})),Qn=v(((XO,pu)=>{l();var cu=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(let[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,r]=e;this.cache.has(t)||!1===this._deleteIfExpired(t,r)&&(yield e)}for(let e of this.cache){let[t,r]=e;!1===this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=(this.maxAge===1/0?void 0:Date.now()+this.maxAge)}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:r}):this._set(e,{value:t,expiry:r})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,r]=e;!1===this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(let e of this.oldCache){let[t,r]=e;this.cache.has(t)||!1===this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let r=e[t],[n,a]=r;!1===this._deleteIfExpired(n,a)&&(yield[n,a.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let r=e[t],[n,a]=r;this.cache.has(n)||!1===this._deleteIfExpired(n,a)&&(yield[n,a.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};pu.exports=cu})),hu=C((()=>{l(),du=i=>i&&i._hash}));function ui(i){return du(i,{ignoreUnknown:!0})}var mu=C((()=>{l(),hu()}));function Xe(i){if("0"===(i=`${i}`))return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(i))return i.replace(/^[+-]?/,(t=>"-"===t?"":"-"));let e=["var","calc","min","max","clamp"];for(let t of e)if(i.includes(`${t}(`))return`calc(${i} * -1)`}var gu,fi=C((()=>{l()})),yu=C((()=>{l(),gu=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","content","forcedColorAdjust"]}));var bu=C((()=>{l()})),vu={};Ae(vu,{default:()=>_e});var _e,ci=C((()=>{l(),_e=new Proxy({},{get:()=>String})}));function Jn(i,e,t){void 0!==h&&h.env.JEST_WORKER_ID||t&&xu.has(t)||(t&&xu.add(t),console.warn(""),e.forEach((r=>console.warn(i,"-",r))))}function Xn(i){return _e.dim(i)}var xu,F,Oe=C((()=>{l(),ci(),xu=new Set,F={info(i,e){Jn(_e.bold(_e.cyan("info")),...Array.isArray(i)?[i]:[e,i])},warn(i,e){["content-problems"].includes(i)||Jn(_e.bold(_e.yellow("warn")),...Array.isArray(i)?[i]:[e,i])},risk(i,e){Jn(_e.bold(_e.magenta("risk")),...Array.isArray(i)?[i]:[e,i])}}})),ku={};function sr({version:i,from:e,to:t}){F.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${i}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}Ae(ku,{default:()=>Kn});var Kn,Zn=C((()=>{l(),Oe(),Kn={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return sr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return sr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return sr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return sr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return sr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}}));function es(i,...e){for(let t of e){for(let r in t)i?.hasOwnProperty?.(r)||(i[r]=t[r]);for(let r of Object.getOwnPropertySymbols(t))i?.hasOwnProperty?.(r)||(i[r]=t[r])}return i}var Su=C((()=>{l()}));function Ke(i){if(Array.isArray(i))return i;if(i.split("[").length-1!==i.split("]").length-1)throw new Error(`Path is invalid. Has unbalanced brackets: ${i}`);return i.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var pi=C((()=>{l()}));function Z(i,e){return di.future.includes(e)?"all"===i.future||(i?.future?.[e]??Cu[e]??!1):!!di.experimental.includes(e)&&("all"===i.experimental||(i?.experimental?.[e]??Cu[e]??!1))}function Au(i){return"all"===i.experimental?di.experimental:Object.keys(i?.experimental??{}).filter((e=>di.experimental.includes(e)&&i.experimental[e]))}var Cu,di,ze=C((()=>{l(),ci(),Oe(),Cu={optimizeUniversalDefaults:!1,generalizedModifiers:!0,get disableColorOpacityUtilitiesByDefault(){return!1},get relativeContentPathsByDefault(){return!1}},di={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}}));var Eu=C((()=>{l(),ze(),Oe()}));function ne(i){if("[object Object]"!==Object.prototype.toString.call(i))return!1;let e=Object.getPrototypeOf(i);return null===e||null===Object.getPrototypeOf(e)}var kt=C((()=>{l()}));function Ze(i){return Array.isArray(i)?i.map((e=>Ze(e))):"object"==typeof i&&null!==i?Object.fromEntries(Object.entries(i).map((([e,t])=>[e,Ze(t)]))):i}var hi=C((()=>{l()}));function mt(i){return i.replace(/\\,/g,"\\2c ")}var ts,mi=C((()=>{l()})),Tu=C((()=>{l(),ts={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}));function ar(i,{loose:e=!1}={}){if("string"!=typeof i)return null;if("transparent"===(i=i.trim()))return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(i in ts)return{mode:"rgb",color:ts[i].map((a=>a.toString()))};let t=i.replace(Tb,((a,s,o,u,c)=>["#",s,s,o,o,u,u,c?c+c:""].join(""))).match(Eb);if(null!==t)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map((a=>a.toString())),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let r=i.match(Pb)??i.match(Db);if(null===r)return null;let n=[r[2],r[3],r[4]].filter(Boolean).map((a=>a.toString()));return 2===n.length&&n[0].startsWith("var(")?{mode:r[1],color:[n[0]],alpha:n[1]}:!e&&3!==n.length||n.length<3&&!n.some((a=>/^var\(.*?\)$/.test(a)))?null:{mode:r[1],color:n,alpha:r[5]?.toString?.()}}function rs({mode:i,color:e,alpha:t}){let r=void 0!==t;return"rgba"===i||"hsla"===i?`${i}(${e.join(", ")}${r?`, ${t}`:""})`:`${i}(${e.join(" ")}${r?` / ${t}`:""})`}var Eb,Tb,et,gi,Pu,tt,Pb,Db,is=C((()=>{l(),Tu(),Eb=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,Tb=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,et=/(?:\d+|\d*\.\d+)%?/,gi=/(?:\s*,\s*|\s+)/,Pu=/\s*[,/]\s*/,tt=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Pb=new RegExp(`^(rgba?)\\(\\s*(${et.source}|${tt.source})(?:${gi.source}(${et.source}|${tt.source}))?(?:${gi.source}(${et.source}|${tt.source}))?(?:${Pu.source}(${et.source}|${tt.source}))?\\s*\\)$`),Db=new RegExp(`^(hsla?)\\(\\s*((?:${et.source})(?:deg|rad|grad|turn)?|${tt.source})(?:${gi.source}(${et.source}|${tt.source}))?(?:${gi.source}(${et.source}|${tt.source}))?(?:${Pu.source}(${et.source}|${tt.source}))?\\s*\\)$`)}));function De(i,e,t){if("function"==typeof i)return i({opacityValue:e});let r=ar(i,{loose:!0});return null===r?t:rs({...r,alpha:e})}function ae({color:i,property:e,variable:t}){let r=[].concat(e);if("function"==typeof i)return{[t]:"1",...Object.fromEntries(r.map((a=>[a,i({opacityVariable:t,opacityValue:`var(${t})`})])))};let n=ar(i);return null===n||void 0!==n.alpha?Object.fromEntries(r.map((a=>[a,i]))):{[t]:"1",...Object.fromEntries(r.map((a=>[a,rs({...n,alpha:`var(${t})`})])))}}var or=C((()=>{l(),is()}));function oe(i,e){let t=[],r=[],n=0,a=!1;for(let s=0;s{l()}));function yi(i){return oe(i,",").map((t=>{let r=t.trim(),n={raw:r},a=r.split(qb),s=new Set;for(let o of a)Du.lastIndex=0,!s.has("KEYWORD")&&Ib.has(o)?(n.keyword=o,s.add("KEYWORD")):Du.test(o)?s.has("X")?s.has("Y")?s.has("BLUR")?s.has("SPREAD")||(n.spread=o,s.add("SPREAD")):(n.blur=o,s.add("BLUR")):(n.y=o,s.add("Y")):(n.x=o,s.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=void 0!==n.x&&void 0!==n.y,n}))}function Iu(i){return i.map((e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw)).join(", ")}var Ib,qb,Du,ns=C((()=>{l(),St(),Ib=new Set(["inset","inherit","initial","revert","unset"]),qb=/\ +(?![^(]*\))/g,Du=/^-?(\d+|\.\d+)(.*?)$/g}));function ss(i){return Rb.some((e=>new RegExp(`^${e}\\(.*\\)`).test(i)))}function N(i,e=null,t=!0){let r=e&&Mb.has(e.property);return i.startsWith("--")&&!r?`var(${i})`:i.includes("url(")?i.split(/(url\(.*?\))/g).filter(Boolean).map((n=>/^url\(.*?\)$/.test(n)?n:N(n,e,!1))).join(""):(i=i.replace(/([^\\])_+/g,((n,a)=>a+" ".repeat(n.length-1))).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(i=i.trim()),i=function(i){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient"];return i.replace(/(calc|min|max|clamp)\(.+\)/g,(r=>{let n="";function a(){let s=n.trimEnd();return s[s.length-1]}for(let s=0;sr[s+p]===d))},u=function(f){let d=1/0;for(let m of f){let w=r.indexOf(m,s);-1!==w&&wo(f)))){let f=t.find((d=>o(d)));n+=f,s+=f.length-1}else e.some((f=>o(f)))?n+=u([")"]):o("[")?n+=u(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(a())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")}))}(i),i)}function as(i){return i.startsWith("url(")}function os(i){return!isNaN(Number(i))||ss(i)}function lr(i){return i.endsWith("%")&&os(i.slice(0,-1))||ss(i)}function ur(i){return"0"===i||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Nb}$`).test(i)||ss(i)}function qu(i){return Lb.has(i)}function Ru(i){let e=yi(N(i));for(let t of e)if(!t.valid)return!1;return!0}function Mu(i){let e=0;return!!oe(i,"_").every((r=>!!(r=N(r)).startsWith("var(")||null!==ar(r,{loose:!0})&&(e++,!0)))&&e>0}function Bu(i){let e=0;return!!oe(i,",").every((r=>!!(r=N(r)).startsWith("var(")||!!(as(r)||function(i){i=N(i);for(let e of $b)if(i.startsWith(`${e}(`))return!0;return!1}(r)||["element(","image(","cross-fade(","image-set("].some((n=>r.startsWith(n))))&&(e++,!0)))&&e>0}function Fu(i){let e=0;return!!oe(i,"_").every((r=>!!(r=N(r)).startsWith("var(")||!!(zb.has(r)||ur(r)||lr(r))&&(e++,!0)))&&e>0}function Nu(i){let e=0;return!!oe(i,",").every((r=>!!(r=N(r)).startsWith("var(")||!(r.includes(" ")&&!/(['"])([^"']+)\1/g.test(r)||/^\d/g.test(r))&&(e++,!0)))&&e>0}function Lu(i){return Vb.has(i)}function $u(i){return Ub.has(i)}function ju(i){return Wb.has(i)}var Rb,Mb,Nb,Lb,$b,zb,Vb,Ub,Wb,fr=C((()=>{l(),is(),ns(),St(),Rb=["min","max","clamp","calc"],Mb=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","scroll-timeline","animation-timeline","view-timeline"]),Nb=`(?:${["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"].join("|")})`,Lb=new Set(["thin","medium","thick"]),$b=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]),zb=new Set(["center","top","right","bottom","left"]),Vb=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),Ub=new Set(["xx-small","x-small","small","medium","large","x-large","x-large","xxx-large"]),Wb=new Set(["larger","smaller"])}));function zu(i){let e=["cover","contain"];return oe(i,",").every((t=>{let r=oe(t,"_").filter(Boolean);return!(1!==r.length||!e.includes(r[0]))||(1===r.length||2===r.length)&&r.every((n=>ur(n)||lr(n)||"auto"===n))}))}var Vu=C((()=>{l(),fr(),St()}));function Uu(i,e){i.walkClasses((t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=mt(t.raws.value))}))}function Wu(i,e){if(!rt(i))return;let t=i.slice(1,-1);return e(t)?N(t):void 0}function wi(i,e={},{validate:t=(()=>!0)}={}){let r=e.values?.[i];return void 0!==r?r:e.supportsNegativeValues&&i.startsWith("-")?function(i,e={},t){let r=e[i];if(void 0!==r)return Xe(r);if(rt(i)){let n=Wu(i,t);return void 0===n?void 0:Xe(n)}}(i.slice(1),e.values,t):Wu(i,t)}function rt(i){return i.startsWith("[")&&i.endsWith("]")}function Gu(i){let e=i.lastIndexOf("/"),t=i.lastIndexOf("[",e),r=i.indexOf("]",e);return"]"===i[e-1]||"["===i[e+1]||-1!==t&&-1!==r&&t")){let e=i;return({opacityValue:t=1})=>e.replace("",t)}return i}function Hu(i){return N(i.slice(1,-1))}function Hb(i,e={},{tailwindConfig:t={}}={}){if(void 0!==e.values?.[i])return Ct(e.values?.[i]);let[r,n]=Gu(i);if(void 0!==n){let a=e.values?.[r]??(rt(r)?r.slice(1,-1):void 0);return void 0===a?void 0:(a=Ct(a),rt(n)?De(a,Hu(n)):void 0===t.theme?.opacity?.[n]?void 0:De(a,t.theme.opacity[n]))}return wi(i,e,{validate:Mu})}function Yb(i,e={}){return e.values?.[i]}function me(i){return(e,t)=>wi(e,t,{validate:i})}function us(i,e,t,r){if(t.values&&e in t.values)for(let{type:a}of i??[]){let s=ls[a](e,t,{tailwindConfig:r});if(void 0!==s)return[s,a,null]}if(rt(e)){let a=e.slice(1,-1),[s,o]=function(i,e){let t=i.indexOf(e);return-1===t?[void 0,i]:[i.slice(0,t),i.slice(t+1)]}(a,":");if(/^[\w-_]+$/g.test(s)){if(void 0!==s&&!Yu.includes(s))return[]}else o=a;if(o.length>0&&Yu.includes(s))return[wi(`[${o}]`,t),s,null]}let n=fs(i,e,t,r);for(let a of n)return a;return[]}function*fs(i,e,t,r){let n=Z(r,"generalizedModifiers"),[a,s]=Gu(e);if(n&&null!=t.modifiers&&("any"===t.modifiers||"object"==typeof t.modifiers&&(s&&rt(s)||s in t.modifiers))||(a=e,s=void 0),void 0!==s&&""===a&&(a="DEFAULT"),void 0!==s&&"object"==typeof t.modifiers){let u=t.modifiers?.[s]??null;null!==u?s=u:rt(s)&&(s=Hu(s))}for(let{type:u}of i??[]){let c=ls[u](a,t,{tailwindConfig:r});void 0!==c&&(yield[c,u,s??null])}}var ls,Yu,cr=C((()=>{l(),mi(),or(),fr(),fi(),Vu(),ze(),ls={any:wi,color:Hb,url:me(as),image:me(Bu),length:me(ur),percentage:me(lr),position:me(Fu),lookup:Yb,"generic-name":me(Lu),"family-name":me(Nu),number:me(os),"line-width":me(qu),"absolute-size":me($u),"relative-size":me(ju),shadow:me(Ru),size:me(zu)},Yu=Object.keys(ls)}));function L(i){return"function"==typeof i?i({}):i}var cs=C((()=>{l()}));function At(i){return"function"==typeof i}function pr(i,...e){let t=e.pop();for(let r of e)for(let n in r){let a=t(i[n],r[n]);void 0===a?ne(i[n])&&ne(r[n])?i[n]=pr({},i[n],r[n],t):i[n]=r[n]:i[n]=a}return i}function Xb(i){return i.reduce(((e,{extend:t})=>pr(e,t,((r,n)=>void 0===r?[n]:Array.isArray(r)?[n,...r]:[n,r]))),{})}function Kb(i){return{...i.reduce(((e,t)=>es(e,t)),{}),extend:Xb(i)}}function Qu(i,e){return Array.isArray(i)&&ne(i[0])?i.concat(e):Array.isArray(e)&&ne(e[0])&&ne(i)?[i,...e]:Array.isArray(e)?e:void 0}function Zb({extend:i,...e}){return pr(e,i,((t,r)=>At(t)||r.some(At)?(n,a)=>pr({},...[t,...r].map((s=>function(i,...e){return At(i)?i(...e):i}(s,n,a))),Qu):pr({},t,...r,Qu)))}function t0(i){let e=(t,r)=>{for(let n of function*(i){let e=Ke(i);if(0===e.length||(yield e,Array.isArray(i)))return;let r=i.match(/^(.*?)\s*\/\s*([^/]+)$/);if(null!==r){let[,n,a]=r,s=Ke(n);s.alpha=a,yield s}}(t)){let a=0,s=i;for(;null!=s&&a(t[r]=At(i[r])?i[r](e,ps):i[r],t)),{})}function Ju(i){let e=[];return i.forEach((t=>{e=[...e,t];let r=t?.plugins??[];0!==r.length&&r.forEach((n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...Ju([n?.config??{}])]}))})),e}function r0(i){return[...i].reduceRight(((t,r)=>At(r)?r({corePlugins:t}):function(i,e){return void 0===i?e:Array.isArray(i)?i:[...new Set(e.filter((r=>!1!==i&&!1!==i[r])).concat(Object.keys(i).filter((r=>!1!==i[r]))))]}(r,t)),gu)}function i0(i){return[...i].reduceRight(((t,r)=>[...t,...r]),[])}function ds(i){let e=[...Ju(i),{prefix:"",important:!1,separator:":"}];return function(i){(()=>{if(i.purge||!i.content||!Array.isArray(i.content)&&("object"!=typeof i.content||null===i.content))return!1;if(Array.isArray(i.content))return i.content.every((t=>"string"==typeof t||!("string"!=typeof t?.raw||t?.extension&&"string"!=typeof t?.extension)));if("object"==typeof i.content&&null!==i.content){if(Object.keys(i.content).some((t=>!["files","relative","extract","transform"].includes(t))))return!1;if(Array.isArray(i.content.files)){if(!i.content.files.every((t=>"string"==typeof t||!("string"!=typeof t?.raw||t?.extension&&"string"!=typeof t?.extension))))return!1;if("object"==typeof i.content.extract){for(let t of Object.values(i.content.extract))if("function"!=typeof t)return!1}else if(void 0!==i.content.extract&&"function"!=typeof i.content.extract)return!1;if("object"==typeof i.content.transform){for(let t of Object.values(i.content.transform))if("function"!=typeof t)return!1}else if(void 0!==i.content.transform&&"function"!=typeof i.content.transform)return!1;if("boolean"!=typeof i.content.relative&&void 0!==i.content.relative)return!1}return!0}return!1})()||F.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),i.safelist=(()=>{let{content:t,purge:r,safelist:n}=i;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(r?.safelist)?r.safelist:Array.isArray(r?.options?.safelist)?r.options.safelist:[]})(),i.blocklist=(()=>{let{blocklist:t}=i;if(Array.isArray(t)){if(t.every((r=>"string"==typeof r)))return t;F.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),"function"==typeof i.prefix?(F.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),i.prefix=""):i.prefix=i.prefix??"",i.content={relative:(()=>{let{content:t}=i;return t?.relative?t.relative:Z(i,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:r}=i;return Array.isArray(r)?r:Array.isArray(r?.content)?r.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=i.purge?.extract?i.purge.extract:i.content?.extract?i.content.extract:i.purge?.extract?.DEFAULT?i.purge.extract.DEFAULT:i.content?.extract?.DEFAULT?i.content.extract.DEFAULT:i.purge?.options?.extractors?i.purge.options.extractors:i.content?.options?.extractors?i.content.options.extractors:{},r={},n=i.purge?.options?.defaultExtractor?i.purge.options.defaultExtractor:i.content?.options?.defaultExtractor?i.content.options.defaultExtractor:void 0;if(void 0!==n&&(r.DEFAULT=n),"function"==typeof t)r.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:a,extractor:s}of t??[])for(let o of a)r[o]=s;else"object"==typeof t&&null!==t&&Object.assign(r,t);return r})(),transform:(()=>{let t=i.purge?.transform?i.purge.transform:i.content?.transform?i.content.transform:i.purge?.transform?.DEFAULT?i.purge.transform.DEFAULT:i.content?.transform?.DEFAULT?i.content.transform.DEFAULT:{},r={};return"function"==typeof t&&(r.DEFAULT=t),"object"==typeof t&&null!==t&&Object.assign(r,t),r})()};for(let t of i.content.files)if("string"==typeof t&&/{([^,]*?)}/g.test(t)){F.warn("invalid-glob-braces",[`The glob pattern ${Xn(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${Xn(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return i}(es({theme:t0(Zb(Kb(e.map((t=>t?.theme??{}))))),corePlugins:r0(e.map((t=>t.corePlugins))),plugins:i0(i.map((t=>t?.plugins??[])))},...e))}var ps,Xu=C((()=>{l(),fi(),yu(),bu(),Zn(),Su(),pi(),Eu(),kt(),hi(),cr(),or(),cs(),ps={colors:Kn,negative:i=>Object.keys(i).filter((e=>"0"!==i[e])).reduce(((e,t)=>{let r=Xe(i[t]);return void 0!==r&&(e[`-${t}`]=r),e}),{}),breakpoints:i=>Object.keys(i).filter((e=>"string"==typeof i[e])).reduce(((e,t)=>({...e,[`screen-${t}`]:i[t]})),{})}})),bi=v(((eT,Ku)=>{l(),Ku.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:i})=>({...i("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:i})=>i("blur"),backdropBrightness:({theme:i})=>i("brightness"),backdropContrast:({theme:i})=>i("contrast"),backdropGrayscale:({theme:i})=>i("grayscale"),backdropHueRotate:({theme:i})=>i("hueRotate"),backdropInvert:({theme:i})=>i("invert"),backdropOpacity:({theme:i})=>i("opacity"),backdropSaturate:({theme:i})=>i("saturate"),backdropSepia:({theme:i})=>i("sepia"),backgroundColor:({theme:i})=>i("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:i})=>i("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:i})=>({...i("colors"),DEFAULT:i("colors.gray.200","currentColor")}),borderOpacity:({theme:i})=>i("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:i})=>({...i("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:i})=>i("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:i})=>i("colors"),colors:({colors:i})=>({inherit:i.inherit,current:i.current,transparent:i.transparent,black:i.black,white:i.white,slate:i.slate,gray:i.gray,zinc:i.zinc,neutral:i.neutral,stone:i.stone,red:i.red,orange:i.orange,amber:i.amber,yellow:i.yellow,lime:i.lime,green:i.green,emerald:i.emerald,teal:i.teal,cyan:i.cyan,sky:i.sky,blue:i.blue,indigo:i.indigo,violet:i.violet,purple:i.purple,fuchsia:i.fuchsia,pink:i.pink,rose:i.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:i})=>i("borderColor"),divideOpacity:({theme:i})=>i("borderOpacity"),divideWidth:({theme:i})=>i("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:i})=>({none:"none",...i("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:i})=>i("spacing"),gradientColorStops:({theme:i})=>i("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:i})=>({auto:"auto",...i("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:i})=>({...i("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:i,breakpoints:e})=>({...i("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(i("screens"))}),minHeight:({theme:i})=>({...i("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:i})=>({...i("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:i})=>i("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:i})=>i("spacing"),placeholderColor:({theme:i})=>i("colors"),placeholderOpacity:({theme:i})=>i("opacity"),ringColor:({theme:i})=>({DEFAULT:i("colors.blue.500","#3b82f6"),...i("colors")}),ringOffsetColor:({theme:i})=>i("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:i})=>({DEFAULT:"0.5",...i("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:i})=>({...i("spacing")}),scrollPadding:({theme:i})=>i("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:i})=>({...i("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:i})=>({none:"none",...i("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:i})=>i("colors"),textDecorationColor:({theme:i})=>i("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:i})=>({...i("spacing")}),textOpacity:({theme:i})=>i("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:i})=>({...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:i})=>({auto:"auto",...i("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}}));function vi(i){let e=(i?.presets??[Zu.default]).slice().reverse().flatMap((n=>vi(n instanceof Function?n():n))),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},r=Object.keys(t).filter((n=>Z(i,n))).map((n=>t[n]));return[i,...r,...e]}var Zu,ef=C((()=>{l(),Zu=K(bi()),ze()})),tf={};function dr(...i){let[,...e]=vi(i[0]);return ds([...i,...e])}Ae(tf,{default:()=>dr});var hs=C((()=>{l(),Xu(),ef()})),rf={};Ae(rf,{default:()=>ee});var ee,gt=C((()=>{l(),ee={resolve:i=>i,extname:i=>"."+i.split(".").pop()}}));function xi(i){return"object"==typeof i&&null!==i}function nf(i){return"string"==typeof i||i instanceof String}function ms(i){return xi(i)&&void 0===i.config&&!function(i){return 0===Object.keys(i).length}(i)?null:xi(i)&&void 0!==i.config&&nf(i.config)?ee.resolve(i.config):xi(i)&&void 0!==i.config&&xi(i.config)?null:nf(i)?ee.resolve(i):function(){for(let i of n0)try{let e=ee.resolve(i);return re.accessSync(e),e}catch(e){}return null}()}var n0,sf=C((()=>{l(),je(),gt(),n0=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts"]})),af={};Ae(af,{default:()=>gs});var gs,W,V,ys=C((()=>{l(),gs={parse:i=>({href:i})}})),ws=v((()=>{l()})),ki=v(((fT,uf)=>{l();var of=(ci(),vu),lf=ws(),_t=class extends Error{constructor(e,t,r,n,a,s){super(e),this.name="CssSyntaxError",this.reason=e,a&&(this.file=a),n&&(this.source=n),s&&(this.plugin=s),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,_t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=of.isColorSupported),lf&&e&&(t=lf(t));let o,u,r=t.split(/\r?\n/),n=Math.max(this.line-3,0),a=Math.min(this.line+2,r.length),s=String(a).length;if(e){let{bold:c,red:f,gray:d}=of.createColors(!0);o=p=>c(f(p)),u=p=>d(p)}else o=u=c=>c;return r.slice(n,a).map(((c,f)=>{let d=n+1+f,p=" "+(" "+d).slice(-s)+" | ";if(d===this.line){let m=u(p.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return o(">")+u(p)+c+"\n "+m+o("^")}return" "+u(p)+c})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}};uf.exports=_t,_t.default=_t})),Si=v(((cT,bs)=>{l(),bs.exports.isClean=Symbol("isClean"),bs.exports.my=Symbol("my")})),vs=v(((pT,cf)=>{l();var ff={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};var Ci=class{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)}decl(e,t){let r=this.raw(e,"between","colon"),n=e.prop+r+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let a=(e.raws.between||"")+(t?";":"");this.builder(r+n+a,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n{if(n=u.raws[t],void 0!==n)return!1}))}var i;return void 0===n&&(n=ff[r]),s.rawCache[r]=n,n}rawSemicolon(e){let t;return e.walk((r=>{if(r.nodes&&r.nodes.length&&"decl"===r.last.type&&(t=r.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((r=>{if(r.nodes&&0===r.nodes.length&&(t=r.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){let a=r.raws.before.split("\n");return t=a[a.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let r;return e.walkComments((n=>{if(void 0!==n.raws.before)return r=n.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls((n=>{if(void 0!==n.raws.before)return r=n.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(e){let t;return e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((r=>{if(r.nodes&&r.nodes.length>0&&void 0!==r.raws.after)return t=r.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((r=>{if("decl"!==r.type&&(t=r.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((r=>{if(void 0!==r.raws.between)return t=r.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let n=e.parent,a=0;for(;n&&"root"!==n.type;)a+=1,n=n.parent;if(r.includes("\n")){let s=this.raw(e,null,"indent");if(s.length)for(let o=0;o{l();var l0=vs();function xs(i,e){new l0(e).stringify(i)}pf.exports=xs,xs.default=xs})),mr=v(((hT,df)=>{l();var{isClean:Ai,my:u0}=Si(),f0=ki(),c0=vs(),p0=hr();function ks(i,e){let t=new i.constructor;for(let r in i){if(!Object.prototype.hasOwnProperty.call(i,r)||"proxyCache"===r)continue;let n=i[r],a=typeof n;"parent"===r&&"object"===a?e&&(t[r]=e):"source"===r?t[r]=n:Array.isArray(n)?t[r]=n.map((s=>ks(s,t))):("object"===a&&null!==n&&(n=ks(n)),t[r]=n)}return t}var _i=class{constructor(e={}){this.raws={},this[Ai]=!1,this[u0]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let r of e[t])"function"==typeof r.clone?this.append(r.clone()):this.append(r)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:r,end:n}=this.rangeBy(t);return this.source.input.error(e,{line:r.line,column:r.column},{line:n.line,column:n.column},t)}return new f0(e)}warn(e,t,r){let n={node:this};for(let a in r)n[a]=r[a];return e.warn(t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=p0){e.stringify&&(e=e.stringify);let t="";return e(this,(r=>{t+=r})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=ks(this);for(let r in e)t[r]=e[r];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,r=!1;for(let n of e)n===this?r=!0:r?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new c0).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let r={},n=null==t;t=t||new Map;let a=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||"parent"===s||"proxyCache"===s)continue;let o=this[s];if(Array.isArray(o))r[s]=o.map((u=>"object"==typeof u&&u.toJSON?u.toJSON(null,t):u));else if("object"==typeof o&&o.toJSON)r[s]=o.toJSON(null,t);else if("source"===s){let u=t.get(o.input);null==u&&(u=a,t.set(o.input,a),a++),r[s]={inputId:u,start:o.start,end:o.end}}else r[s]=o}return n&&(r.inputs=[...t.keys()].map((s=>s.toJSON()))),r}positionInside(e){let t=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let a=0;a(e[t]===r||(e[t]=r,("prop"===t||"value"===t||"name"===t||"params"===t||"important"===t||"text"===t)&&e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[Ai]){this[Ai]=!1;let e=this;for(;e=e.parent;)e[Ai]=!1}}get proxyOf(){return this}};df.exports=_i,_i.default=_i})),gr=v(((mT,hf)=>{l();var d0=mr(),Oi=class extends d0{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}};hf.exports=Oi,Oi.default=Oi})),Ss=v(((gT,mf)=>{l(),mf.exports=function(i,e){return{generate:()=>{let t="";return i(e,(r=>{t+=r})),[t]}}}})),yr=v(((yT,gf)=>{l();var h0=mr(),Ei=class extends h0{constructor(e){super(e),this.type="comment"}};gf.exports=Ei,Ei.default=Ei})),it=v(((wT,Af)=>{l();var xf,Cs,As,kf,{isClean:yf,my:wf}=Si(),bf=gr(),vf=yr(),m0=mr();function Sf(i){return i.map((e=>(e.nodes&&(e.nodes=Sf(e.nodes)),delete e.source,e)))}function Cf(i){if(i[yf]=!1,i.proxyOf.nodes)for(let e of i.proxyOf.nodes)Cf(e)}var we=class extends m0{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let r,n,t=this.getIterator();for(;this.indexes[t]{let n;try{n=e(t,r)}catch(a){throw t.addToError(a)}return!1!==n&&t.walk&&(n=t.walk(e)),n}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("decl"===r.type)return t(r,n)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("rule"===r.type)return t(r,n)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)})):(t=e,this.walk(((r,n)=>{if("atrule"===r.type)return t(r,n)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let r=this.normalize(t,this.last);for(let n of r)this.proxyOf.nodes.push(n)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let r=this.normalize(t,this.first,"prepend").reverse();for(let n of r)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+r.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let s,r=this.index(e),n=0===r&&"prepend",a=this.normalize(t,this.proxyOf.nodes[r],n).reverse();r=this.index(e);for(let o of a)this.proxyOf.nodes.splice(r,0,o);for(let o in this.indexes)s=this.indexes[o],r<=s&&(this.indexes[o]=s+a.length);return this.markDirty(),this}insertAfter(e,t){let a,r=this.index(e),n=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let s of n)this.proxyOf.nodes.splice(r+1,0,s);for(let s in this.indexes)a=this.indexes[s],r=e&&(this.indexes[r]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls((n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=Sf(xf(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new bf(e)]}else if(e.selector)e=[new Cs(e)];else if(e.name)e=[new As(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new vf(e)]}return e.map((n=>(n[wf]||we.rebuild(n),(n=n.proxyOf).parent&&n.parent.removeChild(n),n[yf]&&Cf(n),void 0===n.raws.before&&t&&void 0!==t.raws.before&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,("name"===t||"params"===t||"selector"===t)&&e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((n=>"function"==typeof n?(a,s)=>n(a.toProxy(),s):n))):"every"===t||"some"===t?r=>e[t](((n,...a)=>r(n.toProxy(),...a))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((r=>r.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};we.registerParse=i=>{xf=i},we.registerRule=i=>{Cs=i},we.registerAtRule=i=>{As=i},we.registerRoot=i=>{kf=i},Af.exports=we,we.default=we,we.rebuild=i=>{"atrule"===i.type?Object.setPrototypeOf(i,As.prototype):"rule"===i.type?Object.setPrototypeOf(i,Cs.prototype):"decl"===i.type?Object.setPrototypeOf(i,bf.prototype):"comment"===i.type?Object.setPrototypeOf(i,vf.prototype):"root"===i.type&&Object.setPrototypeOf(i,kf.prototype),i[wf]=!0,i.nodes&&i.nodes.forEach((e=>{we.rebuild(e)}))}})),Ti=v(((bT,Ef)=>{l();var _f,Of,g0=it(),Ot=class extends g0{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new _f(new Of,this,e).stringify()}};Ot.registerLazyResult=i=>{_f=i},Ot.registerProcessor=i=>{Of=i},Ef.exports=Ot,Ot.default=Ot})),_s=v(((vT,Pf)=>{l();var Tf={};Pf.exports=function(e){Tf[e]||(Tf[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}})),Os=v(((xT,Df)=>{l();var Pi=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in t)this[r]=t[r]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Df.exports=Pi,Pi.default=Pi})),Ii=v(((kT,If)=>{l();var y0=Os(),Di=class{constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new y0(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}};If.exports=Di,Di.default=Di})),Ff=v(((ST,Bf)=>{l();var Es="'".charCodeAt(0),qf='"'.charCodeAt(0),qi="\\".charCodeAt(0),Rf="/".charCodeAt(0),Ri="\n".charCodeAt(0),wr=" ".charCodeAt(0),Mi="\f".charCodeAt(0),Bi="\t".charCodeAt(0),Fi="\r".charCodeAt(0),w0="[".charCodeAt(0),b0="]".charCodeAt(0),v0="(".charCodeAt(0),x0=")".charCodeAt(0),k0="{".charCodeAt(0),S0="}".charCodeAt(0),C0=";".charCodeAt(0),A0="*".charCodeAt(0),_0=":".charCodeAt(0),O0="@".charCodeAt(0),Ni=/[\t\n\f\r "#'()/;[\\\]{}]/g,Li=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,E0=/.[\n"'(/\\]/,Mf=/[\da-f]/i;Bf.exports=function(e,t={}){let a,s,o,u,c,f,d,p,m,w,r=e.css.valueOf(),n=t.ignoreErrors,x=r.length,y=0,b=[],k=[];function _(q){throw e.error("Unclosed "+q,y)}return{back:function(q){k.push(q)},nextToken:function(q){if(k.length)return k.pop();if(y>=x)return;let X=!!q&&q.ignoreUnclosed;switch(a=r.charCodeAt(y),a){case Ri:case wr:case Bi:case Fi:case Mi:s=y;do{s+=1,a=r.charCodeAt(s)}while(a===wr||a===Ri||a===Bi||a===Fi||a===Mi);w=["space",r.slice(y,s)],y=s-1;break;case w0:case b0:case k0:case S0:case _0:case C0:case x0:{let le=String.fromCharCode(a);w=[le,le,y];break}case v0:if(p=b.length?b.pop()[1]:"",m=r.charCodeAt(y+1),"url"===p&&m!==Es&&m!==qf&&m!==wr&&m!==Ri&&m!==Bi&&m!==Mi&&m!==Fi){s=y;do{if(f=!1,s=r.indexOf(")",s+1),-1===s){if(n||X){s=y;break}_("bracket")}for(d=s;r.charCodeAt(d-1)===qi;)d-=1,f=!f}while(f);w=["brackets",r.slice(y,s+1),y,s],y=s}else s=r.indexOf(")",y+1),u=r.slice(y,s+1),-1===s||E0.test(u)?w=["(","(",y]:(w=["brackets",u,y,s],y=s);break;case Es:case qf:o=a===Es?"'":'"',s=y;do{if(f=!1,s=r.indexOf(o,s+1),-1===s){if(n||X){s=y+1;break}_("string")}for(d=s;r.charCodeAt(d-1)===qi;)d-=1,f=!f}while(f);w=["string",r.slice(y,s+1),y,s],y=s;break;case O0:Ni.lastIndex=y+1,Ni.test(r),s=0===Ni.lastIndex?r.length-1:Ni.lastIndex-2,w=["at-word",r.slice(y,s+1),y,s],y=s;break;case qi:for(s=y,c=!0;r.charCodeAt(s+1)===qi;)s+=1,c=!c;if(a=r.charCodeAt(s+1),c&&a!==Rf&&a!==wr&&a!==Ri&&a!==Bi&&a!==Fi&&a!==Mi&&(s+=1,Mf.test(r.charAt(s)))){for(;Mf.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===wr&&(s+=1)}w=["word",r.slice(y,s+1),y,s],y=s;break;default:a===Rf&&r.charCodeAt(y+1)===A0?(s=r.indexOf("*/",y+2)+1,0===s&&(n||X?s=r.length:_("comment")),w=["comment",r.slice(y,s+1),y,s],y=s):(Li.lastIndex=y+1,Li.test(r),s=0===Li.lastIndex?r.length-1:Li.lastIndex-2,w=["word",r.slice(y,s+1),y,s],b.push(w),y=s)}return y++,w},endOfFile:function(){return 0===k.length&&y>=x},position:function(){return y}}}})),$i=v(((CT,Lf)=>{l();var Nf=it(),br=class extends Nf{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Lf.exports=br,br.default=br,Nf.registerAtRule(br)})),Et=v(((AT,Vf)=>{l();var jf,zf,$f=it(),yt=class extends $f{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,t,r){let n=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let a of n)a.raws.before=t.raws.before;return n}toResult(e={}){return new jf(new zf,this,e).stringify()}};yt.registerLazyResult=i=>{jf=i},yt.registerProcessor=i=>{zf=i},Vf.exports=yt,yt.default=yt,$f.registerRoot(yt)})),Ts=v(((_T,Uf)=>{l();var vr={split(i,e,t){let r=[],n="",a=!1,s=0,o=!1,u="",c=!1;for(let f of i)c?c=!1:"\\"===f?c=!0:o?f===u&&(o=!1):'"'===f||"'"===f?(o=!0,u=f):"("===f?s+=1:")"===f?s>0&&(s-=1):0===s&&e.includes(f)&&(a=!0),a?(""!==n&&r.push(n.trim()),n="",a=!1):n+=f;return(t||""!==n)&&r.push(n.trim()),r},space(i){let e=[" ","\n","\t"];return vr.split(i,e)},comma:i=>vr.split(i,[","],!0)};Uf.exports=vr,vr.default=vr})),ji=v(((OT,Gf)=>{l();var Wf=it(),T0=Ts(),xr=class extends Wf{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return T0.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}};Gf.exports=xr,xr.default=xr,Wf.registerRule(xr)})),Xf=v(((ET,Jf)=>{l();var P0=gr(),D0=Ff(),I0=yr(),q0=$i(),R0=Et(),Hf=ji(),Yf={empty:!0,space:!0};Jf.exports=class{constructor(e){this.input=e,this.root=new R0,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=D0(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new I0;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}emptyRule(e){let t=new Hf;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,r=null,n=!1,a=null,s=[],o=e[1].startsWith("--"),u=[],c=e;for(;c;){if(r=c[0],u.push(c),"("===r||"["===r)a||(a=c),s.push("("===r?")":"]");else if(o&&n&&"{"===r)a||(a=c),s.push("}");else if(0===s.length){if(";"===r){if(n)return void this.decl(u,o);break}if("{"===r)return void this.rule(u);if("}"===r){this.tokenizer.back(u.pop()),t=!0;break}":"===r&&(n=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(a=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(a),t&&n){if(!o)for(;u.length&&(c=u[u.length-1][0],"space"===c||"comment"===c);)this.tokenizer.back(u.pop());this.decl(u,o)}else this.unknownWord(u)}rule(e){e.pop();let t=new Hf;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let r=new P0;this.init(r,e[0][2]);let a,n=e[e.length-1];for(";"===n[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(n[3]||n[2]||function(i){for(let e=i.length-1;e>=0;e--){let t=i[e],r=t[3]||t[2];if(r)return r}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let c=e[0][0];if(":"===c||"space"===c||"comment"===c)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(a=e.shift(),":"===a[0]){r.raws.between+=a[1];break}"word"===a[0]&&/\w/.test(a[1])&&this.unknownWord([a]),r.raws.between+=a[1]}("_"===r.prop[0]||"*"===r.prop[0])&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o,s=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(a=e[c],"!important"===a[1].toLowerCase()){r.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f," !important"!==f&&(r.raws.important=f);break}if("important"===a[1].toLowerCase()){let f=e.slice(0),d="";for(let p=c;p>0;p--){let m=f[p][0];if(0===d.trim().indexOf("!")&&"space"!==m)break;d=f.pop()[1]+d}0===d.trim().indexOf("!")&&(r.important=!0,r.raws.important=d,e=f)}if("space"!==a[0]&&"comment"!==a[0])break}e.some((c=>"space"!==c[0]&&"comment"!==c[0]))&&(r.raws.between+=s.map((c=>c[1])).join(""),s=[]),this.raw(r,"value",s.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t=new q0;t.name=e[1].slice(1),""===t.name&&this.unnamedAtrule(t,e),this.init(t,e[2]);let r,n,a,s=!1,o=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(r=(e=this.tokenizer.nextToken())[0],"("===r||"["===r?c.push("("===r?")":"]"):"{"===r&&c.length>0?c.push("}"):r===c[c.length-1]&&c.pop(),0===c.length){if(";"===r){t.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===r){o=!0;break}if("}"===r){if(u.length>0){for(a=u.length-1,n=u[a];n&&"space"===n[0];)n=u[--a];n&&(t.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}u.push(e)}else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(t.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(t,"params",u),s&&(e=u[u.length-1],t.source.end=this.getPosition(e[3]||e[2]),this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,r,n){let a,s,f,d,o=r.length,u="",c=!0;for(let p=0;pm+w[1]),"");e.raws[t]={value:u,raw:p}}e[t]=u}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n=0&&(n=e[a],"space"===n[0]||(r+=1,2!==r));a--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}}})),Kf=v((()=>{l()})),ec=v(((DT,Zf)=>{l();Zf.exports={nanoid:(i=21)=>{let e="",t=i;for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return e},customAlphabet:(i,e=21)=>(t=e)=>{let r="",n=t;for(;n--;)r+=i[Math.random()*i.length|0];return r}}})),Ps=v(((IT,tc)=>{l(),tc.exports={}})),Vi=v(((qT,sc)=>{l();var{SourceMapConsumer:L0,SourceMapGenerator:$0}=Kf(),{fileURLToPath:rc,pathToFileURL:zi}=(ys(),af),{resolve:Ds,isAbsolute:Is}=(gt(),rf),{nanoid:j0}=ec(),qs=ws(),ic=ki(),z0=Ps(),Rs=Symbol("fromOffsetCache"),V0=Boolean(L0&&$0),nc=Boolean(Ds&&Is),kr=class{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!nc||/^\w+:\/\//.test(t.from)||Is(t.from)?this.file=t.from:this.file=Ds(t.from)),nc&&V0){let r=new z0(this.css,t);if(r.text){this.map=r;let n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[Rs])r=this[Rs];else{let a=this.css.split("\n");r=new Array(a.length);let s=0;for(let o=0,u=a.length;o=t)n=r.length-1;else{let s,a=r.length-2;for(;n>1),e=r[s+1])){n=s;break}n=s+1}}return{line:n+1,col:e-r[n]+1}}error(e,t,r,n={}){let a,s,o;if(t&&"object"==typeof t){let c=t,f=r;if("number"==typeof c.offset){let d=this.fromOffset(c.offset);t=d.line,r=d.col}else t=c.line,r=c.column;if("number"==typeof f.offset){let d=this.fromOffset(f.offset);s=d.line,o=d.col}else s=f.line,o=f.column}else if(!r){let c=this.fromOffset(t);t=c.line,r=c.col}let u=this.origin(t,r,s,o);return a=u?new ic(e,void 0===u.endLine?u.line:{line:u.line,column:u.column},void 0===u.endLine?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):new ic(e,void 0===s?t:{line:t,column:r},void 0===s?r:{line:s,column:o},this.css,this.file,n.plugin),a.input={line:t,column:r,endLine:s,endColumn:o,source:this.css},this.file&&(zi&&(a.input.url=zi(this.file).toString()),a.input.file=this.file),a}origin(e,t,r,n){if(!this.map)return!1;let o,u,a=this.map.consumer(),s=a.originalPositionFor({line:e,column:t});if(!s.source)return!1;"number"==typeof r&&(o=a.originalPositionFor({line:r,column:n})),u=Is(s.source)?zi(s.source):new URL(s.source,this.map.consumer().sourceRoot||zi(this.map.mapFile));let c={url:u.toString(),line:s.line,column:s.column,endLine:o&&o.line,endColumn:o&&o.column};if("file:"===u.protocol){if(!rc)throw new Error("file: protocol is not available in this PostCSS build");c.file=rc(u)}let f=a.sourceContentFor(s.source);return f&&(c.source=f),c}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ds(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};sc.exports=kr,kr.default=kr,qs&&qs.registerInput&&qs.registerInput(kr)})),Wi=v(((RT,ac)=>{l();var U0=it(),W0=Xf(),G0=Vi();function Ui(i,e){let t=new G0(i,e),r=new W0(t);try{r.parse()}catch(n){throw n}return r.root}ac.exports=Ui,Ui.default=Ui,U0.registerParse(Ui)})),Fs=v(((BT,fc)=>{l();var{isClean:Ie,my:H0}=Si(),Y0=Ss(),Q0=hr(),J0=it(),X0=Ti(),oc=(_s(),Ii()),K0=Wi(),Z0=Et(),ev={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},tv={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},rv={postcssPlugin:!0,prepare:!0,Once:!0},Tt=0;function Sr(i){return"object"==typeof i&&"function"==typeof i.then}function lc(i){let e=!1,t=ev[i.type];return"decl"===i.type?e=i.prop.toLowerCase():"atrule"===i.type&&(e=i.name.toLowerCase()),e&&i.append?[t,t+"-"+e,Tt,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:i.append?[t,Tt,t+"Exit"]:[t,t+"Exit"]}function uc(i){let e;return e="document"===i.type?["Document",Tt,"DocumentExit"]:"root"===i.type?["Root",Tt,"RootExit"]:lc(i),{node:i,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function Ms(i){return i[Ie]=!1,i.nodes&&i.nodes.forEach((e=>Ms(e))),i}var Bs={},Ve=class{constructor(e,t,r){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof Ve||t instanceof oc)n=Ms(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let a=K0;r.syntax&&(a=r.syntax.parse),r.parser&&(a=r.parser),a.parse&&(a=a.parse);try{n=a(t,r)}catch(s){this.processed=!0,this.error=s}n&&!n[H0]&&J0.rebuild(n)}else n=Ms(t);this.result=new oc(e,n,r),this.helpers={...Bs,result:this.result,postcss:Bs},this.plugins=this.processor.plugins.map((a=>"object"==typeof a&&a.prepare?{...a,...a.prepare(this.result)}:a))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){if(Sr(this.runOnRoot(e)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Ie];)e[Ie]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Q0;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new Y0(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[Ie]=!0;let t=lc(e);for(let r of t)if(r===Tt)e.nodes&&e.each((n=>{n[Ie]||this.walkSync(n)}));else{let n=this.listeners[r];if(n&&this.visitSync(n,e.toProxy()))return}}visitSync(e,t){for(let[r,n]of e){let a;this.result.lastPlugin=r;try{a=n(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(Sr(a))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((r=>e.Once(r,this.helpers)));return Sr(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(n){console&&console.error&&console.error(n)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let r=this.visitTick(t);if(Sr(r))try{await r}catch(n){let a=t[t.length-1].node;throw this.handleError(n,a)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let n=e.nodes.map((a=>r(a,this.helpers)));await Promise.all(n)}else await r(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(t,r,n)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([t,n])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!tv[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!rv[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{Bs=i},fc.exports=Ve,Ve.default=Ve,Z0.registerLazyResult(Ve),X0.registerLazyResult(Ve)})),pc=v(((NT,cc)=>{l();var iv=Ss(),nv=hr(),sv=(_s(),Wi()),av=Ii(),Gi=class{constructor(e,t,r){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let n,a=nv;this.result=new av(this._processor,n,this._opts),this.result.css=t;let s=this;Object.defineProperty(this.result,"root",{get:()=>s.root});let o=new iv(a,n,this._opts,t);if(o.isMap()){let[u,c]=o.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=sv;try{e=t(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};cc.exports=Gi,Gi.default=Gi})),hc=v(((LT,dc)=>{l();var ov=pc(),lv=Fs(),uv=Ti(),fv=Et(),Pt=class{constructor(e=[]){this.version="8.4.24",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new ov(this,e,t):new lv(this,e,t)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}};dc.exports=Pt,Pt.default=Pt,fv.registerProcessor(Pt),uv.registerProcessor(Pt)})),gc=v((($T,mc)=>{l();var cv=gr(),pv=Ps(),dv=yr(),hv=$i(),mv=Vi(),gv=Et(),yv=ji();function Cr(i,e){if(Array.isArray(i))return i.map((n=>Cr(n)));let{inputs:t,...r}=i;if(t){e=[];for(let n of t){let a={...n,__proto__:mv.prototype};a.map&&(a.map={...a.map,__proto__:pv.prototype}),e.push(a)}}if(r.nodes&&(r.nodes=i.nodes.map((n=>Cr(n,e)))),r.source){let{inputId:n,...a}=r.source;r.source=a,null!=n&&(r.source.input=e[n])}if("root"===r.type)return new gv(r);if("decl"===r.type)return new cv(r);if("rule"===r.type)return new yv(r);if("comment"===r.type)return new dv(r);if("atrule"===r.type)return new hv(r);throw new Error("Unknown node type: "+i.type)}mc.exports=Cr,Cr.default=Cr})),ge=v(((jT,Sc)=>{l();var wv=ki(),yc=gr(),bv=Fs(),vv=it(),Ns=hc(),xv=hr(),kv=gc(),wc=Ti(),Sv=Os(),bc=yr(),vc=$i(),Cv=Ii(),Av=Vi(),_v=Wi(),Ov=Ts(),xc=ji(),kc=Et(),Ev=mr();function z(...i){return 1===i.length&&Array.isArray(i[0])&&(i=i[0]),new Ns(i)}z.plugin=function(e,t){let a,r=!1;function n(...s){console&&console.warn&&!r&&(r=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),h.env.LANG&&h.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let o=t(...s);return o.postcssPlugin=e,o.postcssVersion=(new Ns).version,o}return Object.defineProperty(n,"postcss",{get:()=>(a||(a=n()),a)}),n.process=function(s,o,u){return z([n(u)]).process(s,o)},n},z.stringify=xv,z.parse=_v,z.fromJSON=kv,z.list=Ov,z.comment=i=>new bc(i),z.atRule=i=>new vc(i),z.decl=i=>new yc(i),z.rule=i=>new xc(i),z.root=i=>new kc(i),z.document=i=>new wc(i),z.CssSyntaxError=wv,z.Declaration=yc,z.Container=vv,z.Processor=Ns,z.Document=wc,z.Comment=bc,z.Warning=Sv,z.AtRule=vc,z.Result=Cv,z.Input=Av,z.Rule=xc,z.Root=kc,z.Node=Ev,bv.registerPostcss(z),Sc.exports=z,z.default=z})),nt=C((()=>{l(),W=K(ge()),V=W.default,W.default.stringify,W.default.fromJSON,W.default.plugin,W.default.parse,W.default.list,W.default.document,W.default.comment,W.default.atRule,W.default.rule,W.default.decl,W.default.root,W.default.CssSyntaxError,W.default.Declaration,W.default.Container,W.default.Processor,W.default.Document,W.default.Comment,W.default.Warning,W.default.AtRule,W.default.Result,W.default.Input,W.default.Rule,W.default.Root,W.default.Node})),Ls=v(((d3,Cc)=>{l(),Cc.exports=function(i,e,t,r,n){for(e=e.split?e.split("."):e,r=0;r{function Tv(i){for(var e=i.toLowerCase(),t="",r=!1,n=0;n<6&&void 0!==e[n];n++){var a=e.charCodeAt(n);if(r=32===a,!(a>=97&&a<=102||a>=48&&a<=57))break;t+=e[n]}if(0!==t.length){var o=parseInt(t,16);return o>=55296&&o<=57343||0===o||o>1114111?["�",t.length+(r?1:0)]:[String.fromCodePoint(o),t.length+(r?1:0)]}}l(),Hi.__esModule=!0,Hi.default=function(i){if(!Pv.test(i))return i;for(var t="",r=0;r{l(),Qi.__esModule=!0,Qi.default=function(i){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r0;){var n=t.shift();if(!i[n])return;i=i[n]}return i},_c.exports=Qi.default})),Tc=v(((Ji,Ec)=>{l(),Ji.__esModule=!0,Ji.default=function(i){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r0;){var n=t.shift();i[n]||(i[n]={}),i=i[n]}},Ec.exports=Ji.default})),Dc=v(((Xi,Pc)=>{l(),Xi.__esModule=!0,Xi.default=function(i){for(var e="",t=i.indexOf("/*"),r=0;t>=0;){e+=i.slice(r,t);var n=i.indexOf("*/",t+2);if(n<0)return e;r=n+2,t=i.indexOf("/*",r)}return e+=i.slice(r)},Pc.exports=Xi.default})),Ar=v((qe=>{l(),qe.__esModule=!0,qe.unesc=qe.stripComments=qe.getProp=qe.ensureObject=void 0;var Mv=Ki(Yi());qe.unesc=Mv.default;var Bv=Ki(Oc());qe.getProp=Bv.default;var Fv=Ki(Tc());qe.ensureObject=Fv.default;var Nv=Ki(Dc());function Ki(i){return i&&i.__esModule?i:{default:i}}qe.stripComments=Nv.default})),Ue=v(((_r,Rc)=>{l(),_r.__esModule=!0,_r.default=void 0;var Ic=Ar();function qc(i,e){for(var t=0;tr||this.source.end.linen||this.source.end.line===r&&this.source.end.column{l(),G.__esModule=!0,G.UNIVERSAL=G.TAG=G.STRING=G.SELECTOR=G.ROOT=G.PSEUDO=G.NESTING=G.ID=G.COMMENT=G.COMBINATOR=G.CLASS=G.ATTRIBUTE=void 0;G.TAG="tag";G.STRING="string";G.SELECTOR="selector";G.ROOT="root";G.PSEUDO="pseudo";G.NESTING="nesting";G.ID="id";G.COMMENT="comment";G.COMBINATOR="combinator";G.CLASS="class";G.ATTRIBUTE="attribute";G.UNIVERSAL="universal"})),Zi=v(((Or,Nc)=>{l(),Or.__esModule=!0,Or.default=void 0;var i,ex=(i=Ue())&&i.__esModule?i:{default:i},We=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=Mc(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(se());function Mc(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(Mc=function(n){return n?t:e})(i)}function ix(i,e){var t="undefined"!=typeof Symbol&&i[Symbol.iterator]||i["@@iterator"];if(t)return(t=t.call(i)).next.bind(t);if(Array.isArray(i)||(t=function(i,e){if(i){if("string"==typeof i)return Bc(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if("Object"===t&&i.constructor&&(t=i.constructor.name),"Map"===t||"Set"===t)return Array.from(i);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Bc(i,e)}}(i))||e&&i&&"number"==typeof i.length){t&&(i=t);var r=0;return function(){return r>=i.length?{done:!0}:{done:!1,value:i[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Bc(i,e){(null==e||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t=n&&(this.indexes[s]=a-1);return this},t.removeAll=function(){for(var a,n=ix(this.nodes);!(a=n()).done;){a.value.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,a){a.parent=this;var o,s=this.index(n);for(var u in this.nodes.splice(s+1,0,a),a.parent=this,this.indexes)s<=(o=this.indexes[u])&&(this.indexes[u]=o+1);return this},t.insertBefore=function(n,a){a.parent=this;var o,s=this.index(n);for(var u in this.nodes.splice(s,0,a),a.parent=this,this.indexes)(o=this.indexes[u])<=s&&(this.indexes[u]=o+1);return this},t._findChildAtPosition=function(n,a){var s=void 0;return this.each((function(o){if(o.atPosition){var u=o.atPosition(n,a);if(u)return s=u,!1}else if(o.isAtPosition(n,a))return s=o,!1})),s},t.atPosition=function(n,a){if(this.isAtPosition(n,a))return this._findChildAtPosition(n,a)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var a=this.lastEach;if(this.indexes[a]=0,this.length){for(var s,o;this.indexes[a]{l(),Er.__esModule=!0,Er.default=void 0;var i,lx=(i=Zi())&&i.__esModule?i:{default:i},ux=se();function Lc(i,e){for(var t=0;t{l(),Tr.__esModule=!0,Tr.default=void 0;var i,hx=(i=Zi())&&i.__esModule?i:{default:i},mx=se();function Vs(i,e){return(Vs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var wx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=mx.SELECTOR,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Vs(i,e)}(e,i),e}(hx.default);Tr.default=wx,jc.exports=Tr.default})),en=v(((g3,zc)=>{l();var vx={}.hasOwnProperty,kx=/[ -,\.\/:-@\[-\^`\{-~]/,Sx=/[ -,\.\/:-@\[\]\^`\{-~]/,Cx=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,Ws=function i(e,t){t=function(e,t){if(!e)return t;var r={};for(var n in t)r[n]=vx.call(e,n)?e[n]:t[n];return r}(t,i.options),"single"!=t.quotes&&"double"!=t.quotes&&(t.quotes="single");for(var r="double"==t.quotes?'"':"'",n=t.isIdentifier,a=e.charAt(0),s="",o=0,u=e.length;o126){if(f>=55296&&f<=56319&&o{l(),Pr.__esModule=!0,Pr.default=void 0;var Ax=Vc(en()),_x=Ar(),Ox=Vc(Ue()),Ex=se();function Vc(i){return i&&i.__esModule?i:{default:i}}function Uc(i,e){for(var t=0;t{l(),Dr.__esModule=!0,Dr.default=void 0;var i,Ix=(i=Ue())&&i.__esModule?i:{default:i},qx=se();function Ys(i,e){return(Ys=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var Bx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=qx.COMMENT,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Ys(i,e)}(e,i),e}(Ix.default);Dr.default=Bx,Gc.exports=Dr.default})),Xs=v(((Ir,Hc)=>{l(),Ir.__esModule=!0,Ir.default=void 0;var i,Fx=(i=Ue())&&i.__esModule?i:{default:i},Nx=se();function Js(i,e){return(Js=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var jx=function(i){function e(r){var n;return(n=i.call(this,r)||this).type=Nx.ID,n}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Js(i,e)}(e,i),e.prototype.valueToString=function(){return"#"+i.prototype.valueToString.call(this)},e}(Fx.default);Ir.default=jx,Hc.exports=Ir.default})),tn=v(((qr,Jc)=>{l(),qr.__esModule=!0,qr.default=void 0;var zx=Yc(en()),Vx=Ar();function Yc(i){return i&&i.__esModule?i:{default:i}}function Qc(i,e){for(var t=0;t{l(),Rr.__esModule=!0,Rr.default=void 0;var i,Yx=(i=tn())&&i.__esModule?i:{default:i},Qx=se();function Zs(i,e){return(Zs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var Kx=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=Qx.TAG,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,Zs(i,e)}(e,i),e}(Yx.default);Rr.default=Kx,Xc.exports=Rr.default})),ra=v(((Mr,Kc)=>{l(),Mr.__esModule=!0,Mr.default=void 0;var i,Zx=(i=Ue())&&i.__esModule?i:{default:i},e1=se();function ta(i,e){return(ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var i1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=e1.STRING,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ta(i,e)}(e,i),e}(Zx.default);Mr.default=i1,Kc.exports=Mr.default})),na=v(((Br,Zc)=>{l(),Br.__esModule=!0,Br.default=void 0;var i,n1=(i=Zi())&&i.__esModule?i:{default:i},s1=se();function ia(i,e){return(ia=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var l1=function(i){function e(r){var n;return(n=i.call(this,r)||this).type=s1.PSEUDO,n}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ia(i,e)}(e,i),e.prototype.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(n1.default);Br.default=l1,Zc.exports=Br.default})),ep={};function u1(i){return i}Ae(ep,{deprecate:()=>u1});var tp=C((()=>{l()})),ip=v(((y3,rp)=>{l(),rp.exports=(tp(),ep).deprecate})),fa=v((Lr=>{l(),Lr.__esModule=!0,Lr.default=void 0,Lr.unescapeValue=la;var sa,Fr=aa(en()),f1=aa(Yi()),c1=aa(tn()),p1=se();function aa(i){return i&&i.__esModule?i:{default:i}}function np(i,e){for(var t=0;t0&&!n.quoted&&0===o.before.length&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),sp(s,o)})))),a.push("]"),a.push(this.rawSpaceAfter),a.join("")},function(i,e,t){e&&np(i.prototype,e),t&&np(i,t),Object.defineProperty(i,"prototype",{writable:!1})}(e,[{key:"quoted",get:function(){var n=this.quoteMark;return"'"===n||'"'===n},set:function(n){y1()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){this._constructed?this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue()):this._quoteMark=n}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var a=la(n),s=a.deprecatedUsage,o=a.unescaped,u=a.quoteMark;if(s&&g1(),o===this._value&&u===this._quoteMark)return;this._value=o,this._quoteMark=u,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&("I"===this.raws.insensitiveFlag||"i"===this.raws.insensitiveFlag)&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(c1.default);Lr.default=rn,rn.NO_QUOTE=null,rn.SINGLE_QUOTE="'",rn.DOUBLE_QUOTE='"';var ua=((sa={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}}).null={isIdentifier:!0},sa);function sp(i,e){return""+e.before+i+e.after}})),pa=v((($r,ap)=>{l(),$r.__esModule=!0,$r.default=void 0;var i,v1=(i=tn())&&i.__esModule?i:{default:i},x1=se();function ca(i,e){return(ca=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var C1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=x1.UNIVERSAL,r.value="*",r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ca(i,e)}(e,i),e}(v1.default);$r.default=C1,ap.exports=$r.default})),ha=v(((jr,op)=>{l(),jr.__esModule=!0,jr.default=void 0;var i,A1=(i=Ue())&&i.__esModule?i:{default:i},_1=se();function da(i,e){return(da=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var T1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=_1.COMBINATOR,r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,da(i,e)}(e,i),e}(A1.default);jr.default=T1,op.exports=jr.default})),ga=v(((zr,lp)=>{l(),zr.__esModule=!0,zr.default=void 0;var i,P1=(i=Ue())&&i.__esModule?i:{default:i},D1=se();function ma(i,e){return(ma=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r})(i,e)}var R1=function(i){function e(t){var r;return(r=i.call(this,t)||this).type=D1.NESTING,r.value="&",r}return function(i,e){i.prototype=Object.create(e.prototype),i.prototype.constructor=i,ma(i,e)}(e,i),e}(P1.default);zr.default=R1,lp.exports=zr.default})),fp=v(((nn,up)=>{l(),nn.__esModule=!0,nn.default=function(i){return i.sort((function(e,t){return e-t}))},up.exports=nn.default})),ya=v((D=>{l(),D.__esModule=!0,D.word=D.tilde=D.tab=D.str=D.space=D.slash=D.singleQuote=D.semicolon=D.plus=D.pipe=D.openSquare=D.openParenthesis=D.newline=D.greaterThan=D.feed=D.equals=D.doubleQuote=D.dollar=D.cr=D.comment=D.comma=D.combinator=D.colon=D.closeSquare=D.closeParenthesis=D.caret=D.bang=D.backslash=D.at=D.asterisk=D.ampersand=void 0;D.ampersand=38;D.asterisk=42;D.at=64;D.comma=44;D.colon=58;D.semicolon=59;D.openParenthesis=40;D.closeParenthesis=41;D.openSquare=91;D.closeSquare=93;D.dollar=36;D.tilde=126;D.caret=94;D.plus=43;D.equals=61;D.pipe=124;D.greaterThan=62;D.space=32;D.singleQuote=39;D.doubleQuote=34;D.slash=47;D.bang=33;D.backslash=92;D.cr=13;D.feed=12;D.newline=10;D.tab=9;D.str=39;D.comment=-1;D.word=-2;D.combinator=-3})),hp=v((Vr=>{l(),Vr.__esModule=!0,Vr.FIELDS=void 0,Vr.default=function(i){var c,d,p,m,w,x,y,b,k,S,_,O,e=[],t=i.css.valueOf(),n=t.length,a=-1,s=1,o=0,u=0;function I(B,q){if(!i.safe)throw i.error("Unclosed "+B,s,o-a,o);b=(t+=q).length-1}for(;o0?(k=s+x,S=b-y[x].length):(k=s,S=a),O=E.comment,s=k,p=k,d=b-S):c===E.slash?(O=c,p=s,d=o-a,u=(b=o)+1):(b=mk(t,o),O=E.word,p=s,d=b-a),u=b+1}e.push([O,s,o-a,p,d,o,u]),S&&(a=S,S=null),o=u}return e};var Dt,U,E=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=pp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(ya());function pp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(pp=function(n){return n?t:e})(i)}var sn,dk=((Dt={})[E.tab]=!0,Dt[E.newline]=!0,Dt[E.cr]=!0,Dt[E.feed]=!0,Dt),hk=((U={})[E.space]=!0,U[E.tab]=!0,U[E.newline]=!0,U[E.cr]=!0,U[E.feed]=!0,U[E.ampersand]=!0,U[E.asterisk]=!0,U[E.bang]=!0,U[E.comma]=!0,U[E.colon]=!0,U[E.semicolon]=!0,U[E.openParenthesis]=!0,U[E.closeParenthesis]=!0,U[E.openSquare]=!0,U[E.closeSquare]=!0,U[E.singleQuote]=!0,U[E.doubleQuote]=!0,U[E.plus]=!0,U[E.pipe]=!0,U[E.tilde]=!0,U[E.greaterThan]=!0,U[E.equals]=!0,U[E.dollar]=!0,U[E.caret]=!0,U[E.slash]=!0,U),wa={},dp="0123456789abcdefABCDEF";for(sn=0;sn<22;sn++)wa[dp.charCodeAt(sn)]=!0;function mk(i,e){var r,t=e;do{if(r=i.charCodeAt(t),hk[r])return t-1;r===E.backslash?t=gk(i,t)+1:t++}while(t{l(),Ur.__esModule=!0,Ur.default=void 0;var wt,ka,bk=be(zs()),ba=be(Us()),vk=be(Hs()),mp=be(Qs()),xk=be(Xs()),kk=be(ea()),va=be(ra()),Sk=be(na()),gp=an(fa()),Ck=be(pa()),xa=be(ha()),Ak=be(ga()),_k=be(fp()),A=an(hp()),T=an(ya()),Ok=an(se()),Q=Ar();function yp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(yp=function(n){return n?t:e})(i)}function an(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=yp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}function be(i){return i&&i.__esModule?i:{default:i}}function wp(i,e){for(var t=0;tthis.position&&(d=this.parseWhitespaceEquivalentTokens(n)),this.isNamedCombinator()?p=this.namedCombinator():this.currToken[A.FIELDS.TYPE]===T.combinator?(p=new xa.default({value:this.content(),source:It(this.currToken),sourceIndex:this.currToken[A.FIELDS.START_POS]}),this.position++):Sa[this.currToken[A.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var m=this.convertWhitespaceNodesToSpace(d),w=m.space,x=m.rawSpace;p.spaces.before=w,p.rawSpaceBefore=x}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),b=y.space,k=y.rawSpace;k||(k=b);var S={},_={spaces:{}};b.endsWith(" ")&&k.endsWith(" ")?(S.before=b.slice(0,b.length-1),_.spaces.before=k.slice(0,k.length-1)):b.startsWith(" ")&&k.startsWith(" ")?(S.after=b.slice(1),_.spaces.after=k.slice(1)):_.value=k,p=new xa.default({value:" ",source:Ca(f,this.tokens[this.position-1]),sourceIndex:f[A.FIELDS.START_POS],spaces:S,raws:_})}return this.currToken&&this.currToken[A.FIELDS.TYPE]===T.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)}var a=this.parseWhitespaceEquivalentTokens(n);if(a.length>0){var s=this.current.last;if(s){var o=this.convertWhitespaceNodesToSpace(a),u=o.space,c=o.rawSpace;void 0!==c&&(s.rawSpaceAfter+=c),s.spaces.after+=u}else a.forEach((function(O){return r.newNode(O)}))}},e.comma=function(){if(this.position===this.tokens.length-1)return this.root.trailingComma=!0,void this.position++;this.current._inferEndPosition();var r=new ba.default({source:{start:bp(this.tokens[this.position+1])}});this.current.parent.append(r),this.current=r,this.position++},e.comment=function(){var r=this.currToken;this.newNode(new mp.default({value:this.content(),source:It(r),sourceIndex:r[A.FIELDS.START_POS]})),this.position++},e.error=function(r,n){throw this.root.error(r,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[A.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[A.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[A.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[A.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[A.FIELDS.START_POS])},e.namespace=function(){var r=this.prevToken&&this.content(this.prevToken)||!0;return this.nextToken[A.FIELDS.TYPE]===T.word?(this.position++,this.word(r)):this.nextToken[A.FIELDS.TYPE]===T.asterisk?(this.position++,this.universal(r)):void this.unexpectedPipe()},e.nesting=function(){if(this.nextToken&&"|"===this.content(this.nextToken))return void this.position++;var n=this.currToken;this.newNode(new Ak.default({value:this.content(),source:It(n),sourceIndex:n[A.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var r=this.current.last,n=1;if(this.position++,r&&r.type===Ok.PSEUDO){var a=new ba.default({source:{start:bp(this.tokens[this.position-1])}}),s=this.current;for(r.append(a),this.current=a;this.position1&&r.nextToken&&r.nextToken[A.FIELDS.TYPE]===T.openParenthesis&&r.error("Misplaced parenthesis.",{index:r.nextToken[A.FIELDS.START_POS]})})):this.expected(["pseudo-class","pseudo-element"],this.position-1)},e.space=function(){var r=this.content();0===this.position||this.prevToken[A.FIELDS.TYPE]===T.comma||this.prevToken[A.FIELDS.TYPE]===T.openParenthesis||this.current.nodes.every((function(n){return"comment"===n.type}))?(this.spaces=this.optionalSpace(r),this.position++):this.position===this.tokens.length-1||this.nextToken[A.FIELDS.TYPE]===T.comma||this.nextToken[A.FIELDS.TYPE]===T.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(r),this.position++):this.combinator()},e.string=function(){var r=this.currToken;this.newNode(new va.default({value:this.content(),source:It(r),sourceIndex:r[A.FIELDS.START_POS]})),this.position++},e.universal=function(r){var n=this.nextToken;if(n&&"|"===this.content(n))return this.position++,this.namespace();var a=this.currToken;this.newNode(new Ck.default({value:this.content(),source:It(a),sourceIndex:a[A.FIELDS.START_POS]}),r),this.position++},e.splitWord=function(r,n){for(var a=this,s=this.nextToken,o=this.content();s&&~[T.dollar,T.caret,T.equals,T.word].indexOf(s[A.FIELDS.TYPE]);){this.position++;var u=this.content();if(o+=u,u.lastIndexOf("\\")===u.length-1){var c=this.nextToken;c&&c[A.FIELDS.TYPE]===T.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}s=this.nextToken}var f=Aa(o,".").filter((function(w){var x="\\"===o[w-1],y=/^\d+\.\d+%$/.test(o);return!x&&!y})),d=Aa(o,"#").filter((function(w){return"\\"!==o[w-1]})),p=Aa(o,"#{");p.length&&(d=d.filter((function(w){return!~p.indexOf(w)})));var m=(0,_k.default)(function(){var i=Array.prototype.concat.apply([],arguments);return i.filter((function(e,t){return t===i.indexOf(e)}))}([0].concat(f,d)));m.forEach((function(w,x){var y=m[x+1]||o.length,b=o.slice(w,y);if(0===x&&n)return n.call(a,b,m.length);var k,S=a.currToken,_=S[A.FIELDS.START_POS]+m[x],O=bt(S[1],S[2]+w,S[3],S[2]+(y-1));if(~f.indexOf(w)){var I={value:b.slice(1),source:O,sourceIndex:_};k=new vk.default(qt(I,"value"))}else if(~d.indexOf(w)){var B={value:b.slice(1),source:O,sourceIndex:_};k=new xk.default(qt(B,"value"))}else{var q={value:b,source:O,sourceIndex:_};qt(q,"value"),k=new kk.default(q)}a.newNode(k,r),r=null})),this.position++},e.word=function(r){var n=this.nextToken;return n&&"|"===this.content(n)?(this.position++,this.namespace()):this.splitWord(r)},e.loop=function(){for(;this.position{l(),Wr.__esModule=!0,Wr.default=void 0;var i,Ik=(i=kp())&&i.__esModule?i:{default:i};var Rk=function(){function i(t,r){this.func=t||function(){},this.funcRes=null,this.options=r}var e=i.prototype;return e._shouldUpdateSelector=function(r,n){return void 0===n&&(n={}),!1!==Object.assign({},this.options,n).updateSelector&&"string"!=typeof r},e._isLossy=function(r){return void 0===r&&(r={}),!1===Object.assign({},this.options,r).lossless},e._root=function(r,n){return void 0===n&&(n={}),new Ik.default(r,this._parseOptions(n)).root},e._parseOptions=function(r){return{lossy:this._isLossy(r)}},e._run=function(r,n){var a=this;return void 0===n&&(n={}),new Promise((function(s,o){try{var u=a._root(r,n);Promise.resolve(a.func(u)).then((function(c){var f=void 0;return a._shouldUpdateSelector(r,n)&&(f=u.toString(),r.selector=f),{transform:c,root:u,string:f}})).then(s,o)}catch(c){return void o(c)}}))},e._runSync=function(r,n){void 0===n&&(n={});var a=this._root(r,n),s=this.func(a);if(s&&"function"==typeof s.then)throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&"string"!=typeof r&&(o=a.toString(),r.selector=o),{transform:s,root:a,string:o}},e.ast=function(r,n){return this._run(r,n).then((function(a){return a.root}))},e.astSync=function(r,n){return this._runSync(r,n).root},e.transform=function(r,n){return this._run(r,n).then((function(a){return a.transform}))},e.transformSync=function(r,n){return this._runSync(r,n).transform},e.process=function(r,n){return this._run(r,n).then((function(a){return a.string||a.root.toString()}))},e.processSync=function(r,n){var a=this._runSync(r,n);return a.string||a.root.toString()},i}();Wr.default=Rk,Sp.exports=Wr.default})),Ap=v((H=>{l(),H.__esModule=!0,H.universal=H.tag=H.string=H.selector=H.root=H.pseudo=H.nesting=H.id=H.comment=H.combinator=H.className=H.attribute=void 0;var Mk=ve(fa()),Bk=ve(Hs()),Fk=ve(ha()),Nk=ve(Qs()),Lk=ve(Xs()),$k=ve(ga()),jk=ve(na()),zk=ve(zs()),Vk=ve(Us()),Uk=ve(ra()),Wk=ve(ea()),Gk=ve(pa());function ve(i){return i&&i.__esModule?i:{default:i}}H.attribute=function(e){return new Mk.default(e)};H.className=function(e){return new Bk.default(e)};H.combinator=function(e){return new Fk.default(e)};H.comment=function(e){return new Nk.default(e)};H.id=function(e){return new Lk.default(e)};H.nesting=function(e){return new $k.default(e)};H.pseudo=function(e){return new jk.default(e)};H.root=function(e){return new zk.default(e)};H.selector=function(e){return new Vk.default(e)};H.string=function(e){return new Uk.default(e)};H.tag=function(e){return new Wk.default(e)};H.universal=function(e){return new Gk.default(e)}})),Tp=v(($=>{l(),$.__esModule=!0,$.isComment=$.isCombinator=$.isClassName=$.isAttribute=void 0,$.isContainer=function(i){return!(!_a(i)||!i.walk)},$.isIdentifier=void 0,$.isNamespace=function(i){return _p(i)||Op(i)},$.isNesting=void 0,$.isNode=_a,$.isPseudo=void 0,$.isPseudoClass=function(i){return Oa(i)&&!Ep(i)},$.isPseudoElement=Ep,$.isUniversal=$.isTag=$.isString=$.isSelector=$.isRoot=void 0;var pe,J=se(),sS=((pe={})[J.ATTRIBUTE]=!0,pe[J.CLASS]=!0,pe[J.COMBINATOR]=!0,pe[J.COMMENT]=!0,pe[J.ID]=!0,pe[J.NESTING]=!0,pe[J.PSEUDO]=!0,pe[J.ROOT]=!0,pe[J.SELECTOR]=!0,pe[J.STRING]=!0,pe[J.TAG]=!0,pe[J.UNIVERSAL]=!0,pe);function _a(i){return"object"==typeof i&&sS[i.type]}function xe(i,e){return _a(e)&&e.type===i}var _p=xe.bind(null,J.ATTRIBUTE);$.isAttribute=_p;var aS=xe.bind(null,J.CLASS);$.isClassName=aS;var oS=xe.bind(null,J.COMBINATOR);$.isCombinator=oS;var lS=xe.bind(null,J.COMMENT);$.isComment=lS;var uS=xe.bind(null,J.ID);$.isIdentifier=uS;var fS=xe.bind(null,J.NESTING);$.isNesting=fS;var Oa=xe.bind(null,J.PSEUDO);$.isPseudo=Oa;var cS=xe.bind(null,J.ROOT);$.isRoot=cS;var pS=xe.bind(null,J.SELECTOR);$.isSelector=pS;var dS=xe.bind(null,J.STRING);$.isString=dS;var Op=xe.bind(null,J.TAG);$.isTag=Op;var hS=xe.bind(null,J.UNIVERSAL);function Ep(i){return Oa(i)&&i.value&&(i.value.startsWith("::")||":before"===i.value.toLowerCase()||":after"===i.value.toLowerCase()||":first-letter"===i.value.toLowerCase()||":first-line"===i.value.toLowerCase())}$.isUniversal=hS})),Pp=v((Ee=>{l(),Ee.__esModule=!0;var Ea=se();Object.keys(Ea).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Ea[i]||(Ee[i]=Ea[i])}));var Ta=Ap();Object.keys(Ta).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Ta[i]||(Ee[i]=Ta[i])}));var Pa=Tp();Object.keys(Pa).forEach((function(i){"default"===i||"__esModule"===i||i in Ee&&Ee[i]===Pa[i]||(Ee[i]=Pa[i])}))})),Re=v(((Gr,Ip)=>{l(),Gr.__esModule=!0,Gr.default=void 0;var i,wS=(i=Cp())&&i.__esModule?i:{default:i},bS=function(i,e){if(!e&&i&&i.__esModule)return i;if(null===i||"object"!=typeof i&&"function"!=typeof i)return{default:i};var t=Dp(e);if(t&&t.has(i))return t.get(i);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in i)if("default"!==a&&Object.prototype.hasOwnProperty.call(i,a)){var s=n?Object.getOwnPropertyDescriptor(i,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=i[a]}return r.default=i,t&&t.set(i,r),r}(Pp());function Dp(i){if("function"!=typeof WeakMap)return null;var e=new WeakMap,t=new WeakMap;return(Dp=function(n){return n?t:e})(i)}var Da=function(e){return new wS.default(e)};Object.assign(Da,bS),delete Da.__esModule;var kS=Da;Gr.default=kS,Ip.exports=Gr.default}));function Ge(i){return["fontSize","outline"].includes(i)?e=>("function"==typeof e&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):"fontFamily"===i?e=>{"function"==typeof e&&(e=e({}));let t=Array.isArray(e)&&ne(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(i)?e=>("function"==typeof e&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(i)?e=>("function"==typeof e&&(e=e({})),"string"==typeof e&&(e=V.list.comma(e).join(" ")),e):(e,t={})=>("function"==typeof e&&(e=e(t)),e)}var Rt,rd,Hr=C((()=>{l(),nt(),kt()})),Lp=v(((O3,Ba)=>{l();var{Rule:qp,AtRule:SS}=ge(),Rp=Re();function Ia(i,e){let t;try{Rp((r=>{t=r})).processSync(i)}catch(r){throw i.includes(":")?e?e.error("Missed semicolon"):r:e?e.error(r.message):r}return t.at(0)}function Mp(i,e){let t=!1;return i.each((r=>{if("nesting"===r.type){let n=e.clone({});"&"!==r.value?r.replaceWith(Ia(r.value.replace("&",n.toString()))):r.replaceWith(n),t=!0}else"nodes"in r&&r.nodes&&Mp(r,e)&&(t=!0)})),t}function Bp(i,e){let t=[];return i.selectors.forEach((r=>{let n=Ia(r,i);e.selectors.forEach((a=>{if(!a)return;let s=Ia(a,e);Mp(s,n)||(s.prepend(Rp.combinator({value:" "})),s.prepend(n.clone({}))),t.push(s.toString())}))})),t}function on(i,e){let t=i.prev();for(e.after(i);t&&"comment"===t.type;){let r=t.prev();e.after(t),t=r}return i}function qa(i,e,t){let r=new qp({selector:i,nodes:[]});return r.append(e),t.after(r),r}function Fp(i,e){let t={};for(let r of i)t[r]=!0;if(e)for(let r of e)t[r.replace(/^@/,"")]=!0;return t}function OS(i){let e=i[Np];if(e){let r,a,s,o,t=i.nodes,n=-1,u=function(i){let e=[],t=i.parent;for(;t&&t instanceof SS;)e.push(t),t=t.parent;return e}(i);if(u.forEach(((c,f)=>{if(e(c.name))r=c,n=f,s=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),a=a||o}})),r?s?(a.append(t),r.after(s)):r.after(t):i.after(t),i.next()&&r){let c;u.slice(0,n+1).forEach(((f,d,p)=>{let m=c;c=f.clone({nodes:[]}),m&&c.append(m);let w=[],y=(p[d-1]||i).next();for(;y;)w.push(y),y=y.next();c.append(w)})),c&&(s||t[t.length-1]).after(c)}}else i.after(i.nodes);i.remove()}var Ra=Symbol("rootRuleMergeSel"),Np=Symbol("rootRuleEscapes");function ES(i){let{params:e}=i,{type:t,selector:r,escapes:n}=function(i){let e=(i=i.trim()).match(/^\((.*)\)$/);if(!e)return{type:"basic",selector:i};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let r="with"===t[1],n=Object.fromEntries(t[2].trim().split(/\s+/).map((s=>[s,!0])));if(r&&n.all)return{type:"noop"};let a=s=>!!n[s];return n.all?a=()=>!0:r&&(a=s=>"all"!==s&&!n[s]),{type:"withrules",escapes:a}}return{type:"unknown"}}(e);if("unknown"===t)throw i.error(`Unknown @${i.name} parameter ${JSON.stringify(e)}`);if("basic"===t&&r){let a=new qp({selector:r,nodes:i.nodes});i.removeAll(),i.append(a)}i[Np]=n,i[Ra]=n?!n("all"):"noop"===t}var Ma=Symbol("hasRootRule");Ba.exports=(i={})=>{let e=Fp(["media","supports","layer","container"],i.bubble),t=function(i){return function e(t,r,n,a=n){let s=[];if(r.each((o=>{"rule"===o.type&&n?a&&(o.selectors=Bp(t,o)):"atrule"===o.type&&o.nodes?i[o.name]?e(t,o,a):!1!==r[Ra]&&s.push(o):s.push(o)})),n&&s.length){let o=t.clone({nodes:[]});for(let u of s)o.append(u);r.prepend(o)}}}(e),r=Fp(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],i.unwrap),n=(i.rootRuleName||"at-root").replace(/^@/,""),a=i.preserveEmpty;return{postcssPlugin:"postcss-nested",Once(s){s.walkAtRules(n,(o=>{ES(o),s[Ma]=!0}))},Rule(s){let o=!1,u=s,c=!1,f=[];s.each((d=>{"rule"===d.type?(f.length&&(u=qa(s.selector,f,u),f=[]),c=!0,o=!0,d.selectors=Bp(s,d),u=on(d,u)):"atrule"===d.type?(f.length&&(u=qa(s.selector,f,u),f=[]),d.name===n?(o=!0,t(s,d,!0,d[Ra]),u=on(d,u)):e[d.name]?(c=!0,o=!0,t(s,d,!0),u=on(d,u)):r[d.name]?(c=!0,o=!0,t(s,d,!1),u=on(d,u)):c&&f.push(d)):"decl"===d.type&&c&&f.push(d)})),f.length&&(u=qa(s.selector,f,u)),o&&!0!==a&&(s.raws.semicolon=!0,0===s.nodes.length&&s.remove())},RootExit(s){s[Ma]&&(s.walkAtRules(n,OS),s[Ma]=!1)}}},Ba.exports.postcss=!0})),Vp=v(((E3,zp)=>{l();var $p=/-(\w|$)/g,jp=(i,e)=>e.toUpperCase();zp.exports=i=>"float"===(i=i.toLowerCase())?"cssFloat":i.startsWith("-ms-")?i.substr(1).replace($p,jp):i.replace($p,jp)})),La=v(((T3,Up)=>{l();var PS=Vp(),DS={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function Fa(i){return void 0===i.nodes||Na(i)}function Na(i){let e,t={};return i.each((r=>{if("atrule"===r.type)e="@"+r.name,r.params&&(e+=" "+r.params),void 0===t[e]?t[e]=Fa(r):Array.isArray(t[e])?t[e].push(Fa(r)):t[e]=[t[e],Fa(r)];else if("rule"===r.type){let n=Na(r);if(t[r.selector])for(let a in n)t[r.selector][a]=n[a];else t[r.selector]=n}else if("decl"===r.type){e="-"===r.prop[0]&&"-"===r.prop[1]||r.parent&&":export"===r.parent.selector?r.prop:PS(r.prop);let n=r.value;!isNaN(r.value)&&DS[e]&&(n=parseFloat(r.value)),r.important&&(n+=" !important"),void 0===t[e]?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}})),t}Up.exports=Na})),ln=v(((P3,Yp)=>{l();var Yr=ge(),Wp=/\s*!important\s*$/i,IS={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function Gp(i,e,t){!1===t||null===t||(e.startsWith("--")||(e=function(i){return i.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}(e)),"number"==typeof t&&(0===t||IS[e]?t=t.toString():t+="px"),"css-float"===e&&(e="float"),Wp.test(t)?(t=t.replace(Wp,""),i.push(Yr.decl({prop:e,value:t,important:!0}))):i.push(Yr.decl({prop:e,value:t})))}function Hp(i,e,t){let r=Yr.atRule({name:e[1],params:e[3]||""});"object"==typeof t&&(r.nodes=[],$a(t,r)),i.push(r)}function $a(i,e){let t,r,n;for(t in i)if(r=i[t],null!=r)if("@"===t[0]){let a=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(r))for(let s of r)Hp(e,a,s);else Hp(e,a,r)}else if(Array.isArray(r))for(let a of r)Gp(e,t,a);else"object"==typeof r?(n=Yr.rule({selector:t}),$a(r,n),e.push(n)):Gp(e,t,r)}Yp.exports=function(i){let e=Yr.root();return $a(i,e),e}})),ja=v(((D3,Qp)=>{l();var RS=La();Qp.exports=function(e){return console&&console.warn&&e.warnings().forEach((t=>{let r=t.plugin||"PostCSS";console.warn(r+": "+t.text)})),RS(e.root)}})),Xp=v(((I3,Jp)=>{l();var MS=ge(),BS=ja(),FS=ln();Jp.exports=function(e){let t=MS(e);return async r=>{let n=await t.process(r,{parser:FS,from:void 0});return BS(n)}}})),Zp=v(((q3,Kp)=>{l();var NS=ge(),LS=ja(),$S=ln();Kp.exports=function(i){let e=NS(i);return t=>{let r=e.process(t,{parser:$S,from:void 0});return LS(r)}}})),td=v(((R3,ed)=>{l();var jS=La(),zS=ln(),VS=Xp(),US=Zp();ed.exports={objectify:jS,parse:zS,async:VS,sync:US}})),id=C((()=>{l(),Rt=K(td()),rd=Rt.default,Rt.default.objectify,Rt.default.parse,Rt.default.async,Rt.default.sync}));function Mt(i){return Array.isArray(i)?i.flatMap((e=>V([(0,nd.default)({bubble:["screen"]})]).process(e,{parser:rd}).root.nodes)):Mt([i])}var nd,za=C((()=>{l(),nt(),nd=K(Lp()),id()}));function Bt(i,e,t=!1){if(""===i)return e;let r="string"==typeof e?(0,sd.default)().astSync(e):e;return r.walkClasses((n=>{let a=n.value,s=t&&a.startsWith("-");n.value=s?`-${i}${a.slice(1)}`:`${i}${a}`})),"string"==typeof e?r.toString():r}var sd,un=C((()=>{l(),sd=K(Re())}));function de(i){let e=ad.default.className();return e.value=i,mt(e?.raws?.value??e.value)}var ad,Ft=C((()=>{l(),ad=K(Re()),mi()}));function Va(i){return mt(`.${de(i)}`)}function fn(i,e){return Va(Qr(i,e))}function Qr(i,e){return"DEFAULT"===e?i:"-"===e||"-DEFAULT"===e?`-${i}`:e.startsWith("-")?`-${i}${e}`:e.startsWith("/")?`${i}${e}`:`${i}-${e}`}var Ua=C((()=>{l(),Ft(),mi()}));function P(i,e=[[i,[i]]],{filterDefault:t=!1,...r}={}){let n=Ge(i);return function({matchUtilities:a,theme:s}){for(let o of e){a((Array.isArray(o[0])?o:[o]).reduce(((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce(((m,w)=>Array.isArray(w)?Object.assign(m,{[w[0]]:w[1]}):Object.assign(m,{[w]:n(p)})),{})})),{}),{...r,values:t?Object.fromEntries(Object.entries(s(i)??{}).filter((([c])=>"DEFAULT"!==c))):s(i)})}}}var od=C((()=>{l(),Hr()}));function st(i){return(i=Array.isArray(i)?i:[i]).map((e=>{let t=e.values.map((r=>void 0!==r.raw?r.raw:[r.min&&`(min-width: ${r.min})`,r.max&&`(max-width: ${r.max})`].filter(Boolean).join(" and ")));return e.not?`not all and ${t}`:t})).join(", ")}var cn=C((()=>{l()}));var WS,GS,HS,YS,QS,JS,XS,KS,ld,ZS,fd,ie,Ha,Ya,ud=C((()=>{l(),WS=new Set(["normal","reverse","alternate","alternate-reverse"]),GS=new Set(["running","paused"]),HS=new Set(["none","forwards","backwards","both"]),YS=new Set(["infinite"]),QS=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),JS=["cubic-bezier","steps"],XS=/\,(?![^(]*\))/g,KS=/\ +(?![^(]*\))/g,ld=/^(-?[\d.]+m?s)$/,ZS=/^(\d+)$/})),cd=C((()=>{l(),ie=fd=i=>Object.assign({},...Object.entries(i??{}).flatMap((([e,t])=>"object"==typeof t?Object.entries(fd(t)).map((([r,n])=>({[e+("DEFAULT"===r?"":`-${r}`)]:n}))):[{[`${e}`]:t}])))})),Ga=C((()=>{"tailwindcss","A utility-first CSS framework for rapidly building custom user interfaces.","MIT","lib/index.js","types/index.d.ts","https://github.com/tailwindlabs/tailwindcss.git","https://github.com/tailwindlabs/tailwindcss/issues","https://tailwindcss.com",Ya={name:"tailwindcss",version:Ha="3.4.1",description:"A utility-first CSS framework for rapidly building custom user interfaces.",license:"MIT",main:"lib/index.js",types:"types/index.d.ts",repository:"https://github.com/tailwindlabs/tailwindcss.git",bugs:"https://github.com/tailwindlabs/tailwindcss/issues",homepage:"https://tailwindcss.com",bin:{tailwind:"lib/cli.js",tailwindcss:"lib/cli.js"},tailwindcss:{engine:"stable"},scripts:{prebuild:"npm run generate && rimraf lib",build:"swc src --out-dir lib --copy-files --config jsc.transform.optimizer.globals.vars.__OXIDE__='\"false\"'",postbuild:"esbuild lib/cli-peer-dependencies.js --bundle --platform=node --outfile=peers/index.js --define:process.env.CSS_TRANSFORMER_WASM=false","rebuild-fixtures":"npm run build && node -r @swc/register scripts/rebuildFixtures.js",style:"eslint .",pretest:"npm run generate",test:"jest","test:integrations":"npm run test --prefix ./integrations","install:integrations":"node scripts/install-integrations.js","generate:plugin-list":"node -r @swc/register scripts/create-plugin-list.js","generate:types":"node -r @swc/register scripts/generate-types.js",generate:"npm run generate:plugin-list && npm run generate:types","release-channel":"node ./scripts/release-channel.js","release-notes":"node ./scripts/release-notes.js",prepublishOnly:"npm install --force && npm run build"},files:["src/*","cli/*","lib/*","peers/*","scripts/*.js","stubs/*","nesting/*","types/**/*","*.d.ts","*.css","*.js"],devDependencies:{"@swc/cli":"^0.1.62","@swc/core":"^1.3.55","@swc/jest":"^0.2.26","@swc/register":"^0.1.10",autoprefixer:"^10.4.14",browserslist:"^4.21.5",concurrently:"^8.0.1",cssnano:"^6.0.0",esbuild:"^0.17.18",eslint:"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1",jest:"^29.6.0","jest-diff":"^29.6.0",lightningcss:"1.18.0",prettier:"^2.8.8",rimraf:"^5.0.0","source-map-js":"^1.0.2",turbo:"^1.9.3"},dependencies:{"@alloc/quick-lru":"^5.2.0",arg:"^5.0.2",chokidar:"^3.5.3",didyoumean:"^1.2.2",dlv:"^1.1.3","fast-glob":"^3.3.0","glob-parent":"^6.0.2","is-glob":"^4.0.3",jiti:"^1.19.1",lilconfig:"^2.1.0",micromatch:"^4.0.5","normalize-path":"^3.0.0","object-hash":"^3.0.0",picocolors:"^1.0.0",postcss:"^8.4.23","postcss-import":"^15.1.0","postcss-js":"^4.0.1","postcss-load-config":"^4.0.1","postcss-nested":"^6.0.1","postcss-selector-parser":"^6.0.11",resolve:"^1.22.2",sucrase:"^3.32.0"},browserslist:["> 1%","not edge <= 18","not ie 11","not op_mini all"],jest:{testTimeout:3e4,setupFilesAfterEnv:["/jest/customMatchers.js"],testPathIgnorePatterns:["/node_modules/","/integrations/","/standalone-cli/","\\.test\\.skip\\.js$"],transformIgnorePatterns:["node_modules/(?!lightningcss)"],transform:{"\\.js$":"@swc/jest","\\.ts$":"@swc/jest"}},engines:{node:">=14.0.0"}}}));function at(i,e=!0){return Array.isArray(i)?i.map((t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if("string"==typeof t)return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[r,n]=t;return r=r.toString(),"string"==typeof n?{name:r,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:r,not:!1,values:n.map((a=>dd(a)))}:{name:r,not:!1,values:[dd(n)]}})):at(Object.entries(i??{}),!1)}function pn(i){return 1!==i.values.length?{result:!1,reason:"multiple-values"}:void 0!==i.values[0].raw?{result:!1,reason:"raw-values"}:void 0!==i.values[0].min&&void 0!==i.values[0].max?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function dn(i,e){return"object"==typeof i?i:{name:"arbitrary-screen",values:[{[e]:i}]}}function dd({"min-width":i,min:e=i,max:t,raw:r}={}){return{min:e,max:t,raw:r}}var hn=C((()=>{l()}));function mn(i,e){i.walkDecls((t=>{if(e.includes(t.prop))t.remove();else for(let r of e)t.value.includes(`/ var(${r})`)&&(t.value=t.value.replace(`/ var(${r})`,""))}))}var Y,Te,Me,Be,md,hd=C((()=>{l()})),gd=C((()=>{l(),je(),gt(),nt(),od(),cn(),Ft(),ud(),cd(),or(),cs(),kt(),Hr(),Ga(),Oe(),hn(),ns(),hd(),ze(),fr(),Xr(),Y={childVariant:({addVariant:i})=>{i("*","& > *")},pseudoElementVariants:({addVariant:i})=>{i("first-letter","&::first-letter"),i("first-line","&::first-line"),i("marker",[({container:e})=>(mn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(mn(e,["--tw-text-opacity"]),"&::marker")]),i("selection",["& *::selection","&::selection"]),i("file","&::file-selector-button"),i("placeholder","&::placeholder"),i("backdrop","&::backdrop"),i("before",(({container:e})=>(e.walkRules((t=>{let r=!1;t.walkDecls("content",(()=>{r=!0})),r||t.prepend(V.decl({prop:"content",value:"var(--tw-content)"}))})),"&::before"))),i("after",(({container:e})=>(e.walkRules((t=>{let r=!1;t.walkDecls("content",(()=>{r=!0})),r||t.prepend(V.decl({prop:"content",value:"var(--tw-content)"}))})),"&::after")))},pseudoClassVariants:({addVariant:i,matchVariant:e,config:t,prefix:r})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:s})=>(mn(s,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",Z(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map((s=>Array.isArray(s)?s:[s,`&:${s}`]));for(let[s,o]of n)i(s,(u=>"function"==typeof o?o(u):o));let a={group:(s,{modifier:o})=>o?[`:merge(${r(".group")}\\/${de(o)})`," &"]:[`:merge(${r(".group")})`," &"],peer:(s,{modifier:o})=>o?[`:merge(${r(".peer")}\\/${de(o)})`," ~ &"]:[`:merge(${r(".peer")})`," ~ &"]};for(let[s,o]of Object.entries(a))e(s,((u="",c)=>{let f=N("function"==typeof u?u(c):u);f.includes("&")||(f="&"+f);let[d,p]=o("",c),m=null,w=null,x=0;for(let y=0;y{i("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),i("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:i})=>{i("motion-safe","@media (prefers-reduced-motion: no-preference)"),i("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:i,addVariant:e})=>{let[t,r=".dark"]=[].concat(i("darkMode","media"));if(!1===t&&(t="media",F.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),"variant"===t){let n;if(Array.isArray(r)||"function"==typeof r?n=r:"string"==typeof r&&(n=[r]),Array.isArray(n))for(let a of n)".dark"===a?(t=!1,F.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):a.includes("&")||(t=!1,F.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));r=n}"selector"===t?e("dark",`&:where(${r}, ${r} *)`):"media"===t?e("dark","@media (prefers-color-scheme: dark)"):"variant"===t?e("dark",r):"class"===t&&e("dark",`:is(${r} &)`)},printVariant:({addVariant:i})=>{i("print","@media print")},screenVariants:({theme:i,addVariant:e,matchVariant:t})=>{let r=i("screens")??{},n=Object.values(r).every((b=>"string"==typeof b)),a=at(i("screens")),s=new Set([]);function u(b){void 0!==b&&s.add(function(b){return b.match(/(\D+)$/)?.[1]??"(none)"}(b))}for(let b of a)for(let k of b.values)u(k.min),u(k.max);let f=s.size<=1;function p(b){return(k,S)=>function(i,e,t){let r=dn(e,i),n=dn(t,i),a=pn(r),s=pn(n);if("multiple-values"===a.reason||"multiple-values"===s.reason)throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if("raw-values"===a.reason||"raw-values"===s.reason)throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if("min-and-max"===a.reason||"min-and-max"===s.reason)throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:u}=r.values[0],{min:c,max:f}=n.values[0];e.not&&([o,u]=[u,o]),t.not&&([c,f]=[f,c]),o=void 0===o?o:parseFloat(o),u=void 0===u?u:parseFloat(u),c=void 0===c?c:parseFloat(c),f=void 0===f?f:parseFloat(f);let[d,p]="min"===i?[o,c]:[f,u];return d-p}(b,k.value,S.value)}let m=p("max"),w=p("min");function x(b){return k=>n?f?"string"!=typeof k||function(b){return u(b),1===s.size}(k)?[`@media ${st(dn(k,b))}`]:(F.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]):(F.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]):(F.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[])}var b;t("max",x("max"),{sort:m,values:n?(b="max",Object.fromEntries(a.filter((k=>pn(k).result)).map((k=>{let{min:S,max:_}=k.values[0];return"min"===b&&void 0!==S?k:"min"===b&&void 0!==_?{...k,not:!k.not}:"max"===b&&void 0!==_?k:"max"===b&&void 0!==S?{...k,not:!k.not}:void 0})).map((k=>[k.name,k])))):{}});let y="min-screens";for(let b of a)e(b.name,`@media ${st(b)}`,{id:y,sort:n&&f?w:void 0,value:b});t("min",x("min"),{id:y,sort:w})},supportsVariants:({matchVariant:i,theme:e})=>{i("supports",((t="")=>{let r=N(t),n=/^\w*\s*\(/.test(r);return r=n?r.replace(/\b(and|or|not)\b/g," $1 "):r,n||(r.includes(":")||(r=`${r}: var(--tw)`),r.startsWith("(")&&r.endsWith(")")||(r=`(${r})`)),`@supports ${r}`}),{values:e("supports")??{}})},hasVariants:({matchVariant:i})=>{i("has",(e=>`&:has(${N(e)})`),{values:{}}),i("group-has",((e,{modifier:t})=>t?`:merge(.group\\/${t}):has(${N(e)}) &`:`:merge(.group):has(${N(e)}) &`),{values:{}}),i("peer-has",((e,{modifier:t})=>t?`:merge(.peer\\/${t}):has(${N(e)}) ~ &`:`:merge(.peer):has(${N(e)}) ~ &`),{values:{}})},ariaVariants:({matchVariant:i,theme:e})=>{i("aria",(t=>`&[aria-${N(t)}]`),{values:e("aria")??{}}),i("group-aria",((t,{modifier:r})=>r?`:merge(.group\\/${r})[aria-${N(t)}] &`:`:merge(.group)[aria-${N(t)}] &`),{values:e("aria")??{}}),i("peer-aria",((t,{modifier:r})=>r?`:merge(.peer\\/${r})[aria-${N(t)}] ~ &`:`:merge(.peer)[aria-${N(t)}] ~ &`),{values:e("aria")??{}})},dataVariants:({matchVariant:i,theme:e})=>{i("data",(t=>`&[data-${N(t)}]`),{values:e("data")??{}}),i("group-data",((t,{modifier:r})=>r?`:merge(.group\\/${r})[data-${N(t)}] &`:`:merge(.group)[data-${N(t)}] &`),{values:e("data")??{}}),i("peer-data",((t,{modifier:r})=>r?`:merge(.peer\\/${r})[data-${N(t)}] ~ &`:`:merge(.peer)[data-${N(t)}] ~ &`),{values:e("data")??{}})},orientationVariants:({addVariant:i})=>{i("portrait","@media (orientation: portrait)"),i("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:i})=>{i("contrast-more","@media (prefers-contrast: more)"),i("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:i})=>{i("forced-colors","@media (forced-colors: active)")}},Te=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),Me=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),Be=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),md={preflight:({addBase:i})=>{let e=V.parse("*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}");i([V.comment({text:`! tailwindcss v${Ha} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:function({addComponents:t,theme:r}){let n=at(r("container.screens",r("screens"))),a=function(t=[]){return t.flatMap((r=>r.values.map((n=>n.min)))).filter((r=>void 0!==r))}(n),s=function(t,r,n){if(void 0===n)return[];if("object"!=typeof n||null===n)return[{screen:"DEFAULT",minWidth:0,padding:n}];let a=[];n.DEFAULT&&a.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let s of t)for(let o of r)for(let{min:u}of o.values)u===s&&a.push({minWidth:s,padding:n[o.name]});return a}(a,n,r("container.padding")),o=c=>{let f=s.find((d=>d.minWidth===c));return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},u=Array.from(new Set(a.slice().sort(((c,f)=>parseInt(c)-parseInt(f))))).map((c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}})));t([{".container":Object.assign({width:"100%"},r("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...u])},accessibility:({addUtilities:i})=>{i({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:i})=>{i({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:i})=>{i({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:i})=>{i({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:P("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:i})=>{i({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:P("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:P("order",void 0,{supportsNegativeValues:!0}),gridColumn:P("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:P("gridColumnStart",[["col-start",["gridColumnStart"]]]),gridColumnEnd:P("gridColumnEnd",[["col-end",["gridColumnEnd"]]]),gridRow:P("gridRow",[["row",["gridRow"]]]),gridRowStart:P("gridRowStart",[["row-start",["gridRowStart"]]]),gridRowEnd:P("gridRowEnd",[["row-end",["gridRowEnd"]]]),float:({addUtilities:i})=>{i({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:i})=>{i({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:P("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:i})=>{i({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"line-clamp":r=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${r}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:i})=>{i({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:P("aspectRatio",[["aspect",["aspect-ratio"]]]),size:P("size",[["size",["width","height"]]]),height:P("height",[["h",["height"]]]),maxHeight:P("maxHeight",[["max-h",["maxHeight"]]]),minHeight:P("minHeight",[["min-h",["minHeight"]]]),width:P("width",[["w",["width"]]]),minWidth:P("minWidth",[["min-w",["minWidth"]]]),maxWidth:P("maxWidth",[["max-w",["maxWidth"]]]),flex:P("flex"),flexShrink:P("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:P("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:P("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:i})=>{i({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:i})=>{i({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:i})=>{i({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:i,matchUtilities:e,theme:t})=>{i("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":r=>({"--tw-border-spacing-x":r,"--tw-border-spacing-y":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":r=>({"--tw-border-spacing-x":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":r=>({"--tw-border-spacing-y":r,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:P("transformOrigin",[["origin",["transformOrigin"]]]),translate:P("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Te]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Te]]]]],{supportsNegativeValues:!0}),rotate:P("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Te]]]],{supportsNegativeValues:!0}),skew:P("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Te]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Te]]]]],{supportsNegativeValues:!0}),scale:P("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Te]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Te]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Te]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:i,addUtilities:e})=>{i("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Te},".transform-cpu":{transform:Te},".transform-gpu":{transform:Te.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:i,theme:e,config:t})=>{let r=a=>de(t("prefix")+a),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map((([a,s])=>[a,{[`@keyframes ${r(a)}`]:s}])));i({animate:a=>{let s=function(i){return i.split(XS).map((t=>{let r=t.trim(),n={value:r},a=r.split(KS),s=new Set;for(let o of a)!s.has("DIRECTIONS")&&WS.has(o)?(n.direction=o,s.add("DIRECTIONS")):!s.has("PLAY_STATES")&&GS.has(o)?(n.playState=o,s.add("PLAY_STATES")):!s.has("FILL_MODES")&&HS.has(o)?(n.fillMode=o,s.add("FILL_MODES")):s.has("ITERATION_COUNTS")||!YS.has(o)&&!ZS.test(o)?!s.has("TIMING_FUNCTION")&&QS.has(o)||!s.has("TIMING_FUNCTION")&&JS.some((u=>o.startsWith(`${u}(`)))?(n.timingFunction=o,s.add("TIMING_FUNCTION")):!s.has("DURATION")&&ld.test(o)?(n.duration=o,s.add("DURATION")):!s.has("DELAY")&&ld.test(o)?(n.delay=o,s.add("DELAY")):s.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,s.add("NAME")):(n.iterationCount=o,s.add("ITERATION_COUNTS"));return n}))}(a);return[...s.flatMap((o=>n[o.name])),{animation:s.map((({name:o,value:u})=>void 0===o||void 0===n[o]?u:u.replace(o,r(o)))).join(", ")}]}},{values:e("animation")})},cursor:P("cursor"),touchAction:({addDefaults:i,addUtilities:e})=>{i("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:i})=>{i({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:i})=>{i({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:i,addUtilities:e})=>{i("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:i})=>{i({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:i})=>{i({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:P("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:P("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:i})=>{i({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:P("listStyleType",[["list",["listStyleType"]]]),listStyleImage:P("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:i})=>{i({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:P("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:i})=>{i({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:i})=>{i({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:i})=>{i({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:P("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:i})=>{i({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:P("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:P("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:P("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:i})=>{i({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:i})=>{i({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:i})=>{i({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:i})=>{i({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:i})=>{i({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:i})=>{i({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:i})=>{i({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:i})=>{i({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:P("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"space-x":r=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${r="0"===r?"0px":r} * var(--tw-space-x-reverse))`,"margin-left":`calc(${r} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":r=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${r="0"===r?"0px":r} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${r} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:i,addUtilities:e,theme:t})=>{i({"divide-x":r=>({"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${r="0"===r?"0px":r} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${r} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":r=>({"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${r="0"===r?"0px":r} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${r} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:i})=>{i({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({divide:r=>t("divideOpacity")?{"& > :not([hidden]) ~ :not([hidden])":ae({color:r,property:"border-color",variable:"--tw-divide-opacity"})}:{"& > :not([hidden]) ~ :not([hidden])":{"border-color":L(r)}}},{values:(({DEFAULT:r,...n})=>n)(ie(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:i,theme:e})=>{i({"divide-opacity":t=>({"& > :not([hidden]) ~ :not([hidden])":{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:i})=>{i({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:i})=>{i({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:i})=>{i({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:i})=>{i({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:i})=>{i({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:i})=>{i({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:i})=>{i({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:i})=>{i({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:i})=>{i({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:i})=>{i({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:i})=>{i({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:P("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:P("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:i})=>{i({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({border:r=>t("borderOpacity")?ae({color:r,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]}),i({"border-x":r=>t("borderOpacity")?ae({color:r,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":L(r),"border-right-color":L(r)},"border-y":r=>t("borderOpacity")?ae({color:r,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":L(r),"border-bottom-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]}),i({"border-s":r=>t("borderOpacity")?ae({color:r,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":L(r)},"border-e":r=>t("borderOpacity")?ae({color:r,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":L(r)},"border-t":r=>t("borderOpacity")?ae({color:r,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":L(r)},"border-r":r=>t("borderOpacity")?ae({color:r,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":L(r)},"border-b":r=>t("borderOpacity")?ae({color:r,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":L(r)},"border-l":r=>t("borderOpacity")?ae({color:r,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":L(r)}},{values:(({DEFAULT:r,...n})=>n)(ie(e("borderColor"))),type:["color","any"]})},borderOpacity:P("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({bg:r=>t("backgroundOpacity")?ae({color:r,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":L(r)}},{values:ie(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:P("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:P("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function i(e){return De(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:r}){r("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:ie(t("gradientColorStops")),type:["color","any"]},a={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:s=>{let o=i(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${L(s)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:s=>({"--tw-gradient-from-position":s})},a),e({via:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${i(s)} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${L(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`})},n),e({via:s=>({"--tw-gradient-via-position":s})},a),e({to:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${L(s)} var(--tw-gradient-to-position)`})},n),e({to:s=>({"--tw-gradient-to-position":s})},a)}})(),boxDecorationBreak:({addUtilities:i})=>{i({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:P("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:i})=>{i({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:i})=>{i({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:P("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:i})=>{i({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:i})=>{i({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:i,theme:e})=>{i({fill:t=>({fill:L(t)})},{values:ie(e("fill")),type:["color","any"]})},stroke:({matchUtilities:i,theme:e})=>{i({stroke:t=>({stroke:L(t)})},{values:ie(e("stroke")),type:["color","url","any"]})},strokeWidth:P("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:i})=>{i({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:P("objectPosition",[["object",["object-position"]]]),padding:P("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:i})=>{i({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:P("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:i,matchUtilities:e})=>{i({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:i,theme:e})=>{i({font:t=>{let[r,n={}]=Array.isArray(t)&&ne(t[1])?t:[t],{fontFeatureSettings:a,fontVariationSettings:s}=n;return{"font-family":Array.isArray(r)?r.join(", "):r,...void 0===a?{}:{"font-feature-settings":a},...void 0===s?{}:{"font-variation-settings":s}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:i,theme:e})=>{i({text:(t,{modifier:r})=>{let[n,a]=Array.isArray(t)?t:[t];if(r)return{"font-size":n,"line-height":r};let{lineHeight:s,letterSpacing:o,fontWeight:u}=ne(a)?a:{lineHeight:a};return{"font-size":n,...void 0===s?{}:{"line-height":s},...void 0===o?{}:{"letter-spacing":o},...void 0===u?{}:{"font-weight":u}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:P("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:i})=>{i({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:i})=>{i({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:i,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";i("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:P("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:P("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({text:r=>t("textOpacity")?ae({color:r,property:"color",variable:"--tw-text-opacity"}):{color:L(r)}},{values:ie(e("textColor")),type:["color","any"]})},textOpacity:P("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:i})=>{i({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:i,theme:e})=>{i({decoration:t=>({"text-decoration-color":L(t)})},{values:ie(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:i})=>{i({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:P("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:P("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:i})=>{i({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({placeholder:r=>t("placeholderOpacity")?{"&::placeholder":ae({color:r,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:L(r)}}},{values:ie(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:i,theme:e})=>{i({"placeholder-opacity":t=>({"&::placeholder":{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:i,theme:e})=>{i({caret:t=>({"caret-color":L(t)})},{values:ie(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:i,theme:e})=>{i({accent:t=>({"accent-color":L(t)})},{values:ie(e("accentColor")),type:["color","any"]})},opacity:P("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:i})=>{i({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:i})=>{i({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let i=Ge("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:r,theme:n}){r(" box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:a=>{let s=yi(a=i(a));for(let o of s)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":"none"===a?"0 0 #0000":a,"--tw-shadow-colored":"none"===a?"0 0 #0000":Iu(s),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:i,theme:e})=>{i({shadow:t=>({"--tw-shadow-color":L(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:ie(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:i})=>{i({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:P("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:P("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:i,theme:e})=>{i({outline:t=>({"outline-color":L(t)})},{values:ie(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:i,addDefaults:e,addUtilities:t,theme:r,config:n})=>{let a=(()=>{if(Z(n(),"respectDefaultRingColorOpacity"))return r("ringColor.DEFAULT");let s=r("ringOpacity.DEFAULT","0.5");return r("ringColor")?.DEFAULT?De(r("ringColor")?.DEFAULT,s,`rgb(147 197 253 / ${s})`):`rgb(147 197 253 / ${s})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":r("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":r("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":a,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),i({ring:s=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:r("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:i,theme:e,corePlugins:t})=>{i({ring:r=>t("ringOpacity")?ae({color:r,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":L(r)}},{values:Object.fromEntries(Object.entries(ie(e("ringColor"))).filter((([r])=>"DEFAULT"!==r))),type:["color","any"]})},ringOpacity:i=>{let{config:e}=i;return P("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!Z(e(),"respectDefaultRingColorOpacity")})(i)},ringOffsetWidth:P("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:i,theme:e})=>{i({"ring-offset":t=>({"--tw-ring-offset-color":L(t)})},{values:ie(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:i,theme:e})=>{i({blur:t=>({"--tw-blur":`blur(${t})`,"@defaults filter":{},filter:Me})},{values:e("blur")})},brightness:({matchUtilities:i,theme:e})=>{i({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:Me})},{values:e("brightness")})},contrast:({matchUtilities:i,theme:e})=>{i({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:Me})},{values:e("contrast")})},dropShadow:({matchUtilities:i,theme:e})=>{i({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map((r=>`drop-shadow(${r})`)).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:Me})},{values:e("dropShadow")})},grayscale:({matchUtilities:i,theme:e})=>{i({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:Me})},{values:e("grayscale")})},hueRotate:({matchUtilities:i,theme:e})=>{i({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:Me})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:i,theme:e})=>{i({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:Me})},{values:e("invert")})},saturate:({matchUtilities:i,theme:e})=>{i({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:Me})},{values:e("saturate")})},sepia:({matchUtilities:i,theme:e})=>{i({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:Me})},{values:e("sepia")})},filter:({addDefaults:i,addUtilities:e})=>{i("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:Me},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:i,theme:e})=>{i({"backdrop-blur":t=>({"--tw-backdrop-blur":`blur(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:i,theme:e})=>{i({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:i,theme:e})=>{i({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:i,theme:e})=>{i({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:i,theme:e})=>{i({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:i,theme:e})=>{i({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:i,theme:e})=>{i({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:i,theme:e})=>{i({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:i,theme:e})=>{i({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Be})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:i,addUtilities:e})=>{i("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"backdrop-filter":Be},".backdrop-filter-none":{"backdrop-filter":"none"}})},transitionProperty:({matchUtilities:i,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),r=e("transitionDuration.DEFAULT");i({transition:n=>({"transition-property":n,..."none"===n?{}:{"transition-timing-function":t,"transition-duration":r}})},{values:e("transitionProperty")})},transitionDelay:P("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:P("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:P("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:P("willChange",[["will-change",["will-change"]]]),content:P("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:i})=>{i({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}}));function yC(i){if(void 0===i)return!1;if("true"===i||"1"===i)return!0;if("false"===i||"0"===i)return!1;if("*"===i)return!0;let e=i.split(",").map((t=>t.split(":")[0]));return!e.includes("-tailwindcss")&&!!e.includes("tailwindcss")}var Pe,yd,wd,gn,Qa,He,Kr,ot=C((()=>{l(),Ga(),Pe=void 0!==h?{NODE_ENV:"production",DEBUG:yC(h.env.DEBUG),ENGINE:Ya.tailwindcss.engine}:{NODE_ENV:"production",DEBUG:!1,ENGINE:Ya.tailwindcss.engine},yd=new Map,wd=new Map,gn=new Map,Qa=new Map,He=new String("*"),Kr=Symbol("__NONE__")}));function Nt(i){let e=[],t=!1;for(let r=0;r0)}var bd,vd,wC,Ja=C((()=>{l(),bd=new Map([["{","}"],["[","]"],["(",")"]]),vd=new Map(Array.from(bd.entries()).map((([i,e])=>[e,i]))),wC=new Set(['"',"'","`"])}));function Lt(i){let[e]=xd(i);return e.forEach((([t,r])=>t.removeChild(r))),i.nodes.push(...e.map((([,t])=>t))),i}function xd(i){let e=[],t=null;for(let r of i.nodes)if("combinator"===r.type)e=e.filter((([,n])=>Ka(n).includes("jumpable"))),t=null;else if("pseudo"===r.type){bC(r)?(t=r,e.push([i,r,null])):t&&vC(r,t)?e.push([i,r,t]):t=null;for(let n of r.nodes??[]){let[a,s]=xd(n);t=s||t,e.push(...a)}}return[e,t]}function kd(i){return i.value.startsWith("::")||void 0!==Xa[i.value]}function bC(i){return kd(i)&&Ka(i).includes("terminal")}function vC(i,e){return"pseudo"===i.type&&!kd(i)&&Ka(e).includes("actionable")}function Ka(i){return Xa[i.value]??Xa.__default__}var Xa,yn=C((()=>{l(),Xa={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}}));function $t(i,{context:e,candidate:t}){let r=e?.tailwindConfig.prefix??"",n=i.map((s=>{let o=(0,Fe.default)().astSync(s.format);return{...s,ast:s.respectPrefix?Bt(r,o):o}})),a=Fe.default.root({nodes:[Fe.default.selector({nodes:[Fe.default.className({value:de(t)})]})]});for(let{ast:s}of n)[a,s]=kC(a,s),s.walkNesting((o=>o.replaceWith(...a.nodes[0].nodes))),a=s;return a}function Cd(i){let e=[];for(;i.prev()&&"combinator"!==i.prev().type;)i=i.prev();for(;i&&"combinator"!==i.type;)e.push(i),i=i.next();return e}function eo(i,e){let t=!1;i.walk((r=>{if("class"===r.type&&r.value===e)return t=!0,!1})),t||i.remove()}function wn(i,e,{context:t,candidate:r,base:n}){n=n??oe(r,t?.tailwindConfig?.separator??":").pop();let s=(0,Fe.default)().astSync(i);if(s.walkClasses((f=>{f.raws&&f.value.includes(n)&&(f.raws.value=de((0,Sd.default)(f.raws.value)))})),s.each((f=>eo(f,n))),0===s.length)return null;let o=Array.isArray(e)?$t(e,{context:t,candidate:r}):e;if(null===o)return s.toString();let u=Fe.default.comment({value:"/*__simple__*/"}),c=Fe.default.comment({value:"/*__simple__*/"});return s.walkClasses((f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(1===d.nodes.length)return void f.replaceWith(...p);let m=Cd(f);d.insertBefore(m[0],u),d.insertAfter(m[m.length-1],c);for(let x of p)d.insertBefore(m[0],x.clone());f.remove(),m=Cd(u);let w=d.index(u);d.nodes.splice(w,m.length,...function(i){return i.sort(((e,t)=>"tag"===e.type&&"class"===t.type?-1:"class"===e.type&&"tag"===t.type?1:"class"===e.type&&"pseudo"===t.type&&t.value.startsWith("::")?-1:"pseudo"===e.type&&e.value.startsWith("::")&&"class"===t.type?1:i.index(e)-i.index(t))),i}(Fe.default.selector({nodes:m})).nodes),u.remove(),c.remove()})),s.walkPseudos((f=>{f.value===Za&&f.replaceWith(f.nodes)})),s.each((f=>Lt(f))),s.toString()}function kC(i,e){let t=[];return i.walkPseudos((r=>{r.value===Za&&t.push({pseudo:r,value:r.nodes[0].toString()})})),e.walkPseudos((r=>{if(r.value!==Za)return;let n=r.nodes[0].toString(),a=t.find((c=>c.value===n));if(!a)return;let s=[],o=r.next();for(;o&&"combinator"!==o.type;)s.push(o),o=o.next();let u=o;a.pseudo.parent.insertAfter(a.pseudo,Fe.default.selector({nodes:s.map((c=>c.clone()))})),r.remove(),s.forEach((c=>c.remove())),u&&"combinator"===u.type&&u.remove()})),[i,e]}var Fe,Sd,Za,to=C((()=>{l(),Fe=K(Re()),Sd=K(Yi()),Ft(),un(),yn(),St(),Za=":merge"}));function bn(i,e){let t=(0,ro.default)().astSync(i);return t.each((r=>{"pseudo"===r.nodes[0].type&&":is"===r.nodes[0].value&&r.nodes.every((a=>"combinator"!==a.type))||(r.nodes=[ro.default.pseudo({value:":is",nodes:[r.clone()]})]),Lt(r)})),`${e} ${t.toString()}`}var ro,io=C((()=>{l(),ro=K(Re()),yn()}));function no(i){return SC.transformSync(i)}function AC(i,e){if(0===i.length||""===e.tailwindConfig.prefix)return i;for(let t of i){let[r]=t;if(r.options.respectPrefix){let n=V.root({nodes:[t[1].clone()]}),a=t[1].raws.tailwind.classCandidate;n.walkRules((s=>{let o=a.startsWith("-");s.selector=Bt(e.tailwindConfig.prefix,s.selector,o)})),t[1]=n.nodes[0]}}return i}function _C(i,e){if(0===i.length)return i;let t=[];function r(n){return n.parent&&"atrule"===n.parent.type&&"keyframes"===n.parent.name}for(let[n,a]of i){let s=V.root({nodes:[a.clone()]});s.walkRules((o=>{if(r(o))return;let u=(0,vn.default)().astSync(o.selector);u.each((c=>eo(c,e))),Uu(u,(c=>c===e?`!${c}`:c)),o.selector=u.toString(),o.walkDecls((c=>c.important=!0))})),t.push([{...n,important:!0},s.nodes[0]])}return t}function OC(i,e,t){if(0===e.length)return e;let r={modifier:null,value:Kr};{let[n,...a]=oe(i,"/");if(a.length>1&&(n=n+"/"+a.slice(0,-1).join("/"),a=a.slice(-1)),a.length&&!t.variantMap.has(i)&&(i=n,r.modifier=a[0],!Z(t.tailwindConfig,"generalizedModifiers")))return[]}if(i.endsWith("]")&&!i.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(i);if(n){let[,a,s,o]=n;if("@"===a&&"-"===s)return[];if("@"!==a&&""===s)return[];i=i.replace(`${s}[${o}]`,""),r.value=o}}if(oo(i)&&!t.variantMap.has(i)){let n=t.offsets.recordVariant(i),s=oe(N(i.slice(1,-1)),",");if(s.length>1)return[];if(!s.every(Cn))return[];let o=s.map(((u,c)=>[t.offsets.applyParallelOffset(n,c),Zr(u.trim())]));t.variantMap.set(i,o)}if(t.variantMap.has(i)){let n=oo(i),a=t.variantOptions.get(i)?.[Jr]??{},s=t.variantMap.get(i).slice(),o=[],u=!(n||!1===a.respectPrefix);for(let[c,f]of e){if("user"===c.layer)continue;let d=V.root({nodes:[f.clone()]});for(let[p,m,w]of s){let b=function(){x.raws.neededBackup||(x.raws.neededBackup=!0,x.walkRules((O=>O.raws.originalSelector=O.selector)))},k=function(O){return b(),x.each((I=>{"rule"===I.type&&(I.selectors=I.selectors.map((B=>O({get className(){return no(B)},selector:B}))))})),x},x=(w??d).clone(),y=[],S=m({get container(){return b(),x},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(O){let I=x.nodes;x.removeAll(),O.append(I),x.append(O)},format(O){y.push({format:O,respectPrefix:u})},args:r});if(Array.isArray(S)){for(let[O,I]of S.entries())s.push([t.offsets.applyParallelOffset(p,O),I,x.clone()]);continue}if("string"==typeof S&&y.push({format:S,respectPrefix:u}),null===S)continue;x.raws.neededBackup&&(delete x.raws.neededBackup,x.walkRules((O=>{let I=O.raws.originalSelector;if(!I||(delete O.raws.originalSelector,I===O.selector))return;let B=O.selector,q=(0,vn.default)((X=>{X.walkClasses((le=>{le.value=`${i}${t.tailwindConfig.separator}${le.value}`}))})).processSync(I);y.push({format:B.replace(q,"&"),respectPrefix:u}),O.selector=I}))),x.nodes[0].raws.tailwind={...x.nodes[0].raws.tailwind,parentLayer:c.layer};let _=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(r,t.variantOptions.get(i))),collectedFormats:(c.collectedFormats??[]).concat(y)},x.nodes[0]];o.push(_)}}return o}return[]}function so(i,e,t={}){return ne(i)||Array.isArray(i)?Array.isArray(i)?so(i[0],e,i[1]):(e.has(i)||e.set(i,Mt(i)),[e.get(i),t]):[[i],t]}function Ad(i){let e=!0;return i.walkDecls((t=>{if(!_d(t.prop,t.value))return e=!1,!1})),e}function _d(i,e){if(function(i){if(!i.includes("://"))return!1;try{let e=new URL(i);return""!==e.scheme&&""!==e.host}catch(e){return!1}}(`${i}:${e}`))return!1;try{return V.parse(`a{${i}:${e}}`).toResult(),!0}catch(t){return!1}}function DC(i,e){let[,t,r]=i.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(void 0===r||!function(i){return EC.test(i)}(t)||!Nt(r))return null;let n=N(r,{property:t});return _d(t,n)?[[{sort:e.offsets.arbitraryProperty(),layer:"utilities"},()=>({[Va(i)]:{[t]:n}})]]:null}function*RC(i,e){for(let t of i)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*ao(i,e){let t=e.tailwindConfig.separator,[r,...n]=function(i,e){return i===He?[He]:oe(i,e)}(i,t).reverse(),a=!1;r.startsWith("!")&&(a=!0,r=r.slice(1));for(let s of function*(i,e){e.candidateRuleMap.has(i)&&(yield[e.candidateRuleMap.get(i),"DEFAULT"]),yield*function*(o){null!==o&&(yield[o,"DEFAULT"])}(DC(i,e));let t=i,r=!1,n=e.tailwindConfig.prefix,a=n.length,s=t.startsWith(n)||t.startsWith(`-${n}`);"-"===t[a]&&s&&(r=!0,t=n+t.slice(a+1)),r&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,u]of function*(i){let e=1/0;for(;e>=0;){let t,r=!1;if(e===1/0&&i.endsWith("]")){let s=i.indexOf("[");"-"===i[s-1]?t=s-1:"/"===i[s-1]?(t=s-1,r=!0):t=-1}else e===1/0&&i.includes("/")?(t=i.lastIndexOf("/"),r=!0):t=i.lastIndexOf("-",e);if(t<0)break;let n=i.slice(0,t),a=i.slice(r?t:t+1);e=t-1,""!==n&&"/"!==a&&(yield[n,a])}}(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),r?`-${u}`:u])}(r,e)){let o=[],u=new Map,[c,f]=s,d=1===c.length;for(let[p,m]of c){let w=[];if("function"==typeof m)for(let x of[].concat(m(f,{isOnlyPlugin:d}))){let[y,b]=so(x,e.postCssNodeCache);for(let k of y)w.push([{...p,options:{...p.options,...b}},k])}else if("DEFAULT"===f||"-DEFAULT"===f){let x=m,[y,b]=so(x,e.postCssNodeCache);for(let k of y)w.push([{...p,options:{...p.options,...b}},k])}if(w.length>0){let x=Array.from(fs(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map((([y,b])=>b));x.length>0&&u.set(w,x),o.push(w)}}if(oo(f)){if(o.length>1){let w=function(y){return 1===y.length?y[0]:y.find((b=>{let k=u.get(b);return b.some((([{options:S},_])=>!!Ad(_)&&S.types.some((({type:O,preferOnConflict:I})=>k.includes(O)&&I))))}))},[p,m]=o.reduce(((y,b)=>(b.some((([{options:S}])=>S.types.some((({type:_})=>"any"===_))))?y[0].push(b):y[1].push(b),y)),[[],[]]),x=w(m)??w(p);if(!x){let y=o.map((k=>new Set([...u.get(k)??[]])));for(let k of y)for(let S of k){let _=!1;for(let O of y)k!==O&&O.has(S)&&(O.delete(S),_=!0);_&&k.delete(S)}let b=[];for(let[k,S]of y.entries())for(let _ of S){let O=o[k].map((([,I])=>I)).flat().map((I=>I.toString().split("\n").slice(1,-1).map((B=>B.trim())).map((B=>` ${B}`)).join("\n"))).join("\n\n");b.push(` Use \`${i.replace("[",`[${_}:`)}\` for \`${O.trim()}\``);break}F.warn([`The class \`${i}\` is ambiguous and matches multiple utilities.`,...b,`If this is content and not a class, replace it with \`${i.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}o=[x]}o=o.map((p=>p.filter((m=>Ad(m[1])))))}o=o.flat(),o=Array.from(RC(o,r)),o=AC(o,e),a&&(o=_C(o,r));for(let p of n)o=OC(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:i},p=MC(p,{context:e,candidate:i}),null!==p&&(yield p)}}function MC(i,{context:e,candidate:t}){if(!i[0].collectedFormats)return i;let n,r=!0;try{n=$t(i[0].collectedFormats,{context:e,candidate:t})}catch{return null}let a=V.root({nodes:[i[1].clone()]});return a.walkRules((s=>{if(!xn(s))try{let o=wn(s.selector,n,{candidate:t,context:e});if(null===o)return void s.remove();s.selector=o}catch{return r=!1,!1}})),r&&0!==a.nodes.length?(i[1]=a.nodes[0],i):null}function xn(i){return i.parent&&"atrule"===i.parent.type&&"keyframes"===i.parent.name}function kn(i,e,t=!1){let r=[],n=function(i){return!0===i?e=>{xn(e)||e.walkDecls((t=>{"rule"===t.parent.type&&!xn(t.parent)&&(t.important=!0)}))}:"string"==typeof i?e=>{xn(e)||(e.selectors=e.selectors.map((t=>bn(t,i))))}:void 0}(e.tailwindConfig.important);for(let a of i){if(e.notClassCache.has(a))continue;if(e.candidateRuleCache.has(a)){r=r.concat(Array.from(e.candidateRuleCache.get(a)));continue}let s=Array.from(ao(a,e));if(0===s.length){e.notClassCache.add(a);continue}e.classCache.set(a,s);let o=e.candidateRuleCache.get(a)??new Set;e.candidateRuleCache.set(a,o);for(let u of s){let[{sort:c,options:f},d]=u;if(f.respectImportant&&n){let m=V.root({nodes:[d.clone()]});m.walkRules(n),d=m.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),r.push(p)}}return r}function oo(i){return i.startsWith("[")&&i.endsWith("]")}var vn,SC,EC,Od,Sn=C((()=>{l(),nt(),vn=K(Re()),za(),kt(),un(),cr(),Oe(),ot(),to(),Ua(),fr(),Xr(),Ja(),St(),ze(),io(),SC=(0,vn.default)((i=>i.first.filter((({type:e})=>"class"===e)).pop().value)),EC=/^[a-z_-]/})),Ed=C((()=>{l(),Od={}}));function Td(i,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let r=Qa.get(i),n=function(i){try{return Od.createHash("md5").update(i,"utf-8").digest("binary")}catch(e){return""}}(t),a=r!==n;return Qa.set(i,n),a}var Pd=C((()=>{l(),Ed(),ot()}));function An(i){return(i>0n)-(i<0n)}var Dd=C((()=>{l()}));function Id(i,e){let t=0n,r=0n;for(let[n,a]of e)i&n&&(t|=n,r|=a);return i&~t|r}var qd=C((()=>{l()}));function Rd(i){let e=null;for(let t of i)e=e??t,e=e>t?e:t;return e}var lo,Md=C((()=>{l(),Dd(),qd(),lo=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,options:[]}}arbitraryProperty(){return{...this.create("utilities"),arbitrary:1n}}forVariant(e,t=0){let r=this.variantOffsets.get(e);if(void 0===r)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:r<n.startsWith("["))).sort((([n],[a])=>function(i,e){let t=i.length,r=e.length,n=tn)).sort(((n,a)=>An(n-a)));return e.map((([,n],a)=>[n,t[a]])).filter((([n,a])=>n!==a))}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return 0===t.length?e:e.map((r=>{let[n,a]=r;return n={...n,variants:Id(n.variants,t)},[n,a]}))}sort(e){return(e=this.remapArbitraryVariantOffsets(e)).sort((([t],[r])=>An(this.compare(t,r))))}}}));function po(i,e){let t=i.tailwindConfig.prefix;return"function"==typeof t?t(e):t+e}function Fd({type:i="any",...e}){return{...e,types:[].concat(i).map((r=>Array.isArray(r)?{type:r[0],...r[1]}:{type:r,preferOnConflict:!1}))}}function Nd(i){return Array.isArray(i)?i.flatMap((e=>Array.isArray(e)||ne(e)?Mt(e):e)):Nd([i])}function jC(i,e){return(0,uo.default)((r=>{let n=[];return e&&e(r),r.walkClasses((a=>{n.push(a.value)})),n})).transformSync(i)}function zC(i){i.walkPseudos((e=>{":not"===e.value&&e.remove()}))}function _n(i){return Nd(i).flatMap((e=>{let t=new Map,[r,n]=function(i,e={containsNonOnDemandable:!1},t=0){let r=[],n=[];"rule"===i.type?n.push(...i.selectors):"atrule"===i.type&&i.walkRules((a=>n.push(...a.selectors)));for(let a of n){let s=jC(a,zC);0===s.length&&(e.containsNonOnDemandable=!0);for(let o of s)r.push(o)}return 0===t?[e.containsNonOnDemandable||0===r.length,r]:r}(e);return r&&n.unshift(He),n.map((a=>(t.has(e)||t.set(e,e),[a,t.get(e)])))}))}function Cn(i){return i.startsWith("@")||i.includes("&")}function Zr(i){let e=function(i){let e=[],t="",r=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter((n=>""!==n)),e}(i=i.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim()).map((t=>{if(!t.startsWith("@"))return({format:a})=>a(t);let[,r,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:a})=>a(V.atRule({name:r,params:n?.trim()??""}))})).reverse();return t=>{for(let r of e)r(t)}}function UC(i,e,{variantList:t,variantMap:r,offsets:n,classList:a}){function s(p,m){return p?(0,Bd.default)(i,p,m):i}function u(p,m){return p===He?He:m.respectPrefix?e.tailwindConfig.prefix+p:p}let f=0,d={postcss:V,prefix:function(p){return Bt(i.prefix,p)},e:de,config:s,theme:function(p,m,w={}){let x=Ke(p),y=s(["theme",...x],m);return Ge(x[0])(y,w)},corePlugins:p=>Array.isArray(i.corePlugins)?i.corePlugins.includes(p):s(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[m,w]of _n(p)){let x=u(m,{}),y=n.create("base");e.candidateRuleMap.has(x)||e.candidateRuleMap.set(x,[]),e.candidateRuleMap.get(x).push([{sort:y,layer:"base"},w])}},addDefaults(p,m){let w={[`@defaults ${p}`]:m};for(let[x,y]of _n(w)){let b=u(x,{});e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(m)?{}:m);for(let[x,y]of _n(p)){let b=u(x,m);a.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("components"),layer:"components",options:m},y])}},addUtilities(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(m)?{}:m);for(let[x,y]of _n(p)){let b=u(x,m);a.add(b),e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push([{sort:n.create("utilities"),layer:"utilities",options:m},y])}},matchUtilities:function(p,m){m=Fd({respectPrefix:!0,respectImportant:!0,modifiers:!1,...m});let x=n.create("utilities");for(let y in p){let S=function(O,{isOnlyPlugin:I}){let[B,q,X]=us(m.types,O,m,i);if(void 0===B)return[];if(!m.types.some((({type:j})=>j===q))){if(!I)return[];F.warn([`Unnecessary typehint \`${q}\` in \`${y}-${O}\`.`,`You can safely update it to \`${y}-${O.replace(q+":","")}\`.`])}if(!Nt(B))return[];let le={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),X}},ce=Z(i,"generalizedModifiers");return[].concat(ce?k(B,le):k(B)).filter(Boolean).map((j=>({[fn(y,O)]:j})))},b=u(y,m),k=p[y];a.add([b,m]);let _=[{sort:x,layer:"utilities",options:m},S];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(_)}},matchComponents:function(p,m){m=Fd({respectPrefix:!0,respectImportant:!1,modifiers:!1,...m});let x=n.create("components");for(let y in p){let S=function(O,{isOnlyPlugin:I}){let[B,q,X]=us(m.types,O,m,i);if(void 0===B)return[];if(!m.types.some((({type:j})=>j===q))){if(!I)return[];F.warn([`Unnecessary typehint \`${q}\` in \`${y}-${O}\`.`,`You can safely update it to \`${y}-${O.replace(q+":","")}\`.`])}if(!Nt(B))return[];let le={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),X}},ce=Z(i,"generalizedModifiers");return[].concat(ce?k(B,le):k(B)).filter(Boolean).map((j=>({[fn(y,O)]:j})))},b=u(y,m),k=p[y];a.add([b,m]);let _=[{sort:x,layer:"components",options:m},S];e.candidateRuleMap.has(b)||e.candidateRuleMap.set(b,[]),e.candidateRuleMap.get(b).push(_)}},addVariant(p,m,w={}){m=[].concat(m).map((x=>{if("string"!=typeof x)return(y={})=>{let{args:b,modifySelectors:k,container:S,separator:_,wrap:O,format:I}=y,B=x(Object.assign({modifySelectors:k,container:S,separator:_},w.type===fo.MatchVariant&&{args:b,wrap:O,format:I}));if("string"==typeof B&&!Cn(B))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(B)?B.filter((q=>"string"==typeof q)).map((q=>Zr(q))):B&&"string"==typeof B&&Zr(B)(y)};if(!Cn(x))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Zr(x)})),function(i,e,{before:t=[]}={}){if((t=[].concat(t)).length<=0)return void i.push(e);let r=i.length-1;for(let n of t){let a=i.indexOf(n);-1!==a&&(r=Math.min(r,a))}i.splice(r,0,e)}(t,p,w),r.set(p,m),e.variantOptions.set(p,w)},matchVariant(p,m,w){let x=w?.id??++f,y="@"===p,b=Z(i,"generalizedModifiers");for(let[S,_]of Object.entries(w?.values??{}))"DEFAULT"!==S&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,(({args:O,container:I})=>m(_,b?{modifier:O?.modifier,container:I}:{container:I})),{...w,value:_,id:x,type:fo.MatchVariant,variantInfo:co.Base});let k="DEFAULT"in(w?.values??{});d.addVariant(p,(({args:S,container:_})=>S?.value!==Kr||k?m(S?.value===Kr?w.values.DEFAULT:S?.value??("string"==typeof S?S:""),b?{modifier:S?.modifier,container:_}:{container:_}):null),{...w,id:x,type:fo.MatchVariant,variantInfo:co.Dynamic})}};return d}function On(i){return ho.has(i)||ho.set(i,new Map),ho.get(i)}function Ld(i,e){let t=!1,r=new Map;for(let n of i){if(!n)continue;let a=gs.parse(n),s=a.hash?a.href.replace(a.hash,""):a.href;s=a.search?s.replace(a.search,""):s;let o=re.statSync(decodeURIComponent(s),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),r.set(n,o))}return[t,r]}function $d(i){i.walkAtRules((e=>{["responsive","variants"].includes(e.name)&&($d(e),e.before(e.nodes),e.remove())}))}function WC(i){let e=[];return i.each((t=>{"atrule"===t.type&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")})),i.walkAtRules("layer",(t=>{if($d(t),"base"===t.params){for(let r of t.nodes)e.push((function({addBase:n}){n(r,{respectPrefix:!1})}));t.remove()}else if("components"===t.params){for(let r of t.nodes)e.push((function({addComponents:n}){n(r,{respectPrefix:!1,preserveSource:!0})}));t.remove()}else if("utilities"===t.params){for(let r of t.nodes)e.push((function({addUtilities:n}){n(r,{respectPrefix:!1,preserveSource:!0})}));t.remove()}})),e}function jd(i,e){!i.classCache.has(e)||(i.notClassCache.add(e),i.classCache.delete(e),i.applyClassCache.delete(e),i.candidateRuleMap.delete(e),i.candidateRuleCache.delete(e),i.stylesheetCache=null)}function mo(i,e=[],t=V.root()){let r={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(i.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:i,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:a=>jd(r,a),markInvalidUtilityNode:a=>function(i,e){let t=e.raws.tailwind.candidate;if(t){for(let r of i.ruleCache)r[1].raws.tailwind.candidate===t&&i.ruleCache.delete(r);jd(i,t)}}(r,a)},n=function(i,e){let t=Object.entries({...Y,...md}).map((([u,c])=>i.tailwindConfig.corePlugins.includes(u)?c:null)).filter(Boolean),r=i.tailwindConfig.plugins.map((u=>(u.__isOptionsFunction&&(u=u()),"function"==typeof u?u:u.handler))),n=WC(e),a=[Y.childVariant,Y.pseudoElementVariants,Y.pseudoClassVariants,Y.hasVariants,Y.ariaVariants,Y.dataVariants],s=[Y.supportsVariants,Y.reducedMotionVariants,Y.prefersContrastVariants,Y.screenVariants,Y.orientationVariants,Y.directionVariants,Y.darkVariants,Y.forcedColorsVariants,Y.printVariant];return("class"===i.tailwindConfig.darkMode||Array.isArray(i.tailwindConfig.darkMode)&&"class"===i.tailwindConfig.darkMode[0])&&(s=[Y.supportsVariants,Y.reducedMotionVariants,Y.prefersContrastVariants,Y.darkVariants,Y.screenVariants,Y.orientationVariants,Y.directionVariants,Y.forcedColorsVariants,Y.printVariant]),[...t,...a,...r,...s,...n]}(r,t);return function(i,e){let t=[],r=new Map;e.variantMap=r;let n=new lo;e.offsets=n;let a=new Set,s=UC(e.tailwindConfig,e,{variantList:t,variantMap:r,offsets:n,classList:a});for(let f of i)if(Array.isArray(f))for(let d of f)d(s);else f?.(s);n.recordVariants(t,(f=>r.get(f).length));for(let[f,d]of r.entries())e.variantMap.set(f,d.map(((p,m)=>[n.forVariant(f,m),p])));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o)"string"!=typeof d?d instanceof RegExp?F.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]):f.push(d):e.changedContent.push({content:d,extension:"html"});if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,m=f.some((w=>w.pattern.source.includes("!")));for(let w of a){let x=Array.isArray(w)?(()=>{let[y,b]=w,S=Object.keys(b?.values??{}).map((_=>Qr(y,_)));return b?.supportsNegativeValues&&(S=[...S,...S.map((_=>"-"+_))],S=[...S,...S.map((_=>_.slice(0,p)+"-"+_.slice(p)))]),b.types.some((({type:_})=>"color"===_))&&(S=[...S,...S.flatMap((_=>Object.keys(e.tailwindConfig.theme.opacity).map((O=>`${_}/${O}`))))]),m&&b?.respectImportant&&(S=[...S,...S.map((_=>"!"+_))]),S})():[w];for(let y of x)for(let{pattern:b,variants:k=[]}of f)if(b.lastIndex=0,d.has(b)||d.set(b,0),b.test(y)){d.set(b,d.get(b)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[w,x]of d.entries())0===x&&F.warn([`The safelist pattern \`${w}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let u=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[po(e,u),po(e,"group"),po(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort(((y,b)=>y===b?0:y[y,null]))),w=kn(new Set(p),e,!0);w=e.offsets.sort(w);let x=BigInt(c.length);for(let[,y]of w){let b=y.raws.tailwind.candidate;m.set(b,m.get(b)??x++)}return d.map((y=>{let b=m.get(y)??null,k=c.indexOf(y);return null===b&&-1!==k&&(b=BigInt(k)),[y,b]}))},e.getClassList=function(d={}){let p=[];for(let m of a)if(Array.isArray(m)){let[w,x]=m,y=[],b=Object.keys(x?.modifiers??{});x?.types?.some((({type:_})=>"color"===_))&&b.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:b},S=d.includeMetadata&&b.length>0;for(let[_,O]of Object.entries(x?.values??{})){if(null==O)continue;let I=Qr(w,_);if(p.push(S?[I,k]:I),x?.supportsNegativeValues&&Xe(O)){let B=Qr(w,`-${_}`);y.push(S?[B,k]:B)}}p.push(...y)}else p.push(m);return p},e.getVariants=function(){let d=[];for(let[p,m]of e.variantOptions.entries())m.variantInfo!==co.Base&&d.push({name:p,isArbitrary:m.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(m.values??{}),hasDash:"@"!==p,selectors({modifier:w,value:x}={}){let y="__TAILWIND_PLACEHOLDER__",b=V.rule({selector:`.${y}`}),k=V.root({nodes:[b.clone()]}),S=k.toString(),_=(e.variantMap.get(p)??[]).flatMap((([j,ue])=>ue)),O=[];for(let j of _){let ue=[],ai={args:{modifier:w,value:m.values?.[x]??x},separator:e.tailwindConfig.separator,modifySelectors:Ce=>(k.each((Yn=>{"rule"===Yn.type&&(Yn.selectors=Yn.selectors.map((lu=>Ce({get className(){return no(lu)},selector:lu}))))})),k),format(Ce){ue.push(Ce)},wrap(Ce){ue.push(`@${Ce.name} ${Ce.params} { & }`)},container:k},oi=j(ai);if(ue.length>0&&O.push(ue),Array.isArray(oi))for(let Ce of oi)ue=[],Ce(ai),O.push(ue)}let I=[];S!==k.toString()&&(k.walkRules((j=>{let ue=j.selector,ai=(0,uo.default)((oi=>{oi.walkClasses((Ce=>{Ce.value=`${p}${e.tailwindConfig.separator}${Ce.value}`}))})).processSync(ue);I.push(ue.replace(ai,"&").replace(y,"&"))})),k.walkAtRules((j=>{I.push(`@${j.name} (${j.params}) { & }`)})));let q=!(x in(m.values??{})),X=m[Jr]??{},le=!(q||!1===X.respectPrefix);O=O.map((j=>j.map((ue=>({format:ue,respectPrefix:le}))))),I=I.map((j=>({format:j,respectPrefix:le})));let ce={candidate:y,context:e},$e=O.map((j=>wn(`.${y}`,$t(j,ce),ce).replace(`.${y}`,"&").replace("{ & }","").trim()));return I.length>0&&$e.push($t(I,ce).toString().replace(`.${y}`,"&")),$e}});return d}}(n,r),r}var Bd,uo,Jr,fo,co,ho,jt,ei,lt,Xr=C((()=>{l(),je(),ys(),nt(),Bd=K(Ls()),uo=K(Re()),Hr(),za(),un(),kt(),Ft(),Ua(),cr(),gd(),ot(),ot(),pi(),Oe(),fi(),Ja(),Sn(),Pd(),Md(),ze(),to(),Jr=Symbol(),fo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},co={Base:1,Dynamic:2},ho=new WeakMap,jt=yd,ei=wd,lt=gn}));function go(i){return i.ignore?[]:i.glob?"true"===h.env.ROLLUP_WATCH?[{type:"dependency",file:i.base}]:[{type:"dir-dependency",dir:i.base,glob:i.glob}]:[{type:"dependency",file:i.base}]}var Vd=C((()=>{l()}));function Ud(i,e){return{handler:i,config:e}}var Wd,Gd=C((()=>{l(),Ud.withOptions=function(i,e=(()=>({}))){let t=function(r){return{__options:r,handler:i(r),config:e(r)}};return t.__isOptionsFunction=!0,t.__pluginFunction=i,t.__configFunction=e,t},Wd=Ud})),yo={};Ae(yo,{default:()=>QC});var QC,wo=C((()=>{l(),Gd(),QC=Wd})),Yd=v(((qD,Hd)=>{l();var JC=(wo(),yo).default,XC={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},KC=JC((function({matchUtilities:i,addUtilities:e,theme:t,variants:r}){i({"line-clamp":a=>({...XC,"-webkit-line-clamp":`${a}`})},{values:t("lineClamp")}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],r("lineClamp"))}),{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});Hd.exports=KC}));function bo(i){0===i.content.files.length&&F.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=Yd();i.plugins.includes(e)&&(F.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),i.plugins=i.plugins.filter((t=>t!==e)))}catch{}return i}var Jd,En,vo,eh,Qd=C((()=>{l(),Oe()})),Xd=C((()=>{l(),Jd=()=>!1})),Kd=C((()=>{l(),En={sync:i=>[].concat(i),generateTasks:i=>[{dynamic:!1,base:".",negative:[],positive:[].concat(i),patterns:[].concat(i)}],escapePath:i=>i}})),Zd=C((()=>{l(),vo=i=>i})),th=C((()=>{l(),eh=()=>""}));var ih=C((()=>{l(),th()}));function nh(i,e){let t=e.content.files;t=t.filter((o=>"string"==typeof o)),t=t.map(vo);let r=En.generateTasks(t),n=[],a=[];for(let o of r)n.push(...o.positive.map((u=>sh(u,!1)))),a.push(...o.negative.map((u=>sh(u,!0))));let s=[...n,...a];return s=function(i,e){let t=[];return i.userConfigPath&&i.tailwindConfig.content.relative&&(t=[ee.dirname(i.userConfigPath)]),e.map((r=>(r.base=ee.resolve(...t,r.base),r)))}(i,s),s=s.flatMap(t2),s=s.map(ZC),s}function sh(i,e){let t={original:i,base:i,ignore:e,pattern:i,glob:null};return Jd(i)&&Object.assign(t,function(i){let e=i,t=eh(i);return"."!==t&&(e=i.substr(t.length),"/"===e.charAt(0)&&(e=e.substr(1))),"./"===e.substr(0,2)&&(e=e.substr(2)),"/"===e.charAt(0)&&(e=e.substr(1)),{base:t,glob:e}}(i)),t}function ZC(i){let e=vo(i.base);return e=En.escapePath(e),i.pattern=i.glob?`${e}/${i.glob}`:e,i.pattern=i.ignore?`!${i.pattern}`:i.pattern,i}function t2(i){let e=[i];try{let t=re.realpathSync(i.base);t!==i.base&&e.push({...i,base:t})}catch{}return e}function ah(i,e,t){let r=i.tailwindConfig.content.files.filter((s=>"string"==typeof s.raw)).map((({raw:s,extension:o="html"})=>({content:s,extension:o}))),[n,a]=function(i,e){let t=i.map((s=>s.pattern)),r=new Map,n=new Set;Pe.DEBUG&&console.time("Finding changed files");let a=En.sync(t,{absolute:!0});for(let s of a){let o=e.get(s)||-1/0,u=re.statSync(s).mtimeMs;u>o&&(n.add(s),r.set(s,u))}return Pe.DEBUG&&console.timeEnd("Finding changed files"),[n,r]}(e,t);for(let s of n){let o=ee.extname(s).slice(1);r.push({file:s,extension:o})}return[r,a]}var oh=C((()=>{l(),je(),gt(),Xd(),Kd(),Zd(),ih(),ot()}));var uh=C((()=>{l()}));function*fh(i,e,t,r=ee.extname(i)){let n=function(i,e){for(let t of e){let r=`${i}${t}`;if(re.existsSync(r)&&re.statSync(r).isFile())return r}for(let t of e){let r=`${i}/index${t}`;if(re.existsSync(r))return r}return null}(ee.resolve(e,i),i2.includes(r)?n2:s2);if(null===n||t.has(n))return;t.add(n),yield n,e=ee.dirname(n),r=ee.extname(n);let a=re.readFileSync(n,"utf-8");for(let s of[...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/require\(['"`](.+)['"`]\)/gi)])!s[1].startsWith(".")||(yield*fh(s[1],e,t,r))}var i2,n2,s2,ch=C((()=>{l(),je(),gt(),i2=[".js",".cjs",".mjs"],n2=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],s2=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]}));function l2(i){let e=ms(i);if(null!==e){let[r,n,a,s]=dh.get(e)||[],o=function(i){return null===i?new Set:new Set(fh(i,ee.dirname(i),new Set))}(e),u=!1,c=new Map;for(let p of o){let m=re.statSync(p).mtimeMs;c.set(p,m),(!s||!s.has(p)||m>s.get(p))&&(u=!0)}if(!u)return[r,e,n,a];for(let p of o)delete fu.cache[p];let f=bo(dr(void 0)),d=ui(f);return dh.set(e,[f,d,o,c]),[f,e,d,o]}let t=dr(i?.config??i??{});return t=bo(t),[t,null,ui(t),[]]}function So(i){return({tailwindDirectives:e,registerDependency:t})=>(r,n)=>{let[a,s,o,u]=l2(i),c=new Set(u);if(e.size>0){c.add(n.opts.from);for(let w of n.messages)"dependency"===w.type&&c.add(w.file)}let[f,,d]=function(i,e,t,r,n,a){let u,s=e.opts.from,o=null!==r;if(Pe.DEBUG&&console.log("Source path:",s),o&&jt.has(s))u=jt.get(s);else if(ei.has(n)){let p=ei.get(n);lt.get(p).add(s),jt.set(s,p),u=p}let c=Td(s,i);if(u){let[p,m]=Ld([...a],On(u));if(!p&&!c)return[u,!1,m]}if(jt.has(s)){let p=jt.get(s);if(lt.has(p)&&(lt.get(p).delete(s),0===lt.get(p).size)){lt.delete(p);for(let[m,w]of ei)w===p&&ei.delete(m);for(let m of p.disposables.splice(0))m(p)}}Pe.DEBUG&&console.log("Setting up new context...");let f=mo(t,[],i);Object.assign(f,{userConfigPath:r});let[,d]=Ld([...a],On(f));return ei.set(n,f),jt.set(s,f),lt.has(f)||lt.set(f,new Set),lt.get(f).add(s),[f,!0,d]}(r,n,a,s,o,c),p=On(f),m=function(i,e){if(ko.has(i))return ko.get(i);let t=nh(i,e);return ko.set(i,t).get(i)}(f,a);if(e.size>0){for(let y of m)for(let b of go(y))t(b);let[w,x]=ah(f,m,p);for(let y of w)f.changedContent.push(y);for(let[y,b]of x.entries())d.set(y,b)}for(let w of u)t({type:"dependency",file:w});for(let[w,x]of d.entries())p.set(w,x);return f}}var ph,dh,ko,hh=C((()=>{l(),je(),ph=K(Qn()),mu(),hs(),sf(),Xr(),Vd(),Qd(),oh(),uh(),ch(),dh=new ph.default({maxSize:100}),ko=new WeakMap}));var mh=C((()=>{l(),Oe()}));function vt(i,e=void 0,t=void 0){return i.map((r=>{let n=r.clone();return void 0!==t&&(n.raws.tailwind={...n.raws.tailwind,...t}),void 0!==e&&gh(n,(a=>{if(!0===a.raws.tailwind?.preserveSource&&a.source)return!1;a.source=e})),n}))}function gh(i,e){!1!==e(i)&&i.each?.((t=>gh(t,e)))}var yh=C((()=>{l()}));function Ao(i){return(i=(i=Array.isArray(i)?i:[i]).map((e=>e instanceof RegExp?e.source:e))).join("")}function ye(i){return new RegExp(Ao(i),"g")}function ut(i){return`(?:${i.map(Ao).join("|")})`}function _o(i){return`(?:${Ao(i)})?`}function bh(i){return i&&u2.test(i)?i.replace(wh,"\\$&"):i||""}var wh,u2,vh=C((()=>{l(),wh=/[\\^$.*+?()[\]{}|]/g,u2=RegExp(wh.source)}));function xh(i){let e=Array.from(function*(i){let e=i.tailwindConfig.separator,t=""!==i.tailwindConfig.prefix?_o(ye([/-?/,bh(i.tailwindConfig.prefix)])):"",r=ut([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,ye([ut([/-?(?:\w+)/,/@(?:\w+)/]),_o(ut([ye([ut([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),ye([ut([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[ut([ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/\w+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),ye([/[^\s"'`\[\\]+/,e])]),ut([ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/\w+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),ye([/[^\s`\[\\]+/,e])])];for(let a of n)yield ye(["((?=((",a,")+))\\2)?",/!?/,t,r]);yield/[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}(i));return t=>{let r=[];for(let n of e)for(let a of t.match(n)??[])r.push(d2(a));return r}}function d2(i){if(!i.includes("-["))return i;let e=0,t=[],r=i.matchAll(c2);r=Array.from(r).flatMap((n=>{let[,...a]=n;return a.map(((s,o)=>Object.assign([],n,{index:n.index+o,0:s})))}));for(let n of r){let a=n[0],s=t[t.length-1];if(a===s?t.pop():("'"===a||'"'===a||"`"===a)&&t.push(a),!s){if("["===a){e++;continue}if("]"===a){e--;continue}if(e<0)return i.substring(0,n.index-1);if(0===e&&!p2.test(a))return i.substring(0,n.index)}}return i}var c2,p2,kh=C((()=>{l(),vh(),c2=/([\[\]'"`])([^\[\]'"`])?/g,p2=/[^"'`\s<>\]]+/}));function h2(i,e){let t=i.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Ch[e]||Ch.DEFAULT(i)}function m2(i,e){let t=i.content.transform;return t[e]||t.DEFAULT||Ah[e]||Ah.DEFAULT}function g2(i,e,t,r){ti.has(e)||ti.set(e,new Sh.default({maxSize:25e3}));for(let n of i.split("\n"))if(n=n.trim(),!r.has(n))if(r.add(n),ti.get(e).has(n))for(let a of ti.get(e).get(n))t.add(a);else{let a=e(n).filter((o=>"!*"!==o)),s=new Set(a);for(let o of s)t.add(o);ti.get(e).set(n,s)}}function Oo(i){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules((w=>{"tailwind"===w.name&&Object.keys(t).includes(w.params)&&(t[w.params]=w)})),Object.values(t).every((w=>null===w)))return e;let r=new Set([...i.candidates??[],He]),n=new Set;Ye.DEBUG&&console.time("Reading changed files");{let w=[];for(let y of i.changedContent){let b=m2(i.tailwindConfig,y.extension),k=h2(i,y.extension);w.push([y,{transformer:b,extractor:k}])}let x=500;for(let y=0;y{g2(_(S=k?await re.promises.readFile(k,"utf8"):S),O,r,n)})))}}Ye.DEBUG&&console.timeEnd("Reading changed files");let a=i.classCache.size;Ye.DEBUG&&console.time("Generate rules"),Ye.DEBUG&&console.time("Sorting candidates");let s=new Set([...r].sort(((w,x)=>w===x?0:w{let x=w.raws.tailwind?.parentLayer;return"components"===x?null!==t.components:"utilities"!==x||null!==t.utilities}));t.variants?(t.variants.before(vt(p,t.variants.source,{layer:"variants"})),t.variants.remove()):p.length>0&&e.append(vt(p,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let m=p.some((w=>"utilities"===w.raws.tailwind?.parentLayer));t.utilities&&0===f.size&&!m&&F.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),Ye.DEBUG&&(console.log("Potential classes: ",r.size),console.log("Active contexts: ",gn.size)),i.changedContent=[],e.walkAtRules("layer",(w=>{Object.keys(t).includes(w.params)&&w.remove()}))}}var Sh,Ye,Ch,Ah,ti,_h=C((()=>{l(),je(),Sh=K(Qn()),ot(),Sn(),Oe(),yh(),kh(),Ye=Pe,Ch={DEFAULT:xh},Ah={DEFAULT:i=>i,svelte:i=>i.replace(/(?:^|\s)class:/g," ")},ti=new WeakMap}));function Pn(i){let e=new Map;V.root({nodes:[i.clone()]}).walkRules((a=>{(0,Tn.default)((s=>{s.walkClasses((o=>{let u=o.parent.toString(),c=e.get(u);c||e.set(u,c=new Set),c.add(o.value)}))})).processSync(a.selector)}));let r=Array.from(e.values(),(a=>Array.from(a))),n=r.flat();return Object.assign(n,{groups:r})}function Eo(i){return w2.astSync(i)}function Oh(i,e){let t=new Set;for(let r of i)t.add(r.split(e).pop());return Array.from(t)}function Eh(i,e){let t=i.tailwindConfig.prefix;return"function"==typeof t?t(e):t+e}function*Th(i){for(yield i;i.parent;)yield i.parent,i=i.parent}function b2(i,e={}){let t=i.nodes;i.nodes=[];let r=i.clone(e);return i.nodes=t,r}function x2(i,e){let t=new Map;return i.walkRules((r=>{for(let s of Th(r))if(void 0!==s.raws.tailwind?.layer)return;let n=function(i){for(let e of Th(i))if(i!==e){if("root"===e.type)break;i=b2(e,{nodes:[i]})}return i}(r),a=e.offsets.create("user");for(let s of Pn(r)){let o=t.get(s)||[];t.set(s,o),o.push([{layer:"user",sort:a,important:!1},n])}})),t}function k2(i,e){for(let t of i){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map((([n,a])=>[n,a.clone()])));continue}let r=Array.from(ao(t,e));0!==r.length?e.applyClassCache.set(t,r):e.notClassCache.add(t)}return e.applyClassCache}function Ph(i){let e=i.split(/[\s\t\n]+/g);return"!important"===e[e.length-1]?[e.slice(0,-1),!0]:[e,!1]}function Dh(i,e,t){let r=new Set,n=[];if(i.walkAtRules("apply",(u=>{let[c]=Ph(u.params);for(let f of c)r.add(f);n.push(u)})),0===n.length)return;let a=function(i){return{get:e=>i.flatMap((t=>t.get(e)||[])),has:e=>i.some((t=>t.has(e)))}}([t,k2(r,e)]);function s(u,c,f){let d=Eo(u),p=Eo(c),w=Eo(`.${de(f)}`).nodes[0].nodes[0];return d.each((x=>{let y=new Set;p.each((b=>{let k=!1;(b=b.clone()).walkClasses((S=>{S.value===w.value&&(k||(S.replaceWith(...x.nodes.map((_=>_.clone()))),y.add(b),k=!0))}))}));for(let b of y){let k=[[]];for(let S of b.nodes)"combinator"===S.type?(k.push(S),k.push([])):k[k.length-1].push(S);b.nodes=[];for(let S of k)Array.isArray(S)&&S.sort(((_,O)=>"tag"===_.type&&"class"===O.type?-1:"class"===_.type&&"tag"===O.type?1:"class"===_.type&&"pseudo"===O.type&&O.value.startsWith("::")?-1:"pseudo"===_.type&&_.value.startsWith("::")&&"class"===O.type?1:0)),b.nodes=b.nodes.concat(S)}x.replaceWith(...y)})),d.toString()}let o=new Map;for(let u of n){let[c]=o.get(u.parent)||[[],u.source];o.set(u.parent,[c,u.source]);let[f,d]=Ph(u.params);if("atrule"===u.parent.type){if("screen"===u.parent.name){let p=u.parent.params;throw u.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map((m=>`${p}:${m}`)).join(" ")} instead.`)}throw u.error(`@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.`)}for(let p of f){if([Eh(e,"group"),Eh(e,"peer")].includes(p))throw u.error(`@apply should not be used with the '${p}' utility`);if(!a.has(p))throw u.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let m=a.get(p);c.push([p,d,m])}}for(let[u,[c,f]]of o){let d=[];for(let[m,w,x]of c){let y=[m,...Oh([m],e.tailwindConfig.separator)];for(let[b,k]of x){let S=Pn(u),_=Pn(k);if(_=_.groups.filter((q=>q.some((X=>y.includes(X))))).flat(),_=_.concat(Oh(_,e.tailwindConfig.separator)),S.some((q=>_.includes(q))))throw k.error(`You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.`);let I=V.root({nodes:[k.clone()]});I.walk((q=>{q.source=f})),("atrule"!==k.type||"atrule"===k.type&&"keyframes"!==k.name)&&I.walkRules((q=>{if(!Pn(q).some((j=>j===m)))return void q.remove();let X="string"==typeof e.tailwindConfig.important?e.tailwindConfig.important:null,ce=void 0!==u.raws.tailwind&&X&&0===u.selector.indexOf(X)?u.selector.slice(X.length):u.selector;""===ce&&(ce=u.selector),q.selector=s(ce,q.selector,m),X&&ce!==u.selector&&(q.selector=bn(q.selector,X)),q.walkDecls((j=>{j.important=b.important||w}));let $e=(0,Tn.default)().astSync(q.selector);$e.each((j=>Lt(j))),q.selector=$e.toString()})),I.nodes[0]&&d.push([b.sort,I.nodes[0]])}}let p=e.offsets.sort(d).map((m=>m[1]));u.after(p)}for(let u of n)u.parent.nodes.length>1?u.remove():u.parent.remove();Dh(i,e,t)}function To(i){return e=>{let t=function(i){let e=null;return{get:t=>(e=e||i(),e.get(t)),has:t=>(e=e||i(),e.has(t))}}((()=>x2(e,i)));Dh(e,i,t)}}var Tn,w2,Ih=C((()=>{l(),nt(),Tn=K(Re()),Sn(),Ft(),io(),yn(),w2=(0,Tn.default)()})),qh=v(((P6,Dn)=>{l(),function(){"use strict";function i(r,n,a){if(!r)return null;i.caseSensitive||(r=r.toLowerCase());var u,s=null===i.threshold?null:i.threshold*r.length,o=i.thresholdAbsolute;u=null!==s&&null!==o?Math.min(s,o):null!==s?s:null!==o?o:null;var c,f,p,m,w=n.length;for(m=0;ma)return a+1;var c,f,d,p,m,u=[];for(c=0;c<=o;c++)u[c]=[c];for(f=0;f<=s;f++)u[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>a&&(p=c-a),(m=o+1)>a+c&&(m=a+c),f=1;f<=s;f++)fm?u[c][f]=a+1:n.charAt(c-1)===r.charAt(f-1)?u[c][f]=u[c-1][f-1]:u[c][f]=Math.min(u[c-1][f-1]+1,Math.min(u[c][f-1]+1,u[c-1][f]+1)),u[c][f]a)return a+1}return u[o][s]}}()})),Mh=v(((D6,Rh)=>{l();var Po="(".charCodeAt(0),Do=")".charCodeAt(0),In="'".charCodeAt(0),Io='"'.charCodeAt(0),qo="\\".charCodeAt(0),zt="/".charCodeAt(0),Ro=",".charCodeAt(0),Mo=":".charCodeAt(0),qn="*".charCodeAt(0),A2="u".charCodeAt(0),_2="U".charCodeAt(0),O2="+".charCodeAt(0),E2=/^[a-f0-9?-]+$/i;Rh.exports=function(i){for(var r,n,a,s,o,u,c,f,y,e=[],t=i,d=0,p=t.charCodeAt(d),m=t.length,w=[{nodes:e}],x=0,b="",k="",S="";d{l(),Bh.exports=function i(e,t,r){var n,a,s,o;for(n=0,a=e.length;n{function Nh(i,e){var n,a,t=i.type,r=i.value;return e&&void 0!==(a=e(i))?a:"word"===t||"space"===t?r:"string"===t?(n=i.quote||"")+r+(i.unclosed?"":n):"comment"===t?"/*"+r+(i.unclosed?"":"*/"):"div"===t?(i.before||"")+r+(i.after||""):Array.isArray(i.nodes)?(n=Lh(i.nodes,e),"function"!==t?n:r+"("+(i.before||"")+n+(i.after||"")+(i.unclosed?"":")")):r}function Lh(i,e){var t,r;if(Array.isArray(i)){for(t="",r=i.length-1;~r;r-=1)t=Nh(i[r],e)+t;return t}return Nh(i,e)}l(),$h.exports=Lh})),Vh=v(((R6,zh)=>{l();var Rn="-".charCodeAt(0),Mn="+".charCodeAt(0),Bo=".".charCodeAt(0),T2="e".charCodeAt(0),P2="E".charCodeAt(0);zh.exports=function(i){var r,n,a,e=0,t=i.length;if(0===t||!function(i){var t,e=i.charCodeAt(0);if(e===Mn||e===Rn){if((t=i.charCodeAt(1))>=48&&t<=57)return!0;var r=i.charCodeAt(2);return t===Bo&&r>=48&&r<=57}return e===Bo?(t=i.charCodeAt(1))>=48&&t<=57:e>=48&&e<=57}(i))return!1;for(((r=i.charCodeAt(e))===Mn||r===Rn)&&e++;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),r===Bo&&n>=48&&n<=57)for(e+=2;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),a=i.charCodeAt(e+2),(r===T2||r===P2)&&(n>=48&&n<=57||(n===Mn||n===Rn)&&a>=48&&a<=57))for(e+=n===Mn||n===Rn?3:2;e57);)e+=1;return{number:i.slice(0,e),unit:i.slice(e)}}})),Hh=v(((M6,Gh)=>{l();var I2=Mh(),Uh=Fh(),Wh=jh();function ft(i){return this instanceof ft?(this.nodes=I2(i),this):new ft(i)}ft.prototype.toString=function(){return Array.isArray(this.nodes)?Wh(this.nodes):""},ft.prototype.walk=function(i,e){return Uh(this.nodes,i,e),this},ft.unit=Vh(),ft.walk=Uh,ft.stringify=Wh,Gh.exports=ft}));function No(i){return"object"==typeof i&&null!==i}function Vt(i){return"string"==typeof i?i:i.reduce(((e,t,r)=>t.includes(".")?`${e}[${t}]`:0===r?t:`${e}.${t}`),"")}function Qh(i){return i.map((e=>`'${e}'`)).join(", ")}function Jh(i){return Qh(Object.keys(i))}function Lo(i,e,t,r={}){let n=Array.isArray(e)?Vt(e):e.replace(/^['"]+|['"]+$/g,""),a=Array.isArray(e)?e:Ke(n),s=(0,ri.default)(i.theme,a,t);if(void 0===s){let u=`'${n}' does not exist in your theme config.`,c=a.slice(0,-1),f=(0,ri.default)(i.theme,c);if(No(f)){let d=Object.keys(f).filter((m=>Lo(i,[...c,m]).isValid)),p=(0,Yh.default)(a[a.length-1],d);p?u+=` Did you mean '${Vt([...c,p])}'?`:d.length>0&&(u+=` '${Vt(c)}' has the following valid keys: ${Qh(d)}`)}else{let d=function(i,e){let t=Ke(e);do{if(t.pop(),void 0!==(0,ri.default)(i,t))break}while(t.length);return t.length?t:void 0}(i.theme,n);if(d){let p=(0,ri.default)(i.theme,d);No(p)?u+=` '${Vt(d)}' has the following keys: ${Jh(p)}`:u+=` '${Vt(d)}' is not an object.`}else u+=` Your theme has the following top-level keys: ${Jh(i.theme)}`}return{isValid:!1,error:u}}if(!("string"==typeof s||"number"==typeof s||"function"==typeof s||s instanceof String||s instanceof Number||Array.isArray(s))){let u=`'${n}' was found but does not resolve to a string.`;if(No(s)){let c=Object.keys(s).filter((f=>Lo(i,[...a,f]).isValid));c.length&&(u+=` Did you mean something like '${Vt([...a,c[0]])}'?`)}return{isValid:!1,error:u}}let[o]=a;return{isValid:!0,value:Ge(o)(s,r)}}function Xh(i,e,t){if("function"===e.type&&void 0!==t[e.value]){let r=function(i,e,t){e=e.map((n=>Xh(i,n,t)));let r=[""];for(let n of e)"div"===n.type&&","===n.value?r.push(""):r[r.length-1]+=Fo.default.stringify(n);return r}(i,e.nodes,t);e.type="word",e.value=t[e.value](i,...r)}return e}function Kh(i){let e=i.tailwindConfig,t={theme:(r,n,...a)=>{let{isValid:s,value:o,error:u,alpha:c}=function(i,e,t){let r=Array.from(function*(i){let t,e=(i=i.replace(/^['"]+|['"]+$/g,"")).match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/);yield[i,void 0],e&&(i=e[1],t=e[2],yield[i,t])}(e)).map((([n,a])=>Object.assign(Lo(i,n,t,{opacityValue:a}),{resolvedPath:n,alpha:a})));return r.find((n=>n.isValid))??r[0]}(e,n,a.length?a:void 0);if(!s){let p=r.parent,m=p?.raws.tailwind?.candidate;if(p&&void 0!==m)return i.markInvalidUtilityNode(p),p.remove(),void F.warn("invalid-theme-key-in-class",[`The utility \`${m}\` contains an invalid theme value and was not generated.`]);throw r.error(u)}let f=Ct(o);return(void 0!==c||void 0!==f&&"function"==typeof f)&&(void 0===c&&(c=1),o=De(f,c,f)),o},screen:(r,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let s=at(e.theme.screens).find((({name:o})=>o===n));if(!s)throw r.error(`The '${n}' screen does not exist in your theme.`);return st(s)}};return r=>{r.walk((n=>{let a=B2[n.type];void 0!==a&&(n[a]=function(i,e,t){return Object.keys(t).some((n=>e.includes(`${n}(`)))?(0,Fo.default)(e).walk((n=>{Xh(i,n,t)})).toString():e}(n,n[a],t))}))}}var ri,Yh,Fo,B2,Zh=C((()=>{l(),ri=K(Ls()),Yh=K(qh()),Hr(),Fo=K(Hh()),hn(),cn(),pi(),or(),cr(),Oe(),B2={atrule:"params",decl:"value"}}));var tm=C((()=>{l(),hn(),cn()}));function j2(i){return $o.has(i)||$o.set(i,$2.transformSync(i)),$o.get(i)}var Bn,rm,$2,$o,im=C((()=>{l(),nt(),Bn=K(Re()),ze(),rm={id:i=>Bn.default.attribute({attribute:"id",operator:"=",value:i.value,quoteMark:'"'})},$2=(0,Bn.default)((i=>i.map((e=>function(i){let e=i.filter((o=>"pseudo"!==o.type||o.nodes.length>0||o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value))).reverse(),t=new Set(["tag","class","id","attribute"]),r=e.findIndex((o=>t.has(o.type)));if(-1===r)return e.reverse().join("").trim();let n=e[r],a=rm[n.type]?rm[n.type](n):n;e=e.slice(0,r);let s=e.findIndex((o=>"combinator"===o.type&&">"===o.value));return-1!==s&&(e.splice(0,s),e.unshift(Bn.default.universal())),[a,...e.reverse()].join("").trim()}(e.split((r=>"combinator"===r.type&&" "===r.value)).pop()))))),$o=new Map}));function zo(){function i(e){let t=null;e.each((r=>{if(!z2.has(r.type))return void(t=null);if(null===t)return void(t=r);let n=nm[r.type];"atrule"===r.type&&"font-face"===r.name?t=r:n.every((a=>(r[a]??"").replace(/\s+/g," ")===(t[a]??"").replace(/\s+/g," ")))?(r.nodes&&t.append(r.nodes),r.remove()):t=r})),e.each((r=>{"atrule"===r.type&&i(r)}))}return e=>{i(e)}}var nm,z2,sm=C((()=>{l(),nm={atrule:["name","params"],rule:["selector"]},z2=new Set(Object.keys(nm))}));function U2(i){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(i);return e?e[1]??V2:null}var V2,am=C((()=>{l(),V2=Symbol("unitless-number")}));function Fn(){return i=>{!function(i){if(!i.walkAtRules)return;let e=new Set;if(i.walkAtRules("apply",(t=>{e.add(t.parent)})),0!==e.size)for(let t of e){let r=[],n=[];for(let a of t.nodes)"atrule"===a.type&&"apply"===a.name?(n.length>0&&(r.push(n),n=[]),r.push([a])):n.push(a);if(n.length>0&&r.push(n),1!==r.length){for(let a of[...r].reverse()){let s=t.clone({nodes:[]});s.append(a),t.after(s)}t.remove()}}}(i)}}var om=C((()=>{l()}));var um=C((()=>{l()}));function Nn(i){return async function(e,t){let{tailwindDirectives:r,applyDirectives:n}=function(i){let e=new Set,t=new Set,r=new Set;if(i.walkAtRules((n=>{"apply"===n.name&&r.add(n),"import"===n.name&&('"tailwindcss/base"'===n.params||"'tailwindcss/base'"===n.params?(n.name="tailwind",n.params="base"):'"tailwindcss/components"'===n.params||"'tailwindcss/components'"===n.params?(n.name="tailwind",n.params="components"):'"tailwindcss/utilities"'===n.params||"'tailwindcss/utilities'"===n.params?(n.name="tailwind",n.params="utilities"):('"tailwindcss/screens"'===n.params||"'tailwindcss/screens'"===n.params||'"tailwindcss/variants"'===n.params||"'tailwindcss/variants'"===n.params)&&(n.name="tailwind",n.params="variants")),"tailwind"===n.name&&("screens"===n.params&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&F.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))})),!e.has("base")||!e.has("components")||!e.has("utilities"))for(let n of t)if("layer"===n.name&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if("responsive"===n.name){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if("variants"===n.name&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.");return{tailwindDirectives:e,applyDirectives:r}}(e);((e,t)=>{let r=!1;e.walkAtRules("tailwind",(n=>!r&&(!n.parent||function(i){return"root"===i.type}(n.parent)||function(i){return"atrule"===i.type&&"layer"===i.name}(n.parent)?void 0:(r=!0,n.warn(t,["Nested @tailwind rules were detected, but are not supported.","Consider using a prefix to scope Tailwind's classes: https://tailwindcss.com/docs/configuration#prefix","Alternatively, use the important selector strategy: https://tailwindcss.com/docs/configuration#selector-strategy"].join("\n")),!1)))),e.walkRules((n=>{if(r)return!1;n.walkRules((a=>(r=!0,a.warn(t,["Nested CSS was detected, but CSS nesting has not been configured correctly.","Please enable a CSS nesting plugin *before* Tailwind in your configuration.","See how here: https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join("\n")),!1)))}))})(e,t),Fn()(e,t);let a=i({tailwindDirectives:r,applyDirectives:n,registerDependency(s){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...s})},createContext:(s,o)=>mo(s,o,e)})(e,t);if("-"===a.tailwindConfig.separator)throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");(function(i){if(void 0===h.env.JEST_WORKER_ID&&Au(i).length>0){let e=Au(i).map((t=>_e.yellow(t))).join(", ");F.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}})(a.tailwindConfig),await Oo(a)(e,t),Fn()(e,t),To(a)(e,t),Kh(a)(e,t),function({tailwindConfig:{theme:i}}){return function(e){e.walkAtRules("screen",(t=>{let r=t.params,a=at(i.screens).find((({name:s})=>s===r));if(!a)throw t.error(`No \`${r}\` screen found.`);t.name="media",t.params=st(a)}))}}(a)(e,t),function({tailwindConfig:i}){return e=>{let t=new Map,r=new Set;if(e.walkAtRules("defaults",(n=>{if(n.nodes&&n.nodes.length>0)return void r.add(n);let a=n.params;t.has(a)||t.set(a,new Set),t.get(a).add(n.parent),n.remove()})),Z(i,"optimizeUniversalDefaults"))for(let n of r){let a=new Map,s=t.get(n.params)??[];for(let o of s)for(let u of j2(o.selector)){let c=u.includes(":-")||u.includes("::-")?u:"__DEFAULT__",f=a.get(c)??new Set;a.set(c,f),f.add(u)}if(Z(i,"optimizeUniversalDefaults")){if(0===a.size){n.remove();continue}for(let[,o]of a){let u=V.rule({source:n.source});u.selectors=[...o],u.append(n.nodes.map((c=>c.clone()))),n.before(u)}}n.remove()}else if(r.size){let n=V.rule({selectors:["*","::before","::after"]});for(let s of r)n.append(s.nodes),n.parent||s.before(n),n.source||(n.source=s.source),s.remove();let a=n.clone({selectors:["::backdrop"]});n.after(a)}}}(a)(e,t),zo()(e,t),(i=>{i.walkRules((e=>{let t=new Map,r=new Set([]),n=new Map;e.walkDecls((a=>{if(a.parent===e){if(t.has(a.prop)){if(t.get(a.prop).value===a.value)return r.add(t.get(a.prop)),void t.set(a.prop,a);n.has(a.prop)||n.set(a.prop,new Set),n.get(a.prop).add(t.get(a.prop)),n.get(a.prop).add(a)}t.set(a.prop,a)}}));for(let a of r)a.remove();for(let a of n.values()){let s=new Map;for(let o of a){let u=U2(o.value);null!==u&&(s.has(u)||s.set(u,new Set),s.get(u).add(o))}for(let o of s.values()){let u=Array.from(o).slice(0,-1);for(let c of u)c.remove()}}}))})(e)}}var fm=C((()=>{l(),mh(),_h(),Ih(),Zh(),tm(),im(),sm(),am(),om(),um(),Xr(),ze()}));var pm=C((()=>{l(),je(),gt()})),dm=v(((vI,Uo)=>{l(),hh(),fm(),ot(),pm(),Uo.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Pe.DEBUG&&function(t){return console.log("\n"),console.time("JIT TOTAL"),t},async function(t,r){e=function(i,e){let t=null,r=null;return i.walkAtRules("config",(n=>{if(r=n.source?.input.file??e.opts.from??null,null===r)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let a=n.params.match(/(['"])(.*?)\1/);if(!a)throw n.error("A path is required when using the `@config` directive.");let s=a[2];if(ee.isAbsolute(s))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=ee.resolve(ee.dirname(r),s),!re.existsSync(t))throw n.error(`The config file at "${s}" does not exist. Make sure the path is correct and the file exists.`);n.remove()})),t||null}(t,r)??e;let n=So(e);if("document"!==t.type)await Nn(n)(t,r);else{let a=t.nodes.filter((s=>"root"===s.type));for(let s of a)"root"===s.type&&await Nn(n)(s,r)}},!1,Pe.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log("\n"),t}].filter(Boolean)}},Uo.exports.postcss=!0})),mm=v(((xI,hm)=>{l(),hm.exports=dm()})),Wo=v(((kI,gm)=>{l(),gm.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]})),Ln={};function Q2(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",5.5:"n"},edge:{12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",79:"y",80:"y",81:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y"},firefox:{2:"n",3:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",59:"y",60:"y",61:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",82:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y",115:"y",116:"y",117:"y",3.5:"n",3.6:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",59:"y",60:"y",61:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",101:"y",102:"y",103:"y",104:"y",105:"y",106:"y",107:"y",108:"y",109:"y",110:"y",111:"y",112:"y",113:"y",114:"y",115:"y",116:"y",117:"y"},safari:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",17:"y",9.1:"y",10.1:"y",11.1:"y",12.1:"y",13.1:"y",14.1:"y",15.1:"y","15.2-15.3":"y",15.4:"y",15.5:"y",15.6:"y","16.0":"y",16.1:"y",16.2:"y",16.3:"y",16.4:"y",16.5:"y",16.6:"y",TP:"y",3.1:"n",3.2:"n",5.1:"n",6.1:"n",7.1:"n"},opera:{9:"n",11:"n",12:"n",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y",33:"y",34:"y",35:"y",36:"y",37:"y",38:"y",39:"y",40:"y",41:"y",42:"y",43:"y",44:"y",45:"y",46:"y",47:"y",48:"y",49:"y",50:"y",51:"y",52:"y",53:"y",54:"y",55:"y",56:"y",57:"y",58:"y",60:"y",62:"y",63:"y",64:"y",65:"y",66:"y",67:"y",68:"y",69:"y",70:"y",71:"y",72:"y",73:"y",74:"y",75:"y",76:"y",77:"y",78:"y",79:"y",80:"y",81:"y",82:"y",83:"y",84:"y",85:"y",86:"y",87:"y",88:"y",89:"y",90:"y",91:"y",92:"y",93:"y",94:"y",95:"y",96:"y",97:"y",98:"y",99:"y",100:"y",12.1:"y","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11.1:"n",11.5:"n",11.6:"n"},ios_saf:{8:"n",17:"y","9.0-9.2":"y",9.3:"y","10.0-10.2":"y",10.3:"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y",13.2:"y",13.3:"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y",15.4:"y",15.5:"y",15.6:"y","16.0":"y",16.1:"y",16.2:"y",16.3:"y",16.4:"y",16.5:"y",16.6:"y",3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{3:"n",4:"n",114:"y",4.4:"y","4.4.3-4.4.4":"y",2.1:"n",2.2:"n",2.3:"n",4.1:"n","4.2-4.3":"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",12:"n",73:"y",11.1:"n",11.5:"n",12.1:"n"},and_chr:{114:"y"},and_ff:{115:"y"},ie_mob:{10:"n",11:"n"},and_uc:{15.5:"y"},samsung:{4:"y",20:"y",21:"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y",8.2:"y",9.2:"y",10.1:"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{13.1:"y"},baidu:{13.18:"y"},kaios:{2.5:"y","3.0-3.1":"y"}}}}Ae(Ln,{agents:()=>Y2,feature:()=>Q2});var Y2,$n=C((()=>{l(),Y2={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{12:"ms",13:"ms",14:"ms",15:"ms",16:"ms",17:"ms",18:"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{9:"o",11:"o",12:"o","9.5-9.6":"o","10.0-10.1":"o",10.5:"o",10.6:"o",11.1:"o",11.5:"o",11.6:"o",12.1:"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{73:"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{15.5:"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}})),ym=v((()=>{l()})),fe=v(((AI,ct)=>{l();var{list:Go}=ge();ct.exports.error=function(i){let e=new Error(i);throw e.autoprefixer=!0,e},ct.exports.uniq=function(i){return[...new Set(i)]},ct.exports.removeNote=function(i){return i.includes(" ")?i.split(" ")[0]:i},ct.exports.escapeRegexp=function(i){return i.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")},ct.exports.regexp=function(i,e=!0){return e&&(i=this.escapeRegexp(i)),new RegExp(`(^|[\\s,(])(${i}($|[\\s(,]))`,"gi")},ct.exports.editList=function(i,e){let t=Go.comma(i),r=e(t,[]);if(t===r)return i;let n=i.match(/,\s*/);return n=n?n[0]:", ",r.join(n)},ct.exports.splitSelector=function(i){return Go.comma(i).map((e=>Go.space(e).map((t=>t.split(/(?=\.|#)/g)))))}})),pt=v(((_I,vm)=>{l();var J2=Wo(),wm=($n(),Ln).agents,X2=fe();vm.exports=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in wm)this.prefixesCache.push(`-${wm[e].prefix}-`);return this.prefixesCache=X2.uniq(this.prefixesCache).sort(((e,t)=>t.length-e.length)),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,r,n){this.data=e,this.options=r||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let r in this.browserslistOpts)t[r]=this.browserslistOpts[r];return t.path=this.options.from,J2(e,t)}prefix(e){let[t,r]=e.split(" "),n=this.data[t],a=n.prefix_exceptions&&n.prefix_exceptions[r];return a||(a=n.prefix),`-${a}-`}isSelected(e){return this.selected.includes(e)}}})),ii=v(((OI,xm)=>{l(),xm.exports={prefix(i){let e=i.match(/^(-\w+-)/);return e?e[0]:""},unprefixed:i=>i.replace(/^-\w+-/,"")}})),Ut=v(((EI,Sm)=>{l();var K2=pt(),km=ii(),Z2=fe();function Ho(i,e){let t=new i.constructor;for(let r of Object.keys(i||{})){let n=i[r];"parent"===r&&"object"==typeof n?e&&(t[r]=e):"source"===r||null===r?t[r]=n:Array.isArray(n)?t[r]=n.map((a=>Ho(a,t))):"_autoprefixerPrefix"!==r&&"_autoprefixerValues"!==r&&"proxyCache"!==r&&("object"==typeof n&&null!==n&&(n=Ho(n,t)),t[r]=n)}return t}var jn=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map((t=>(this.hacks[t]=e,this.hacks[t])))}static load(e,t,r){let n=this.hacks&&this.hacks[e];return n?new n(e,t,r):new this(e,t,r)}static clone(e,t){let r=Ho(e);for(let n in t)r[n]=t[n];return r}constructor(e,t,r){this.prefixes=t,this.name=e,this.all=r}parentPrefix(e){let t;return t=void 0!==e._autoprefixerPrefix?e._autoprefixerPrefix:"decl"===e.type&&"-"===e.prop[0]?km.prefix(e.prop):"root"!==e.type&&("rule"===e.type&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?e.selector.match(/:(-\w+-)/)[1]:"atrule"===e.type&&"-"===e.name[0]?km.prefix(e.name):this.parentPrefix(e.parent)),K2.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let r=this.parentPrefix(e),n=this.prefixes.filter((s=>!r||r===Z2.removeNote(s))),a=[];for(let s of n)this.add(e,s,a.concat([s]),t)&&a.push(s);return a}clone(e,t){return jn.clone(e,t)}};Sm.exports=jn})),R=v(((TI,_m)=>{l();var eA=Ut(),tA=pt(),Cm=fe();_m.exports=class extends eA{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let r of tA.prefixes())if(r!==t&&e.includes(r))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=!1!==this.all.options.cascade&&e.raw("before").includes("\n")),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let r=0;for(let n of e)n=Cm.removeNote(n),n.length>r&&(r=n.length);return t._autoprefixerMax=r,t._autoprefixerMax}calcBefore(e,t,r=""){let a=this.maxPrefixed(e,t)-Cm.removeNote(r).length,s=t.raw("before");return a>0&&(s+=Array(a).fill(" ").join("")),s}restoreBefore(e){let t=e.raw("before").split("\n"),r=t[t.length-1];this.all.group(e).up((n=>{let a=n.raw("before").split("\n"),s=a[a.length-1];s.lengths.prop===n.prop&&s.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let r=this.all.group(e).up((n=>n.prop===t));return r||(r=this.all.group(e).down((n=>n.prop===t))),r}add(e,t,r,n){let a=this.prefixed(e.prop,t);if(!this.isAlready(e,a)&&!this.otherPrefixes(e.value,t))return this.insert(e,t,r,n)}process(e,t){if(!this.needCascade(e))return void super.process(e,t);let r=super.process(e,t);!r||!r.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(r,e))}old(e,t){return[this.prefixed(e,t)]}}})),Em=v(((PI,Om)=>{l(),Om.exports=function i(e){return{mul:t=>new i(e*t),div:t=>new i(e/t),simplify:()=>new i(e),toString:()=>e.toString()}}})),Dm=v(((DI,Pm)=>{l();var rA=Em(),iA=Ut(),Yo=fe(),nA=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,sA=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i;Pm.exports=class extends iA{prefixName(e,t){return"-moz-"===e?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,r,n,a){return n=new rA(n),"dpi"===a?n=n.div(96):"dpcm"===a&&(n=n.mul(2.54).div(96)),n=n.simplify(),"-o-"===e&&(n=n.n+"/"+n.d),this.prefixName(e,t)+r+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Yo.editList(e.params,(t=>t.filter((r=>this.bad.every((n=>!r.includes(n)))))))}process(e){let t=this.parentPrefix(e),r=t?[t]:this.prefixes;e.params=Yo.editList(e.params,((n,a)=>{for(let s of n)if(s.includes("min-resolution")||s.includes("max-resolution")){for(let o of r){let u=s.replace(nA,(c=>{let f=c.match(sA);return this.prefixQuery(o,f[1],f[2],f[3],f[4])}));a.push(u)}a.push(s)}else a.push(s);return Yo.uniq(a)}))}}})),qm=v(((II,Im)=>{l();var Qo="(".charCodeAt(0),Jo=")".charCodeAt(0),zn="'".charCodeAt(0),Xo='"'.charCodeAt(0),Ko="\\".charCodeAt(0),Wt="/".charCodeAt(0),Zo=",".charCodeAt(0),el=":".charCodeAt(0),Vn="*".charCodeAt(0),aA="u".charCodeAt(0),oA="U".charCodeAt(0),lA="+".charCodeAt(0),uA=/^[a-f0-9?-]+$/i;Im.exports=function(i){for(var r,n,a,s,o,u,c,f,y,e=[],t=i,d=0,p=t.charCodeAt(d),m=t.length,w=[{nodes:e}],x=0,b="",k="",S="";d{l(),Rm.exports=function i(e,t,r){var n,a,s,o;for(n=0,a=e.length;n{function Bm(i,e){var n,a,t=i.type,r=i.value;return e&&void 0!==(a=e(i))?a:"word"===t||"space"===t?r:"string"===t?(n=i.quote||"")+r+(i.unclosed?"":n):"comment"===t?"/*"+r+(i.unclosed?"":"*/"):"div"===t?(i.before||"")+r+(i.after||""):Array.isArray(i.nodes)?(n=Fm(i.nodes,e),"function"!==t?n:r+"("+(i.before||"")+n+(i.after||"")+(i.unclosed?"":")")):r}function Fm(i,e){var t,r;if(Array.isArray(i)){for(t="",r=i.length-1;~r;r-=1)t=Bm(i[r],e)+t;return t}return Bm(i,e)}l(),Nm.exports=Fm})),jm=v(((MI,$m)=>{l();var Un="-".charCodeAt(0),Wn="+".charCodeAt(0),tl=".".charCodeAt(0),fA="e".charCodeAt(0),cA="E".charCodeAt(0);$m.exports=function(i){var r,n,a,e=0,t=i.length;if(0===t||!function(i){var t,e=i.charCodeAt(0);if(e===Wn||e===Un){if((t=i.charCodeAt(1))>=48&&t<=57)return!0;var r=i.charCodeAt(2);return t===tl&&r>=48&&r<=57}return e===tl?(t=i.charCodeAt(1))>=48&&t<=57:e>=48&&e<=57}(i))return!1;for(((r=i.charCodeAt(e))===Wn||r===Un)&&e++;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),r===tl&&n>=48&&n<=57)for(e+=2;e57);)e+=1;if(r=i.charCodeAt(e),n=i.charCodeAt(e+1),a=i.charCodeAt(e+2),(r===fA||r===cA)&&(n>=48&&n<=57||(n===Wn||n===Un)&&a>=48&&a<=57))for(e+=n===Wn||n===Un?3:2;e57);)e+=1;return{number:i.slice(0,e),unit:i.slice(e)}}})),Gn=v(((BI,Um)=>{l();var dA=qm(),zm=Mm(),Vm=Lm();function dt(i){return this instanceof dt?(this.nodes=dA(i),this):new dt(i)}dt.prototype.toString=function(){return Array.isArray(this.nodes)?Vm(this.nodes):""},dt.prototype.walk=function(i,e){return zm(this.nodes,i,e),this},dt.unit=jm(),dt.walk=zm,dt.stringify=Vm,Um.exports=dt})),Qm=v(((FI,Ym)=>{l();var{list:hA}=ge(),Wm=Gn(),mA=pt(),Gm=ii();Ym.exports=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let r,n,a=this.prefixes.add[e.prop],s=this.ruleVendorPrefixes(e),o=s||a&&a.prefixes||[],u=this.parse(e.value),c=u.map((m=>this.findProp(m))),f=[];if(c.some((m=>"-"===m[0])))return;for(let m of u){if(n=this.findProp(m),"-"===n[0])continue;let w=this.prefixes.add[n];if(w&&w.prefixes)for(r of w.prefixes){if(s&&!s.some((y=>r.includes(y))))continue;let x=this.prefixes.prefixed(n,r);"-ms-transform"!==x&&!c.includes(x)&&(this.disabled(n,r)||f.push(this.clone(n,x,m)))}}u=u.concat(f);let d=this.stringify(u),p=this.stringify(this.cleanFromUnprefixed(u,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let m=this.stringify(this.cleanFromUnprefixed(u,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,m)}for(r of o)if("-webkit-"!==r&&"-o-"!==r){let m=this.stringify(this.cleanOtherPrefixes(u,r));this.cloneBefore(e,r+e.prop,m)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t))for(let[r,n]of e.entries())if(0!==r&&"word"===n.type)return n.value;return t}already(e,t,r){return e.parent.some((n=>n.prop===t&&n.value===r))}cloneBefore(e,t,r){this.already(e,t,r)||e.cloneBefore({prop:t,value:r})}checkForWarning(e,t){if("transition-property"!==t.prop)return;let r=!1,n=!1;t.parent.each((a=>{if("decl"!==a.type||0!==a.prop.indexOf("transition-"))return;let s=hA.comma(a.value);if("transition-property"!==a.prop)return n=n||s.length>1,!1;s.forEach((o=>{let u=this.prefixes.add[o];u&&u.prefixes&&u.prefixes.length>0&&(r=!0)}))})),r&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter((s=>{let o=this.prefixes.remove[this.findProp(s)];return!o||!o.remove}));let r=this.stringify(t);if(e.value===r)return;if(0===t.length)return void e.remove();let n=e.parent.some((s=>s.prop===e.prop&&s.value===r)),a=e.parent.some((s=>s!==e&&s.prop===e.prop&&s.value.length>r.length));n||a?e.remove():e.value=r}parse(e){let t=Wm(e),r=[],n=[];for(let a of t.nodes)n.push(a),"div"===a.type&&","===a.value&&(r.push(n),n=[]);return r.push(n),r.filter((a=>a.length>0))}stringify(e){if(0===e.length)return"";let t=[];for(let r of e)"div"!==r[r.length-1].type&&r.push(this.div(e)),t=t.concat(r);return"div"===t[0].type&&(t=t.slice(1)),"div"===t[t.length-1].type&&(t=t.slice(0,-1)),Wm.stringify({nodes:t})}clone(e,t,r){let n=[],a=!1;for(let s of r)a||"word"!==s.type||s.value!==e?n.push(s):(n.push({type:"word",value:t}),a=!0);return n}div(e){for(let t of e)for(let r of t)if("div"===r.type&&","===r.value)return r;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter((r=>{let n=Gm.prefix(this.findProp(r));return""===n||n===t}))}cleanFromUnprefixed(e,t){let r=e.map((a=>this.findProp(a))).filter((a=>a.slice(0,t.length)===t)).map((a=>this.prefixes.unprefixed(a))),n=[];for(let a of e){let s=this.findProp(a),o=Gm.prefix(s);!r.includes(s)&&(o===t||""===o)&&n.push(a)}return n}disabled(e,t){if(e.includes("flex")||["order","justify-content","align-self","align-content"].includes(e)){if(!1===this.prefixes.options.flexbox)return!0;if("no-2009"===this.prefixes.options.flexbox)return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if("rule"!==t.type)return!1;if(!t.selector.includes(":-"))return!1;let r=mA.prefixes().filter((n=>t.selector.includes(":"+n)));return r.length>0&&r}}})),Gt=v(((NI,Xm)=>{l();var gA=fe();Xm.exports=class{constructor(e,t,r,n){this.unprefixed=e,this.prefixed=t,this.string=r||t,this.regexp=n||gA.regexp(t)}check(e){return!!e.includes(this.string)&&!!e.match(this.regexp)}}})),ke=v(((LI,Zm)=>{l();var yA=Ut(),wA=Gt(),bA=ii(),vA=fe();Zm.exports=class extends yA{static save(e,t){let r=t.prop,n=[];for(let a in t._autoprefixerValues){let s=t._autoprefixerValues[a];if(s===t.value)continue;let o,u=bA.prefix(r);if("-pie-"===u)continue;if(u===a){o=t.value=s,n.push(o);continue}let c=e.prefixed(r,a),f=t.parent;if(!f.every((w=>w.prop!==c))){n.push(o);continue}let d=s.replace(/\s+/," ");if(f.some((w=>w.prop===t.prop&&w.value.replace(/\s+/," ")===d))){n.push(o);continue}let m=this.clone(t,{value:s});o=t.parent.insertBefore(t,m),n.push(o)}return n}check(e){let t=e.value;return!!t.includes(this.name)&&!!t.match(this.regexp())}regexp(){return this.regexpCache||(this.regexpCache=vA.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let n,r=e._autoprefixerValues[t]||this.value(e);do{if(n=r,r=this.replace(r,t),!1===r)return}while(r!==n);e._autoprefixerValues[t]=r}old(e){return new wA(this.name,e+this.name)}}})),ht=v((($I,eg)=>{l(),eg.exports={}})),il=v(((jI,ig)=>{l();var tg=Gn(),xA=ke(),kA=ht().insertAreas,SA=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,CA=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,AA=/(!\s*)?autoprefixer:\s*ignore\s+next/i,_A=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,OA=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function rl(i){return i.parent.some((e=>"grid-template"===e.prop||"grid-template-areas"===e.prop))}ig.exports=class{constructor(e){this.prefixes=e}add(e,t){let r=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],a=this.prefixes.add["@viewport"],s=this.prefixes.add["@supports"];function o(f){return f.parent.nodes.some((d=>{if("decl"!==d.type)return!1;let p="display"===d.prop&&/(inline-)?grid/.test(d.value),m=d.prop.startsWith("grid-template"),w=/^grid-([A-z]+-)?gap/.test(d.prop);return p||m||w}))}e.walkAtRules((f=>{if("keyframes"===f.name){if(!this.disabled(f,t))return n&&n.process(f)}else if("viewport"===f.name){if(!this.disabled(f,t))return a&&a.process(f)}else if("supports"===f.name){if(!1!==this.prefixes.options.supports&&!this.disabled(f,t))return s.process(f)}else if("media"===f.name&&f.params.includes("-resolution")&&!this.disabled(f,t))return r&&r.process(f)})),e.walkRules((f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map((d=>d.process(f,t)))}));let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls((f=>{if(this.disabledDecl(f,t))return;let w,d=f.parent,p=f.prop,m=f.value;if("grid-row-span"!==p)if("grid-column-span"!==p)if("display"!==p||"box"!==m){if("text-emphasis-position"===p)("under"===m||"over"===m)&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&function(f){return f.parent.some((d=>"display"===d.prop&&/(inline-)?flex/.test(d.value)))}(f))("start"===m||"end"===m)&&t.warn(`${m} value has mixed support, consider using flex-${m} instead`,{node:f});else if("text-decoration-skip"===p&&"ink"===m)t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if("subgrid"===f.value&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let x=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else{if("display"===p&&"contents"===f.value)return void t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});if("grid-gap"===f.prop){let x=this.gridStatus(f,t);"autoplace"!==x||function(i){let e=i.parent.some((r=>"grid-template-rows"===r.prop)),t=i.parent.some((r=>"grid-template-columns"===r.prop));return e&&t}(f)||rl(f)?(!0===x||"no-autoplace"===x)&&!rl(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f}):t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f})}else{if("grid-auto-columns"===p)return void t.warn("grid-auto-columns is not supported by IE",{node:f});if("grid-auto-rows"===p)return void t.warn("grid-auto-rows is not supported by IE",{node:f});if("grid-auto-flow"===p){let x=d.some((b=>"grid-template-rows"===b.prop)),y=d.some((b=>"grid-template-columns"===b.prop));return void(rl(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):m.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!x&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f}))}if(m.includes("auto-fit"))return void t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});if(m.includes("auto-fill"))return void t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});p.startsWith("grid-template")&&m.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["})}}if(m.includes("radial-gradient"))if(CA.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let x=tg(m);for(let y of x.nodes)if("function"===y.type&&"radial-gradient"===y.value)for(let b of y.nodes)"word"===b.type&&("cover"===b.value?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):"contain"===b.value&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}m.includes("linear-gradient")&&SA.test(m)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}if(OA.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&tg(m).nodes.some((y=>"word"===y.type&&"fill"===y.value))&&t.warn("Replace fill to stretch, because spec had been changed",{node:f}))),"transition"===f.prop||"transition-property"===f.prop)return this.prefixes.transition.add(f,t);if("align-self"===f.prop){if("grid"!==this.displayType(f)&&!1!==this.prefixes.options.flexbox&&(w=this.prefixes.add["align-self"],w&&w.prefixes&&w.process(f)),!1!==this.gridStatus(f,t)&&(w=this.prefixes.add["grid-row-align"],w&&w.prefixes))return w.process(f,t)}else if("justify-self"===f.prop){if(!1!==this.gridStatus(f,t)&&(w=this.prefixes.add["grid-column-align"],w&&w.prefixes))return w.process(f,t)}else if("place-self"===f.prop){if(w=this.prefixes.add["place-self"],w&&w.prefixes&&!1!==this.gridStatus(f,t))return w.process(f,t)}else if(w=this.prefixes.add[f.prop],w&&w.prefixes)return w.process(f,t)}else t.warn("You should write display: flex by final spec instead of display: box",{node:f});else t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});else t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f})})),this.gridStatus(e,t)&&kA(e,this.disabled),e.walkDecls((f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let m of p)m.process&&m.process(f,t);xA.save(this.prefixes,f)}))}remove(e,t){let r=this.prefixes.remove["@resolution"];e.walkAtRules(((n,a)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(a):"media"===n.name&&n.params.includes("-resolution")&&r&&r.clean(n)}));for(let n of this.prefixes.remove.selectors)e.walkRules(((a,s)=>{n.check(a)&&(this.disabled(a,t)||a.parent.removeChild(s))}));return e.walkDecls(((n,a)=>{if(this.disabled(n,t))return;let s=n.parent,o=this.prefixes.unprefixed(n.prop);if(("transition"===n.prop||"transition-property"===n.prop)&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let u=this.prefixes.group(n).down((c=>this.prefixes.normalize(c.prop)===o));if("flex-flow"===o&&(u=!0),"-webkit-box-orient"===n.prop){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some((f=>c[f.prop])))return}if(u&&!this.withHackValue(n))return n.raw("before").includes("\n")&&this.reduceSpaces(n),void s.removeChild(a)}for(let u of this.prefixes.values("remove",o))if(u.check&&u.check(n.value)&&(o=u.unprefixed,this.prefixes.group(n).down((f=>f.value.includes(o)))))return void s.removeChild(a)}))}withHackValue(e){return"-webkit-background-clip"===e.prop&&"text"===e.value}disabledValue(e,t){return!!(!1===this.gridStatus(e,t)&&"decl"===e.type&&"display"===e.prop&&e.value.includes("grid")||!1===this.prefixes.options.flexbox&&"decl"===e.type&&"display"===e.prop&&e.value.includes("flex")||"decl"===e.type&&"content"===e.prop)||this.disabled(e,t)}disabledDecl(e,t){if(!1===this.gridStatus(e,t)&&"decl"===e.type&&(e.prop.includes("grid")||"justify-items"===e.prop))return!0;if(!1===this.prefixes.options.flexbox&&"decl"===e.type){let r=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||r.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(void 0!==e._autoprefixerDisabled)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&"comment"===n.type&&AA.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let r=null;if(e.nodes){let n;e.each((a=>{"comment"===a.type&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text)&&(void 0!==n?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:a}):n=/on/i.test(a.text))})),void 0!==n&&(r=!n)}if(!e.nodes||null===r)if(e.parent){let n=this.disabled(e.parent,t);r=!0!==e.parent._autoprefixerSelfDisabled&&n}else r=!1;return e._autoprefixerDisabled=r,r}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up((()=>(t=!0,!0))),t)return;let r=e.raw("before").split("\n"),n=r[r.length-1].length,a=!1;this.prefixes.group(e).down((s=>{r=s.raw("before").split("\n");let o=r.length-1;r[o].length>n&&(!1===a&&(a=r[o].length-n),r[o]=r[o].slice(0,-a),s.raws.before=r.join("\n"))}))}displayType(e){for(let t of e.parent.nodes)if("display"===t.prop){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(void 0!==e._autoprefixerGridStatus)return e._autoprefixerGridStatus;let r=null;if(e.nodes){let n;e.each((a=>{if("comment"===a.type&&_A.test(a.text)){let s=/:\s*autoplace/i.test(a.text),o=/no-autoplace/i.test(a.text);void 0!==n?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:a}):n=s?"autoplace":!!o||/on/i.test(a.text)}})),void 0!==n&&(r=n)}if("atrule"===e.type&&"supports"===e.name){let n=e.params;n.includes("grid")&&n.includes("auto")&&(r=!1)}if(!e.nodes||null===r)if(e.parent){let n=this.gridStatus(e.parent,t);r=!0!==e.parent._autoprefixerSelfDisabled&&n}else r=void 0!==this.prefixes.options.grid?this.prefixes.options.grid:void 0!==h.env.AUTOPREFIXER_GRID&&("autoplace"!==h.env.AUTOPREFIXER_GRID||"autoplace");return e._autoprefixerGridStatus=r,r}}})),sg=v(((zI,ng)=>{l(),ng.exports={A:{A:{2:"K E F G A B JC"},B:{1:"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{1:"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B",2:"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{1:"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B",2:"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{1:"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC",2:"0 J K E F NC 5B OC PC QC"},F:{1:"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB",2:"G B C VC WC XC YC vB HC ZC"},G:{1:"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC",2:"F 5B aC IC bC cC dC eC"},H:{1:"uC"},I:{1:"I zC 0C",2:"zB J vC wC xC yC IC"},J:{2:"E A"},K:{1:"m",2:"A B C vB HC wB"},L:{1:"I"},M:{1:"uB"},N:{2:"A B"},O:{1:"xB"},P:{1:"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{1:"7B"},R:{1:"ED"},S:{1:"FD GD"}},B:4,C:"CSS Feature Queries"}})),ug=v(((VI,lg)=>{function ag(i){return i[i.length-1]}l();var og={parse(i){let e=[""],t=[e];for(let r of i)"("!==r?")"!==r?e[e.length-1]+=r:(t.pop(),e=ag(t),e.push("")):(e=[""],ag(t).push(e),t.push(e));return t[0]},stringify(i){let e="";for(let t of i)e+="object"!=typeof t?t:`(${og.stringify(t)})`;return e}};lg.exports=og})),hg=v(((UI,dg)=>{l();var TA=sg(),{feature:PA}=($n(),Ln),{parse:DA}=ge(),IA=pt(),nl=ug(),qA=ke(),RA=fe(),fg=PA(TA),cg=[];for(let i in fg.stats){let e=fg.stats[i];for(let t in e){let r=e[t];/y/.test(r)&&cg.push(i+" "+t)}}dg.exports=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter((r=>cg.includes(r))),t=new IA(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),r=t[0],n=t[1];return n||(n=""),[r.trim(),n.trim()]}virtual(e){let[t,r]=this.parse(e),n=DA("a{}").first;return n.append({prop:t,value:r,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,{warn:()=>null});for(let a of t.nodes){for(let s of this.prefixer().values("add",t.first.prop))s.process(a);qA.save(this.all,a)}return t.nodes}isNot(e){return"string"==typeof e&&/not\s*/i.test(e)}isOr(e){return"string"==typeof e&&/\s*or\s*/i.test(e)}isProp(e){return"object"==typeof e&&1===e.length&&"string"==typeof e[0]}isHack(e,t){return!new RegExp(`(\\(|\\s)${RA.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[r,n]=this.parse(e),a=this.all.unprefixed(r),s=this.all.cleaner();if(s.remove[r]&&s.remove[r].remove&&!this.isHack(t,a))return!0;for(let o of s.values("remove",a))if(o.check(n))return!0;return!1}remove(e,t){let r=0;for(;r"object"!=typeof t?t:1===t.length&&"object"==typeof t[0]?this.cleanBrackets(t[0]):this.cleanBrackets(t)))}convert(e){let t=[""];for(let r of e)t.push([`${r.prop}: ${r.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if("object"!=typeof e)return e;if("string"==typeof(e=e.filter((t=>""!==t)))[0]){let t=e[0].trim();if(t.includes(":")||"selector"===t||"not selector"===t)return[nl.stringify(e)]}return e.map((t=>this.normalize(t)))}add(e,t){return e.map((r=>{if(this.isProp(r)){let n=this.prefixed(r[0]);return n.length>1?this.convert(n):r}return"object"==typeof r?this.add(r,t):r}))}process(e){let t=nl.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=nl.stringify(t)}disabled(e){if(!this.all.options.grid&&("display"===e.prop&&e.value.includes("grid")||e.prop.includes("grid")||"justify-items"===e.prop))return!0;if(!1===this.all.options.flexbox){if("display"===e.prop&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}}})),yg=v(((WI,gg)=>{l();gg.exports=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map((r=>[e.prefixed(r),e.regexp(r)])),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,r=e.parent.nodes;for(;t{l();var{list:MA}=ge(),BA=yg(),FA=Ut(),NA=pt(),LA=fe();bg.exports=class extends FA{constructor(e,t,r){super(e,t,r),this.regexpCache=new Map}check(e){return!!e.selector.includes(this.name)&&!!e.selector.match(this.regexp())}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${LA.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return NA.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=MA.comma(e.selector).filter((a=>a.includes(this.name)));for(let a of this.possible())t[a]=n.map((s=>this.replace(s,a))).join(", ")}else for(let r of this.possible())t[r]=this.replace(e.selector,r);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,r){let n=e.parent.index(e)-1;for(;n>=0;){let a=e.parent.nodes[n];if("rule"!==a.type)return!1;let s=!1;for(let o in t[this.name]){let u=t[this.name][o];if(a.selector===u){if(r===o)return!0;s=!0;break}}if(!s)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let r=this.prefixeds(e);if(this.already(e,r,t))return;let n=this.clone(e,{selector:r[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new BA(this,e)}}})),kg=v(((HI,xg)=>{l();var $A=Ut();xg.exports=class extends $A{add(e,t){let r=t+e.name;if(e.parent.some((s=>s.name===r&&s.params===e.params)))return;let a=this.clone(e,{name:r});return e.parent.insertBefore(e,a)}process(e){let t=this.parentPrefix(e);for(let r of this.prefixes)(!t||t===r)&&this.add(e,r)}}})),Cg=v(((YI,Sg)=>{l();var jA=Ht(),sl=class extends jA{prefixed(e){return"-webkit-"===e?":-webkit-full-screen":"-moz-"===e?":-moz-full-screen":`:${e}fullscreen`}};sl.names=[":fullscreen"],Sg.exports=sl})),_g=v(((QI,Ag)=>{l();var zA=Ht(),al=class extends zA{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return"-webkit-"===e?"::-webkit-input-placeholder":"-ms-"===e?"::-ms-input-placeholder":"-ms- old"===e?":-ms-input-placeholder":"-moz- old"===e?":-moz-placeholder":`::${e}placeholder`}};al.names=["::placeholder"],Ag.exports=al})),Eg=v(((JI,Og)=>{l();var VA=Ht(),ol=class extends VA{prefixed(e){return"-ms-"===e?":-ms-input-placeholder":`:${e}placeholder-shown`}};ol.names=[":placeholder-shown"],Og.exports=ol})),Pg=v(((XI,Tg)=>{l();var UA=Ht(),WA=fe(),ll=class extends UA{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=WA.uniq(this.prefixes.map((n=>"-webkit-"))))}prefixed(e){return"-webkit-"===e?"::-webkit-file-upload-button":`::${e}file-selector-button`}};ll.names=["::file-selector-button"],Tg.exports=ll})),he=v(((KI,Dg)=>{l(),Dg.exports=function(i){let e;return"-webkit- 2009"===i||"-moz-"===i?e=2009:"-ms-"===i?e=2012:"-webkit-"===i&&(e="final"),"-webkit- 2009"===i&&(i="-webkit-"),[e,i]}})),Mg=v(((ZI,Rg)=>{l();var Ig=ge().list,qg=he(),GA=R(),Yt=class extends GA{prefixed(e,t){let r;return[r,t]=qg(t),2009===r?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let r=qg(t)[0];if(2009===r)return e.value=Ig.space(e.value)[0],e.value=Yt.oldValues[e.value]||e.value,super.set(e,t);if(2012===r){let n=Ig.space(e.value);3===n.length&&"0"===n[2]&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Yt.names=["flex","box-flex"],Yt.oldValues={auto:"1",none:"0"},Rg.exports=Yt})),Ng=v(((e4,Fg)=>{l();var Bg=he(),HA=R(),ul=class extends HA{prefixed(e,t){let r;return[r,t]=Bg(t),2009===r?t+"box-ordinal-group":2012===r?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return 2009===Bg(t)[0]&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};ul.names=["order","flex-order","box-ordinal-group"],Fg.exports=ul})),$g=v(((t4,Lg)=>{l();var YA=R(),fl=class extends YA{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};fl.names=["filter"],Lg.exports=fl})),zg=v(((r4,jg)=>{l();var QA=R(),cl=class extends QA{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=this.clone(e),s=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some((u=>u.prop===o))){if(a.prop=o,e.value.includes("span"))a.value=e.value.replace(/span\s/i,"");else{let u;if(e.parent.walkDecls(s,(c=>{u=c})),u){let c=Number(e.value)-Number(u.value)+"";a.value=c}else e.warn(n,`Can not prefix ${e.prop} (${s} is not found)`)}e.cloneBefore(a)}}};cl.names=["grid-row-end","grid-column-end"],jg.exports=cl})),Ug=v(((i4,Vg)=>{l();var JA=R(),pl=class extends JA{check(e){return!e.value.split(/\s+/).some((t=>{let r=t.toLowerCase();return"reverse"===r||"alternate-reverse"===r}))}};pl.names=["animation","animation-direction"],Vg.exports=pl})),Gg=v(((n4,Wg)=>{l();var XA=he(),KA=R(),dl=class extends KA{insert(e,t,r){let n;if([n,t]=XA(t),2009!==n)return super.insert(e,t,r);let a=e.value.split(/\s+/).filter((d=>"wrap"!==d&&"nowrap"!==d&&"wrap-reverse"));if(0===a.length||e.parent.some((d=>d.prop===t+"box-orient"||d.prop===t+"box-direction")))return;let o=a[0],u=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=u,this.needCascade(e)&&(f.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,f)}};dl.names=["flex-flow","box-direction","box-orient"],Wg.exports=dl})),Yg=v(((s4,Hg)=>{l();var ZA=he(),e_=R(),hl=class extends e_{normalize(){return"flex"}prefixed(e,t){let r;return[r,t]=ZA(t),2009===r?t+"box-flex":2012===r?t+"flex-positive":super.prefixed(e,t)}};hl.names=["flex-grow","flex-positive"],Hg.exports=hl})),Jg=v(((a4,Qg)=>{l();var t_=he(),r_=R(),ml=class extends r_{set(e,t){if(2009!==t_(t)[0])return super.set(e,t)}};ml.names=["flex-wrap"],Qg.exports=ml})),Kg=v(((o4,Xg)=>{l();var i_=R(),Qt=ht(),gl=class extends i_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=Qt.parse(e),[s,o]=Qt.translate(a,0,2),[u,c]=Qt.translate(a,1,3);[["grid-row",s],["grid-row-span",o],["grid-column",u],["grid-column-span",c]].forEach((([f,d])=>{Qt.insertDecl(e,f,d)})),Qt.warnTemplateSelectorNotFound(e,n),Qt.warnIfGridRowColumnExists(e,n)}};gl.names=["grid-area"],Xg.exports=gl})),ey=v(((l4,Zg)=>{l();var n_=R(),ni=ht(),yl=class extends n_{insert(e,t,r){if("-ms-"!==t)return super.insert(e,t,r);if(e.parent.some((s=>"-ms-grid-row-align"===s.prop)))return;let[[n,a]]=ni.parse(e);a?(ni.insertDecl(e,"grid-row-align",n),ni.insertDecl(e,"grid-column-align",a)):(ni.insertDecl(e,"grid-row-align",n),ni.insertDecl(e,"grid-column-align",n))}};yl.names=["place-self"],Zg.exports=yl})),ry=v(((u4,ty)=>{l();var s_=R(),wl=class extends s_{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let r=super.prefixed(e,t);return"-ms-"===t&&(r=r.replace("-start","")),r}};wl.names=["grid-row-start","grid-column-start"],ty.exports=wl})),sy=v(((f4,ny)=>{l();var iy=he(),a_=R(),Jt=class extends a_{check(e){return e.parent&&!e.parent.some((t=>t.prop&&t.prop.startsWith("grid-")))}prefixed(e,t){let r;return[r,t]=iy(t),2012===r?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let r=iy(t)[0];return 2012===r?(e.value=Jt.oldValues[e.value]||e.value,super.set(e,t)):"final"===r?super.set(e,t):void 0}};Jt.names=["align-self","flex-item-align"],Jt.oldValues={"flex-end":"end","flex-start":"start"},ny.exports=Jt})),oy=v(((c4,ay)=>{l();var o_=R(),l_=fe(),bl=class extends o_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=l_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}};bl.names=["appearance"],ay.exports=bl})),fy=v(((p4,uy)=>{l();var ly=he(),u_=R(),vl=class extends u_{normalize(){return"flex-basis"}prefixed(e,t){let r;return[r,t]=ly(t),2012===r?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let r;if([r,t]=ly(t),2012===r||"final"===r)return super.set(e,t)}};vl.names=["flex-basis","flex-preferred-size"],uy.exports=vl})),py=v(((d4,cy)=>{l();var f_=R(),xl=class extends f_{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let r=super.prefixed(e,t);return"-webkit-"===t&&(r=r.replace("border","box-image")),r}};xl.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"],cy.exports=xl})),hy=v(((h4,dy)=>{l();var c_=R(),Ne=class extends c_{insert(e,t,r){let a,n="mask-composite"===e.prop;a=n?e.value.split(","):e.value.match(Ne.regexp)||[],a=a.map((c=>c.trim())).filter((c=>c));let o,s=a.length;if(s&&(o=this.clone(e),o.value=a.map((c=>Ne.oldValues[c]||c)).join(", "),a.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,o)):void 0;let u=this.clone(e);return u.prop=t+u.prop,s&&(u.value=u.value.replace(Ne.regexp,"")),this.needCascade(e)&&(u.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,u),s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,o)):e}};Ne.names=["mask","mask-composite"],Ne.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"},Ne.regexp=new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig"),dy.exports=Ne})),yy=v(((m4,gy)=>{l();var my=he(),p_=R(),Xt=class extends p_{prefixed(e,t){let r;return[r,t]=my(t),2009===r?t+"box-align":2012===r?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let r=my(t)[0];return(2009===r||2012===r)&&(e.value=Xt.oldValues[e.value]||e.value),super.set(e,t)}};Xt.names=["align-items","flex-align","box-align"],Xt.oldValues={"flex-end":"end","flex-start":"start"},gy.exports=Xt})),by=v(((g4,wy)=>{l();var d_=R(),kl=class extends d_{set(e,t){return"-ms-"===t&&"contain"===e.value&&(e.value="element"),super.set(e,t)}insert(e,t,r){if("all"!==e.value||"-ms-"!==t)return super.insert(e,t,r)}};kl.names=["user-select"],wy.exports=kl})),ky=v(((y4,xy)=>{l();var vy=he(),h_=R(),Sl=class extends h_{normalize(){return"flex-shrink"}prefixed(e,t){let r;return[r,t]=vy(t),2012===r?t+"flex-negative":super.prefixed(e,t)}set(e,t){let r;if([r,t]=vy(t),2012===r||"final"===r)return super.set(e,t)}};Sl.names=["flex-shrink","flex-negative"],xy.exports=Sl})),Cy=v(((w4,Sy)=>{l();var m_=R(),Cl=class extends m_{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return("break-inside"===e.prop&&"avoid-column"===e.value||"avoid-page"===e.value)&&(e.value="avoid"),super.set(e,t)}insert(e,t,r){return"break-inside"!==e.prop?super.insert(e,t,r):/region/i.test(e.value)||/page/i.test(e.value)?void 0:super.insert(e,t,r)}};Cl.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"],Sy.exports=Cl})),_y=v(((b4,Ay)=>{l();var g_=R(),Al=class extends g_{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Al.names=["color-adjust","print-color-adjust"],Ay.exports=Al})),Ey=v(((v4,Oy)=>{l();var y_=R(),Kt=class extends y_{insert(e,t,r){if("-ms-"===t){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(r,e,t));let a="ltr";return e.parent.nodes.forEach((s=>{"direction"===s.prop&&("rtl"===s.value||"ltr"===s.value)&&(a=s.value)})),n.value=Kt.msValues[a][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,r)}};Kt.names=["writing-mode"],Kt.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}},Oy.exports=Kt})),Py=v(((x4,Ty)=>{l();var w_=R(),_l=class extends w_{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};_l.names=["border-image"],Ty.exports=_l})),qy=v(((k4,Iy)=>{l();var Dy=he(),b_=R(),Zt=class extends b_{prefixed(e,t){let r;return[r,t]=Dy(t),2012===r?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let r=Dy(t)[0];return 2012===r?(e.value=Zt.oldValues[e.value]||e.value,super.set(e,t)):"final"===r?super.set(e,t):void 0}};Zt.names=["align-content","flex-line-pack"],Zt.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"},Iy.exports=Zt})),My=v(((S4,Ry)=>{l();var v_=R(),Se=class extends v_{prefixed(e,t){return"-moz-"===t?t+(Se.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return Se.toNormal[e]||e}};Se.names=["border-radius"],Se.toMozilla={},Se.toNormal={};for(let i of["top","bottom"])for(let e of["left","right"]){let t=`border-${i}-${e}-radius`,r=`border-radius-${i}${e}`;Se.names.push(t),Se.names.push(r),Se.toMozilla[t]=r,Se.toNormal[r]=t}Ry.exports=Se})),Fy=v(((C4,By)=>{l();var x_=R(),Ol=class extends x_{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Ol.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"],By.exports=Ol})),Ly=v(((A4,Ny)=>{l();var k_=R(),{parseTemplate:S_,warnMissedAreas:C_,getGridGap:A_,warnGridGap:__,inheritGridGap:O_}=ht(),El=class extends k_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);if(e.parent.some((m=>"-ms-grid-rows"===m.prop)))return;let a=A_(e),s=O_(e,a),{rows:o,columns:u,areas:c}=S_({decl:e,gap:s||a}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(u);return __({gap:a,hasColumns:p,decl:e,result:n}),C_(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:u,raws:{}}),e}};El.names=["grid-template"],Ny.exports=El})),jy=v(((_4,$y)=>{l();var E_=R(),Tl=class extends E_{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Tl.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"],$y.exports=Tl})),Vy=v(((O4,zy)=>{l();var T_=R(),Pl=class extends T_{check(e){return!e.value.includes("flex-")&&"baseline"!==e.value}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};Pl.names=["grid-row-align"],zy.exports=Pl})),Wy=v(((E4,Uy)=>{l();var P_=R(),er=class extends P_{keyframeParents(e){let{parent:t}=e;for(;t;){if("atrule"===t.type&&"keyframes"===t.name)return!0;({parent:t}=t)}return!1}contain3d(e){if("transform-origin"===e.prop)return!1;for(let t of er.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),"-ms-"===t&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,r){if("-ms-"===t){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,r)}else{if("-o-"!==t)return super.insert(e,t,r);if(!this.contain3d(e))return super.insert(e,t,r)}}};er.names=["transform","transform-origin"],er.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"],Uy.exports=er})),Yy=v(((T4,Hy)=>{l();var Gy=he(),D_=R(),Dl=class extends D_{normalize(){return"flex-direction"}insert(e,t,r){let n;if([n,t]=Gy(t),2009!==n)return super.insert(e,t,r);if(e.parent.some((f=>f.prop===t+"box-orient"||f.prop===t+"box-direction")))return;let o,u,s=e.value;"inherit"===s||"initial"===s||"unset"===s?(o=s,u=s):(o=s.includes("row")?"horizontal":"vertical",u=s.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=u,this.needCascade(e)&&(c.raws.before=this.calcBefore(r,e,t)),e.parent.insertBefore(e,c)}old(e,t){let r;return[r,t]=Gy(t),2009===r?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};Dl.names=["flex-direction","box-direction","box-orient"],Hy.exports=Dl})),Jy=v(((P4,Qy)=>{l();var I_=R(),Il=class extends I_{check(e){return"pixelated"===e.value}prefixed(e,t){return"-ms-"===t?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return"-ms-"!==t?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Il.names=["image-rendering","interpolation-mode"],Qy.exports=Il})),Ky=v(((D4,Xy)=>{l();var q_=R(),R_=fe(),ql=class extends q_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=R_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}};ql.names=["backdrop-filter"],Xy.exports=ql})),ew=v(((I4,Zy)=>{l();var M_=R(),B_=fe(),Rl=class extends M_{constructor(e,t,r){super(e,t,r),this.prefixes&&(this.prefixes=B_.uniq(this.prefixes.map((n=>"-ms-"===n?"-webkit-":n))))}check(e){return"text"===e.value.toLowerCase()}};Rl.names=["background-clip"],Zy.exports=Rl})),rw=v(((q4,tw)=>{l();var F_=R(),N_=["none","underline","overline","line-through","blink","inherit","initial","unset"],Ml=class extends F_{check(e){return e.value.split(/\s+/).some((t=>!N_.includes(t)))}};Ml.names=["text-decoration"],tw.exports=Ml})),sw=v(((R4,nw)=>{l();var iw=he(),L_=R(),tr=class extends L_{prefixed(e,t){let r;return[r,t]=iw(t),2009===r?t+"box-pack":2012===r?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let r=iw(t)[0];if(2009===r||2012===r){let n=tr.oldValues[e.value]||e.value;if(e.value=n,2009!==r||"distribute"!==n)return super.set(e,t)}else if("final"===r)return super.set(e,t)}};tr.names=["justify-content","flex-pack","box-pack"],tr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"},nw.exports=tr})),ow=v(((M4,aw)=>{l();var $_=R(),Bl=class extends $_{set(e,t){let r=e.value.toLowerCase();return"-webkit-"===t&&!r.includes(" ")&&"contain"!==r&&"cover"!==r&&(e.value=e.value+" "+e.value),super.set(e,t)}};Bl.names=["background-size"],aw.exports=Bl})),uw=v(((B4,lw)=>{l();var j_=R(),Fl=ht(),Nl=class extends j_{insert(e,t,r){if("-ms-"!==t)return super.insert(e,t,r);let n=Fl.parse(e),[a,s]=Fl.translate(n,0,1);n[0]&&n[0].includes("span")&&(s=n[0].join("").replace(/\D/g,"")),[[e.prop,a],[`${e.prop}-span`,s]].forEach((([u,c])=>{Fl.insertDecl(e,u,c)}))}};Nl.names=["grid-row","grid-column"],lw.exports=Nl})),pw=v(((F4,cw)=>{l();var z_=R(),{prefixTrackProp:fw,prefixTrackValue:V_,autoplaceGridItems:U_,getGridGap:W_,inheritGridGap:G_}=ht(),H_=il(),Ll=class extends z_{prefixed(e,t){return"-ms-"===t?fw({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let{parent:a,prop:s,value:o}=e,u=s.includes("rows"),c=s.includes("columns"),f=a.some((k=>"grid-template"===k.prop||"grid-template-areas"===k.prop));if(f&&u)return!1;let d=new H_({options:{}}),p=d.gridStatus(a,n),m=W_(e);m=G_(e,m)||m;let w=u?m.row:m.column;("no-autoplace"===p||!0===p)&&!f&&(w=null);let x=V_({value:o,gap:w});e.cloneBefore({prop:fw({prop:s,prefix:t}),value:x});let y=a.nodes.find((k=>"grid-auto-flow"===k.prop)),b="row";if(y&&!d.disabled(y,n)&&(b=y.value.trim()),"autoplace"===p){let k=a.nodes.find((_=>"grid-template-rows"===_.prop));if(!k&&f)return;if(!k&&!f)return void e.warn(n,"Autoplacement does not work without grid-template-rows property");!a.nodes.find((_=>"grid-template-columns"===_.prop))&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&U_(e,n,m,b)}}};Ll.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"],cw.exports=Ll})),hw=v(((N4,dw)=>{l();var Y_=R(),$l=class extends Y_{check(e){return!e.value.includes("flex-")&&"baseline"!==e.value}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};$l.names=["grid-column-align"],dw.exports=$l})),gw=v(((L4,mw)=>{l();var Q_=R(),jl=class extends Q_{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return"auto"===e.value?e.value="chained":("none"===e.value||"contain"===e.value)&&(e.value="none"),super.set(e,t)}};jl.names=["overscroll-behavior","scroll-chaining"],mw.exports=jl})),bw=v((($4,ww)=>{l();var J_=R(),{parseGridAreas:X_,warnMissedAreas:K_,prefixTrackProp:Z_,prefixTrackValue:yw,getGridGap:e5,warnGridGap:t5,inheritGridGap:r5}=ht();var zl=class extends J_{insert(e,t,r,n){if("-ms-"!==t)return super.insert(e,t,r);let a=!1,s=!1,o=e.parent,u=e5(e);u=r5(e,u)||u,o.walkDecls(/-ms-grid-rows/,(d=>d.remove())),o.walkDecls(/grid-template-(rows|columns)/,(d=>{if("grid-template-rows"===d.prop){s=!0;let{prop:p,value:m}=d;d.cloneBefore({prop:Z_({prop:p,prefix:t}),value:yw({value:m,gap:u.row})})}else a=!0}));let c=e.value.trim().slice(1,-1).split(/["']\s*["']?/g);a&&!s&&u.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:yw({value:`repeat(${c.length}, auto)`,gap:u.row}),raws:{}}),t5({gap:u,hasColumns:a,decl:e,result:n});let f=X_({rows:c,gap:u});return K_(f,e,n),e}};zl.names=["grid-template-areas"],ww.exports=zl})),xw=v(((j4,vw)=>{l();var n5=R(),Vl=class extends n5{set(e,t){return"-webkit-"===t&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Vl.names=["text-emphasis-position"],vw.exports=Vl})),Sw=v(((z4,kw)=>{l();var s5=R(),Ul=class extends s5{set(e,t){return"text-decoration-skip-ink"===e.prop&&"auto"===e.value?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Ul.names=["text-decoration-skip-ink","text-decoration-skip"],kw.exports=Ul})),Tw=v(((V4,Ew)=>{function Cw(i,e,t){var r=e-i;return((t-i)%r+r)%r+i}function Aw(i,e,t){return Math.max(i,Math.min(e,t))}function _w(i,e,t,r,n){if(!Wl(i,e,t,r,n))throw new Error(t+" is outside of range ["+i+","+e+")");return t}function Wl(i,e,t,r,n){return!(te||n&&t===e||r&&t===i)}function Ow(i,e,t,r){return(t?"(":"[")+i+","+e+(r?")":"]")}l(),Ew.exports={wrap:Cw,limit:Aw,validate:_w,test:Wl,curry:function(i,e,t,r){var n=Ow.bind(null,i,e,t,r);return{wrap:Cw.bind(null,i,e),limit:Aw.bind(null,i,e),validate:function(a){return _w(i,e,a,t,r)},test:function(a){return Wl(i,e,a,t,r)},toString:n,name:n}},name:Ow}})),Iw=v(((U4,Dw)=>{l();var Gl=Gn(),o5=Tw(),l5=Gt(),u5=ke(),f5=fe(),Pw=/top|left|right|bottom/gi,Qe=class extends u5{replace(e,t){let r=Gl(e);for(let n of r.nodes)if("function"===n.type&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),"-webkit- old"===t){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return r.toString()}replaceFirst(e,...t){return t.map((n=>" "===n?{type:"space",value:n}:{type:"word",value:n})).concat(e.slice(1))}normalizeUnit(e,t){return parseFloat(e)/t*360+"deg"}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=o5.wrap(0,360,t),e[0].value=`${t}deg`}return"0deg"===e[0].value?e=this.replaceFirst(e,"to"," ","top"):"90deg"===e[0].value?e=this.replaceFirst(e,"to"," ","right"):"180deg"===e[0].value?e=this.replaceFirst(e,"to"," ","bottom"):"270deg"===e[0].value&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if("to"===e[0].value||(Pw.lastIndex=0,!Pw.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&("to"===e[0].value?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if("div"===t.type)break;"word"===t.type&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let n,a,s,o,u,c,t=[],r=[];for(o=0;o{l();var c5=Gt(),p5=ke();function qw(i){return new RegExp(`(^|[\\s,(])(${i}($|[\\s),]))`,"gi")}var Hl=class extends p5{regexp(){return this.regexpCache||(this.regexpCache=qw(this.name)),this.regexpCache}isStretch(){return"stretch"===this.name||"fill"===this.name||"fill-available"===this.name}replace(e,t){return"-moz-"===t&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):"-webkit-"===t&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&("-moz-"===e?t="-moz-available":"-webkit-"===e&&(t="-webkit-fill-available")),new c5(this.name,t,t,qw(t))}add(e,t){if(!e.prop.includes("grid")||"-webkit-"===t)return super.add(e,t)}};Hl.names=["max-content","min-content","fit-content","fill","fill-available","stretch"],Rw.exports=Hl})),Nw=v(((G4,Fw)=>{l();var Bw=Gt(),d5=ke(),Yl=class extends d5{replace(e,t){return"-webkit-"===t?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):"-moz-"===t?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return"-webkit-"===e?new Bw(this.name,"-webkit-optimize-contrast"):"-moz-"===e?new Bw(this.name,"-moz-crisp-edges"):super.old(e)}};Yl.names=["pixelated"],Fw.exports=Yl})),$w=v(((H4,Lw)=>{l();var h5=ke(),Ql=class extends h5{replace(e,t){let r=super.replace(e,t);return"-webkit-"===t&&(r=r.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),r}};Ql.names=["image-set"],Lw.exports=Ql})),zw=v(((Y4,jw)=>{l();var m5=ge().list,g5=ke(),Jl=class extends g5{replace(e,t){return m5.space(e).map((r=>{if(r.slice(0,+this.name.length+1)!==this.name+"(")return r;let n=r.lastIndexOf(")"),a=r.slice(n+1),s=r.slice(this.name.length+1,n);if("-webkit-"===t){let o=s.match(/\d*.?\d+%?/);o?(s=s.slice(o[0].length).trim(),s+=`, ${o[0]}`):s+=", 0.5"}return t+this.name+"("+s+")"+a})).join(" ")}};Jl.names=["cross-fade"],jw.exports=Jl})),Uw=v(((Q4,Vw)=>{l();var y5=he(),w5=Gt(),b5=ke(),Xl=class extends b5{constructor(e,t){super(e,t),"display-flex"===e&&(this.name="flex")}check(e){return"display"===e.prop&&e.value===this.name}prefixed(e){let t,r;return[t,e]=y5(e),2009===t?r="flex"===this.name?"box":"inline-box":2012===t?r="flex"===this.name?"flexbox":"inline-flexbox":"final"===t&&(r=this.name),e+r}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(t)return new w5(this.name,t)}};Xl.names=["display-flex","inline-flex"],Vw.exports=Xl})),Gw=v(((J4,Ww)=>{l();var v5=ke(),Kl=class extends v5{constructor(e,t){super(e,t),"display-grid"===e&&(this.name="grid")}check(e){return"display"===e.prop&&e.value===this.name}};Kl.names=["display-grid","inline-grid"],Ww.exports=Kl})),Yw=v(((X4,Hw)=>{l();var x5=ke(),Zl=class extends x5{constructor(e,t){super(e,t),"filter-function"===e&&(this.name="filter")}};Zl.names=["filter","filter-function"],Hw.exports=Zl})),Kw=v(((K4,Xw)=>{l();var Qw=ii(),M=R(),Jw=Dm(),k5=Qm(),S5=il(),C5=hg(),eu=pt(),rr=Ht(),A5=kg(),Le=ke(),ir=fe(),_5=Cg(),O5=_g(),E5=Eg(),T5=Pg(),P5=Mg(),D5=Ng(),I5=$g(),q5=zg(),R5=Ug(),M5=Gg(),B5=Yg(),F5=Jg(),N5=Kg(),L5=ey(),$5=ry(),j5=sy(),z5=oy(),V5=fy(),U5=py(),W5=hy(),G5=yy(),H5=by(),Y5=ky(),Q5=Cy(),J5=_y(),X5=Ey(),K5=Py(),Z5=qy(),eO=My(),tO=Fy(),rO=Ly(),iO=jy(),nO=Vy(),sO=Wy(),aO=Yy(),oO=Jy(),lO=Ky(),uO=ew(),fO=rw(),cO=sw(),pO=ow(),dO=uw(),hO=pw(),mO=hw(),gO=gw(),yO=bw(),wO=xw(),bO=Sw(),vO=Iw(),xO=Mw(),kO=Nw(),SO=$w(),CO=zw(),AO=Uw(),_O=Gw(),OO=Yw();rr.hack(_5),rr.hack(O5),rr.hack(E5),rr.hack(T5),M.hack(P5),M.hack(D5),M.hack(I5),M.hack(q5),M.hack(R5),M.hack(M5),M.hack(B5),M.hack(F5),M.hack(N5),M.hack(L5),M.hack($5),M.hack(j5),M.hack(z5),M.hack(V5),M.hack(U5),M.hack(W5),M.hack(G5),M.hack(H5),M.hack(Y5),M.hack(Q5),M.hack(J5),M.hack(X5),M.hack(K5),M.hack(Z5),M.hack(eO),M.hack(tO),M.hack(rO),M.hack(iO),M.hack(nO),M.hack(sO),M.hack(aO),M.hack(oO),M.hack(lO),M.hack(uO),M.hack(fO),M.hack(cO),M.hack(pO),M.hack(dO),M.hack(hO),M.hack(mO),M.hack(gO),M.hack(yO),M.hack(wO),M.hack(bO),Le.hack(vO),Le.hack(xO),Le.hack(kO),Le.hack(SO),Le.hack(CO),Le.hack(AO),Le.hack(_O),Le.hack(OO);var tu=new Map,si=class{constructor(e,t,r={}){this.data=e,this.browsers=t,this.options=r,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new k5(this),this.processor=new S5(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(!this.browsers.selected.length)return this;{let e=new eu(this.browsers.data,[]);this.cleanerCache=new si(this.data,e,this.options)}return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let r in e){let n=e[r],a=n.browsers.map((u=>{let c=u.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}})),s=a.filter((u=>u.note)).map((u=>`${this.browsers.prefix(u.browser)} ${u.note}`));s=ir.uniq(s),a=a.filter((u=>this.browsers.isSelected(u.browser))).map((u=>{let c=this.browsers.prefix(u.browser);return u.note?`${c} ${u.note}`:c})),a=this.sort(ir.uniq(a)),"no-2009"===this.options.flexbox&&(a=a.filter((u=>!u.includes("2009"))));let o=n.browsers.map((u=>this.browsers.prefix(u)));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(s),o=ir.uniq(o),a.length?(t.add[r]=a,a.length!a.includes(u))))):t.remove[r]=o}return t}sort(e){return e.sort(((t,r)=>{let n=ir.removeNote(t).length,a=ir.removeNote(r).length;return n===a?r.length-t.length:a-n}))}preprocess(e){let t={selectors:[],"@supports":new C5(si,this)};for(let n in e.add){let a=e.add[n];if("@keyframes"===n||"@viewport"===n)t[n]=new A5(n,a,this);else if("@resolution"===n)t[n]=new Jw(n,a,this);else if(this.data[n].selector)t.selectors.push(rr.load(n,a,this));else{let s=this.data[n].props;if(s){let o=Le.load(n,a,this);for(let u of s)t[u]||(t[u]={values:[]}),t[u].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=M.load(n,a,this),t[n].values=o}}}let r={selectors:[]};for(let n in e.remove){let a=e.remove[n];if(this.data[n].selector){let s=rr.load(n,a);for(let o of a)r.selectors.push(s.old(o))}else if("@keyframes"===n||"@viewport"===n)for(let s of a){r[`@${s}${n.slice(1)}`]={remove:!0}}else if("@resolution"===n)r[n]=new Jw(n,a,this);else{let s=this.data[n].props;if(s){let o=Le.load(n,[],this);for(let u of a){let c=o.old(u);if(c)for(let f of s)r[f]||(r[f]={}),r[f].values||(r[f].values=[]),r[f].values.push(c)}}else for(let o of a){let u=this.decl(n).old(n,o);if("align-self"===n){let c=t[n]&&t[n].prefixes;if(c){if("-webkit- 2009"===o&&c.includes("-webkit-"))continue;if("-webkit-"===o&&c.includes("-webkit- 2009"))continue}}for(let c of u)r[c]||(r[c]={}),r[c].remove=!0}}}return[t,r]}decl(e){return tu.has(e)||tu.set(e,M.load(e)),tu.get(e)}unprefixed(e){let t=this.normalize(Qw.unprefixed(e));return"flex-direction"===t&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=Qw.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let r=this[e],n=r["*"]&&r["*"].values,a=r[t]&&r[t].values;return n&&a?ir.uniq(n.concat(a)):n||a||[]}group(e){let t=e.parent,r=t.index(e),{length:n}=t.nodes,a=this.unprefixed(e.prop),s=(o,u)=>{for(r+=o;r>=0&&rs(-1,o),down:o=>s(1,o)}}};Xw.exports=si})),eb=v(((Z4,Zw)=>{l(),Zw.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}})),rb=v(((eq,tb)=>{l(),tb.exports={}})),ab=v(((tq,sb)=>{l();var EO=Wo(),{agents:TO}=($n(),Ln),ru=ym(),PO=pt(),DO=Kw(),IO=eb(),qO=rb(),ib={browsers:TO,prefixes:IO},nb="\n Replace Autoprefixer `browsers` option to Browserslist config.\n Use `browserslist` key in `package.json` or `.browserslistrc` file.\n\n Using `browsers` option can cause errors. Browserslist config can\n be used for Babel, Autoprefixer, postcss-normalize and other tools.\n\n If you really need to use option, rename it to `overrideBrowserslist`.\n\n Learn more at:\n https://github.com/browserslist/browserslist#readme\n https://twitter.com/browserslist\n\n";var iu=new Map;function nr(...i){let e;if(1===i.length&&function(i){return"[object Object]"===Object.prototype.toString.apply(i)}(i[0])?(e=i[0],i=void 0):0===i.length||1===i.length&&!i[0]?i=void 0:i.length<=2&&(Array.isArray(i[0])||!i[0])?(e=i[1],i=i[0]):"object"==typeof i[i.length-1]&&(e=i.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?i=e.overrideBrowserslist:e.browsers&&("undefined"!=typeof console&&console.warn&&(ru.red?console.warn(ru.red(nb.replace(/`[^`]+`/g,(n=>ru.yellow(n.slice(1,-1)))))):console.warn(nb)),i=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function r(n){let a=ib,s=new PO(a.browsers,i,n,t),o=s.selected.join(", ")+JSON.stringify(e);return iu.has(o)||iu.set(o,new DO(a.prefixes,s,e)),iu.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let a=r({from:n.opts.from,env:e.env});return{OnceExit(s){(function(i,e){0!==e.browsers.selected.length&&(e.add.selectors.length>0||Object.keys(e.add).length>2||i.warn("Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore.\nCheck your Browserslist config to be sure that your targets are set up correctly.\n\n Learn more at:\n https://github.com/postcss/autoprefixer#readme\n https://github.com/browserslist/browserslist#readme\n\n"))})(n,a),!1!==e.remove&&a.processor.remove(s,n),!1!==e.add&&a.processor.add(s,n)}}},info:n=>((n=n||{}).from=n.from||h.cwd(),qO(r(n))),options:e,browsers:i}}sb.exports=nr,nr.postcss=!0,nr.data=ib,nr.defaults=EO.defaults,nr.info=()=>nr().info()})),ob={};Ae(ob,{default:()=>BO});var BO,lb=C((()=>{l(),BO=[]})),fb={};Ae(fb,{default:()=>FO});var ub,FO,cb=C((()=>{l(),hi(),ub=K(bi()),FO=Ze(ub.default.theme)})),db={};Ae(db,{default:()=>NO});var pb,NO,hb=C((()=>{l(),hi(),pb=K(bi()),NO=Ze(pb.default)}));l();var LO=Je(mm()),$O=Je(ge()),jO=Je(ab()),zO=Je((lb(),ob)),VO=Je((cb(),fb)),UO=Je((hb(),db)),WO=Je((Zn(),ku)),GO=Je((wo(),yo)),HO=Je((hs(),tf));function Je(i){return i&&i.__esModule?i:{default:i}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var xt,au,Hn="tailwind",nu="text/tailwindcss",mb="/template.html",gb=!0,yb=0,su=new Set,wb="",bb=(i=!1)=>({get:(e,t)=>i&&"config"!==t||"object"!=typeof e[t]||null===e[t]?e[t]:new Proxy(e[t],bb()),set:(e,t,r)=>(e[t]=r,(!i||"config"===t)&&ou(!0),!0)});function vb(i){au.observe(i,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}async function ou(i=!1){i&&(yb++,su.clear());let e="";for(let r of document.querySelectorAll(`style[type="${nu}"]`))e+=r.textContent;let t=new Set;for(let r of document.querySelectorAll("[class]"))for(let n of r.classList)su.has(n)||t.add(n);if(document.body&&(gb||t.size>0||e!==wb||!xt||!xt.isConnected)){for(let n of t)su.add(n);gb=!1,wb=e,self[mb]=Array.from(t).join(" ");let{css:r}=await(0,$O.default)([(0,LO.default)({...window[Hn].config,_hash:yb,content:[mb],plugins:[...zO.default,...Array.isArray(window[Hn].config.plugins)?window[Hn].config.plugins:[]]}),(0,jO.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!xt||!xt.isConnected)&&(xt=document.createElement("style"),document.head.append(xt)),xt.textContent=r}}window[Hn]=new Proxy({config:{},defaultTheme:VO.default,defaultConfig:UO.default,colors:WO.default,plugin:GO.default,resolveConfig:HO.default},bb(!0)),new MutationObserver((async i=>{let e=!1;if(!au){au=new MutationObserver((async()=>await ou(!0)));for(let t of document.querySelectorAll(`style[type="${nu}"]`))vb(t)}for(let t of i)for(let r of t.addedNodes)1===r.nodeType&&"STYLE"===r.tagName&&r.getAttribute("type")===nu&&(vb(r),e=!0);await ou(e)})).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0})})(); /*! https://mths.be/cssesc v3.0.0 by @mathias */ \ No newline at end of file From cf969adf373a7bfee7a19b46f8a5f278c6ff53a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Predrag=20Stojadinovi=C4=87?= Date: Thu, 16 May 2024 19:46:18 +0200 Subject: [PATCH 08/55] 1362 custom display confluence url (#1423) * chore: confluence data connector can now handle custom urls, in addition to default {subdomain}.atlassian.net ones * chore: formatting as per yarn lint * chore: adding /display/ url matching to confluence data connector --- collector/utils/extensions/Confluence/index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/collector/utils/extensions/Confluence/index.js b/collector/utils/extensions/Confluence/index.js index da918b2d..ff91773c 100644 --- a/collector/utils/extensions/Confluence/index.js +++ b/collector/utils/extensions/Confluence/index.js @@ -24,7 +24,14 @@ function validSpaceUrl(spaceUrl = "") { "https\\://(:subdomain.):domain.:tld/wiki/spaces/(:spaceKey)/*" ); const customMatch = customPattern.match(spaceUrl); - if (customMatch) { + + // Custom "display" Confluence URL match + const customDisplayPattern = new UrlPattern( + "https\\://(:subdomain.):domain.:tld/display/(:spaceKey)/*" + ); + const customDisplayMatch = customDisplayPattern.match(spaceUrl); + + if (customMatch || customDisplayMatch) { customMatch.customDomain = (customMatch.subdomain ? `${customMatch.subdomain}.` : "") + // `${customMatch.domain}.${customMatch.tld}`; From 87b41a60e9a39e9273bd810ad12f8a394dd1781e Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 16 May 2024 11:01:34 -0700 Subject: [PATCH 09/55] refactor spaceKey url pattern for custom domains --- .../utils/extensions/Confluence/index.js | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/collector/utils/extensions/Confluence/index.js b/collector/utils/extensions/Confluence/index.js index ff91773c..b18ae314 100644 --- a/collector/utils/extensions/Confluence/index.js +++ b/collector/utils/extensions/Confluence/index.js @@ -19,19 +19,17 @@ function validSpaceUrl(spaceUrl = "") { return { valid: true, result: atlassianMatch }; } - // Custom Confluence URL match - const customPattern = new UrlPattern( - "https\\://(:subdomain.):domain.:tld/wiki/spaces/(:spaceKey)/*" - ); - const customMatch = customPattern.match(spaceUrl); + let customMatch = null; + [ + "https\\://(:subdomain.):domain.:tld/wiki/spaces/(:spaceKey)/*", // Custom Confluence space + "https\\://(:subdomain.):domain.:tld/display/(:spaceKey)/*", // Custom Confluence space + Human-readable space tag. + ].forEach((matchPattern) => { + if (!!customMatch) return; + const pattern = new UrlPattern(matchPattern); + customMatch = pattern.match(spaceUrl); + }); - // Custom "display" Confluence URL match - const customDisplayPattern = new UrlPattern( - "https\\://(:subdomain.):domain.:tld/display/(:spaceKey)/*" - ); - const customDisplayMatch = customDisplayPattern.match(spaceUrl); - - if (customMatch || customDisplayMatch) { + if (customMatch) { customMatch.customDomain = (customMatch.subdomain ? `${customMatch.subdomain}.` : "") + // `${customMatch.domain}.${customMatch.tld}`; From 381bdf0b61ff2a2a2096d7903f934a37eba7ea34 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 16 May 2024 11:17:33 -0700 Subject: [PATCH 10/55] [FIX] Improve readability for larger messages entered into chat input (#1410) * increase max height of chat input for larger messages * allow resize of input on mobile up to 50vh * remove duplicate css rule --------- Co-authored-by: Timothy Carambat --- .../WorkspaceChat/ChatContainer/PromptInput/index.jsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx index df08bcc7..b67f5492 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx @@ -3,7 +3,6 @@ import SlashCommandsButton, { SlashCommands, useSlashCommands, } from "./SlashCommands"; -import { isMobile } from "react-device-detect"; import debounce from "lodash.debounce"; import { PaperPlaneRight } from "@phosphor-icons/react"; import StopGenerationButton from "./StopGenerationButton"; @@ -83,7 +82,6 @@ export default function PromptInput({ }; const adjustTextArea = (event) => { - if (isMobile) return false; const element = event.target; element.style.height = "auto"; element.style.height = `${element.scrollHeight}px`; @@ -130,7 +128,7 @@ export default function PromptInput({ adjustTextArea(e); }} value={promptInput} - className="cursor-text max-h-[100px] md:min-h-[40px] mx-2 md:mx-0 py-2 w-full text-[16px] md:text-md text-white bg-transparent placeholder:text-white/60 resize-none active:outline-none focus:outline-none flex-grow" + className="cursor-text max-h-[50vh] md:max-h-[350px] md:min-h-[40px] mx-2 md:mx-0 py-2 w-full text-[16px] md:text-md text-white bg-transparent placeholder:text-white/60 resize-none active:outline-none focus:outline-none flex-grow" placeholder={"Send a message"} /> {buttonDisabled ? ( From 7c6c272051fa05f2dce6ff48ccad3445cefcd7b2 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 16 May 2024 12:56:19 -0700 Subject: [PATCH 11/55] add logging on more api endpoints for exceptions --- server/endpoints/api/workspace/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/endpoints/api/workspace/index.js b/server/endpoints/api/workspace/index.js index 9dd3fce7..e7ea17d0 100644 --- a/server/endpoints/api/workspace/index.js +++ b/server/endpoints/api/workspace/index.js @@ -533,6 +533,7 @@ function apiWorkspaceEndpoints(app) { }); response.status(200).json({ ...result }); } catch (e) { + console.log(e.message, e); response.status(500).json({ id: uuidv4(), type: "abort", @@ -655,7 +656,7 @@ function apiWorkspaceEndpoints(app) { }); response.end(); } catch (e) { - console.error(e); + console.log(e.message, e); writeResponseChunk(response, { id: uuidv4(), type: "abort", From 826ef00da30738c458772ae93f8d4d7f10b9231c Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 16 May 2024 13:56:28 -0700 Subject: [PATCH 12/55] [FEAT] LiteLLM provider support (#1424) * litellm LLM provider support * fix lint error * change import orders fix issue with model retrieval --------- Co-authored-by: Timothy Carambat --- README.md | 1 + docker/.env.example | 6 + .../LLMSelection/LiteLLMOptions/index.jsx | 148 +++++++++++++++ frontend/src/media/llmprovider/litellm.png | Bin 0 -> 50535 bytes .../GeneralSettings/LLMPreference/index.jsx | 14 +- .../Steps/DataHandling/index.jsx | 9 + .../Steps/LLMPreference/index.jsx | 14 +- server/.env.example | 6 + server/models/systemSettings.js | 6 + server/utils/AiProviders/liteLLM/index.js | 178 ++++++++++++++++++ server/utils/helpers/customModels.js | 22 +++ server/utils/helpers/index.js | 3 + server/utils/helpers/updateENV.js | 19 ++ 13 files changed, 422 insertions(+), 4 deletions(-) create mode 100644 frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx create mode 100644 frontend/src/media/llmprovider/litellm.png create mode 100644 server/utils/AiProviders/liteLLM/index.js diff --git a/README.md b/README.md index e15f7ff6..bf50f209 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Some cool features of AnythingLLM - [Groq](https://groq.com/) - [Cohere](https://cohere.com/) - [KoboldCPP](https://github.com/LostRuins/koboldcpp) +- [LiteLLM](https://github.com/BerriAI/litellm) - [Text Generation Web UI](https://github.com/oobabooga/text-generation-webui) **Embedder models:** diff --git a/docker/.env.example b/docker/.env.example index 70059ea5..7fedf944 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -82,6 +82,12 @@ GID='1000' # GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=4096 # GENERIC_OPEN_AI_API_KEY=sk-123abc +# LLM_PROVIDER='litellm' +# LITE_LLM_MODEL_PREF='gpt-3.5-turbo' +# LITE_LLM_MODEL_TOKEN_LIMIT=4096 +# LITE_LLM_BASE_PATH='http://127.0.0.1:4000' +# LITE_LLM_API_KEY='sk-123abc' + # LLM_PROVIDER='cohere' # COHERE_API_KEY= # COHERE_MODEL_PREF='command-r' diff --git a/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx b/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx new file mode 100644 index 00000000..6199ba26 --- /dev/null +++ b/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx @@ -0,0 +1,148 @@ +import { useEffect, useState } from "react"; +import System from "@/models/system"; + +export default function LiteLLMOptions({ settings }) { + const [basePathValue, setBasePathValue] = useState(settings?.LiteLLMBasePath); + const [basePath, setBasePath] = useState(settings?.LiteLLMBasePath); + const [apiKeyValue, setApiKeyValue] = useState(settings?.LiteLLMAPIKey); + const [apiKey, setApiKey] = useState(settings?.LiteLLMAPIKey); + + return ( +
+
+
+ + setBasePathValue(e.target.value)} + onBlur={() => setBasePath(basePathValue)} + /> +
+ +
+ + e.target.blur()} + defaultValue={settings?.LiteLLMTokenLimit} + required={true} + autoComplete="off" + /> +
+
+
+
+
+ +
+ setApiKeyValue(e.target.value)} + onBlur={() => setApiKey(apiKeyValue)} + /> +
+
+
+ ); +} + +function LiteLLMModelSelection({ settings, basePath = null, apiKey = null }) { + const [customModels, setCustomModels] = useState([]); + const [loading, setLoading] = useState(true); + + useEffect(() => { + async function findCustomModels() { + if (!basePath) { + setCustomModels([]); + setLoading(false); + return; + } + setLoading(true); + const { models } = await System.customModels( + "litellm", + typeof apiKey === "boolean" ? null : apiKey, + basePath + ); + setCustomModels(models || []); + setLoading(false); + } + findCustomModels(); + }, [basePath, apiKey]); + + if (loading || customModels.length == 0) { + return ( +
+ + +
+ ); + } + + return ( +
+ + +
+ ); +} diff --git a/frontend/src/media/llmprovider/litellm.png b/frontend/src/media/llmprovider/litellm.png new file mode 100644 index 0000000000000000000000000000000000000000..da4faf5b5ca6c812a73e3c1a74d93ea6f6afa682 GIT binary patch literal 50535 zcmV(?K-a&CP)BzU|Nh>en6Ouarrt*5jL1zc`V zRZlnE&hY0RY6sQH_@8x%)Vr(GZ&!GJo&Kk;==?quQ1SFeowR!2h_p;Bh}iYRDlXc7 z&wd80NP#@b&N5g}g0cLeA6>)Gyfq}dqV?oxS7%qDxIDGj*WWz9iuR#4mrt*r&FAS4 zQT$lMmwT-b6ObyxXn&qwUp{j>*VDtUgU)}gUGLw_;n%xCSXOv@;WYK80NUGaFc8rZ z+NiLI$TF@1s)DkNeqHQD&b}>8Rp`^Ou7`f4s!p%}sbjg+^*Q2tB3UjN^yw2PnQ0=0 z=Rc|IOQu2AMS&+lt;$spS2>VXB2L1gP<7IBj{1BNCI&ncyZQ-d7rlIIl~`%RBI}EP zONXx-XS{Y1*Fv)Le;KR{|1(7GwM84(|}?Yqp7PZfA!ERdTf>ua24FM zrN7MohwA#@8fAR{8R~lqXR#^O7@V}usvb>Uqb~m!H8Isyw)7->3iWQP2EtV)ltFc{{Y<-tbDz;uKuETn|y1xn8Y8dMr z^B|t44&PfuHabnJkj`*2ks}HX`c|dhAt5>UeP z2}O8PY#$!-{>8*2VX&R2~3(|ZkeKH7t3sQA1SSJ94@0$)?mXO^#ty9K} z@jxYq=n7yGnMEC;L-GdO)eI%!viR4D!}namKeamFS8u0T(~~G7u84^2WiplWwaRa!7OH9KGutf~yG3jH4{Wgo;nYZ70V6 z4xRtxtFBMZ-)QQ?t)9I}wEpz$tdh6RH0lWrs=g;N`sBo|j)I=A4O}I5^;Hq|OeHpZ zCkp~Rjq7svCuN3br-Kjf?XUCj=hIuqLe6FBd_bi|5}|rZB=x_y{XTOV z`mpOGbk3VwSfN<`;-a{_!_BE|@IlYNSRe9)(Cs_s52CHKHJ;I2PCP-Z|Bm_lU-s}H zPcl9!d1$`$qO_|5QXAYl#G<6?vf|@h-W~Su9v+LNZSDXhP#3(5EkgPf8~hMK{8e?*(W=StTuFTpWBV(XwVyPFc!DFVUuanmwKcjdO+xZOF3shBe|U3ufAjcQ zhn%qQXbRY22;P%(RR^-_|FFRFnQl3Gdn<@J*+5w|0qO@*)NbktP&Ku(WMp(*R39yZ z(=4M!RV-eBsPDbCMyD22+4N=$e4t_rE6`&5P8ef31Ag#JdQ!B1wHDFK>ZpGZ3OLyl zd5A%^GU8n^nW1E%(*^T5TIDeh_Lp zx4`cQLf;SC+axZ@mNnuJ*d`vGw&Wl_;iwe?toT-8ClAxjgQ#E_m`IW=K=(to%_ z{1)sb4RslcT%s{2msS_+uT8yGpBh)_r5}dc1Dh2T>X&DQi8csfVUAD9)A7O}!J z+%6TqwM4HLi&{Ee>{J!{C9{k~RaM}c=xJG50W2+{-0+)ZsrnXCTJG@)z@ut2StMdk zuGBSR*R4&~1XNmZ$~+crPV4Fq;L}yhld$N5s&rN5dgh$aU$d@ihhGCft22GBm(LE% zlP`FnjxmuCiDD6$bD45dLiLV9K=Kx9&=x*5TuV=Sy{+VR;l7u|Uj(bANj@A`e1hqw zFmX|*r-;xJ`BqpHG>G64kctB(g2vQvtNX_FLB$}H9m1mOs*Ym|xq%TAOpnRp*OI|> z^LUrMAKIz$p%9axVSJwr3h2lI>AadxO0u-f$k`>r_hbqFk zN+pqq7U7n6aDdEQu^l$~LBo=!xTqOhJy%0Z9E(hyHIP?Tcq3-CAUyu*Dfp{9{0F!3 zld+}KWLI6~7CkSrfTYY?SRFb+Uz8LaxN4NNF|04eHG(q8Ai&WE`qmdq{Rgid1ThK(OCN52ie z18@`hqvGToyDA0DQV`V>6cn8qK%DO!5=*Jt$~jy^2EwchjF$ynRB5-h()_^|aFtVJ z^hs$|wfM37`qzB;vk=bHD*H*lsdZTJXK|ZEb44QBRxq2 zf-|MFMs)D~faOmGHE|&&z)IpXPs`T55h_q2A`GB`*b|fEpc9qZ%Z%k-kN4$xFVh3h zkBJjAYbj#F#oZ9bEpDFq{!+(X@S_WxE({(*0mwkboH(v(R)o}4qZweTz=_PEY#c}< zIMNd9Ty&}-E^VP=Q}?vqi6Q)j7_lxFT;jBUB&m8*-XG(H{{;_^XNlO;s|xS=B>Dsd z%>6N&SRFDn1%(cQN|u~UgX~phptHQcU<;3`(o^KUVGvS%FNC=Mn64p?mZW=Ph}mp4 zbkiI#bakepGHP~3$W!mQa~ySY^PN1tIXt{QPOs+avG9S)gqVq{7J^hHXU@Wk8R$`i z&?uMB`)8jIFTU=tJ{kRnphpPgJ5tEPxe89zPsGB_B``Ut=Dvai!=3eV$U>^i2w9*- zSAU@1a!cW_0XC5n*gPBgzlFoUpFXqWy=)<#-qVH3w1klrn%T493?LU_7W2PJz?JHB z`BE{DL1A5>)f#L*r8HJ9?gHgkBchGRR1u4cId$e2s&b2?q0Nv(k6^?Kaacyu9=YRb zoNn;p<^J{ux&1NiUr#at6;H)EgW6hE7C}ZS?l2z?^I@M4lRjR2;=cIJ6(2vvxm9pe+!}xkg%87N9Y**gQW|Y>l;sDkK)|B3)FJ z{F}(?zmJ{#7d-w%uJFB#&a%eTBuAyWWrW6#sY6=;oK|(EERvavkZ}T?g_wk%Ibo_#?fw}u2YiP0##_=xcfKr&G+f>Iv?LD?{`DF zAOP=t#s0ap69|G3^&SVjyy_)u-p{u=-QE9g`sau5Zoa+!>^IM!|Mq(GB6fsC5lM_T zn+=&&>@HA}G-6iEjaH11m_5W`QhND(Wzipp`JGjXPk3x08KETnW%8 zt9M$X%fDv<#f9aCqX`kfLWPhWEgHJC>+{;L2^XK%`Lf z4@-6uz&!cPJQtZolR^h|brV{IagEtG)r4mN>f~~se##yWR&}{t!;1gOf*BwPnTQ<} z4}0QAI=)Uf-=+JPGT%CvHoe;pZgUZ0=g5N~&m2<8i8E&?PPJsHnnzT!kh-YjE`CDb zNz1$6AK%^m({X?NEq#3%$8PAH=R6-7pqfArqDA2pB6aojBIcmB{5weX61k2TS%?(Z zR2Vw7oGTj)JHxnt^+D0|!{a%-;U^rzvrOxWh0@X<)ef3dWT};kH42x^nI*9#fvi}d zdWXhVUL(^h2}9@u;3Sz~u8C9NwgN-#*^{Sf;x` zW!uM#i~f2Do4!hwk|e4hj+$ne6Ki74)oim=-;yXNbkJ?%m8T$heEt1*FaO(jC8ur^ zY4e5O41qet2vQUU+(L%21!GcUFI79KE|52!#6_|QTYeQQ{-Ua5kw{RASwInWC$IQ# zNU9c%^^t%3F&jWXu!}aD>KuAUee5>FuxHNGl*c~hQbdbrW-VATZ-Y(iH`l!WN(ayt z&BK}Qq@~1Tg=9;ja!oBOI7O#HBm#Fbx#L~Ae^u_^q_l@fW87Si-SxJ===|UjkTVJa zClK$*R|r>BiwKH(Qm$~@fp_AW*-OXD7x7t^lJE7u{@?#9qx#*~S6v_afk=xyra4P> zCtIA>G*b1By@?x@Dm+v@*6J;^xbjkogB7v4>Mdeck!8W^Poz8k+6l_5##&|REMtGF zFFf5Koou970bK>fh|exAUOc;=-n>3M+*0RU3~3mdHRqhb1&^`92lKI8B+=4wCM{28 z1t)mY)~+S+sCf%3Vizk`vstVv!&mrS5EAAGzInNS^@sUzqpHK$*T<&cj@_n@ee@oH zrObIcK$?pb2$4Eb7S5&2xtc5jAA>YcSD4uaj92}|!{hz$|NTEn$MMoZ{N(DB;JO~M zs4zMLEi8oSp#t&XsDc5N7K;}kCG=})m{xyQnnTS9;?!{qbJbyX*rH+pr+CVeXjmAC ziwCn}5Lh_@=70WMm1C!Z(qHoMxLUY>)5I@$+6W3(FTtwWJKSxDXV+J+ZrAF>U4*Bk02q2 zvG2w%cFuY4eF(nmdvc&0a-ieAW|zomh>=3|$T2}%`XkPJ{7%f=kW>QM@5wSXkx{X&SR zC8cvlMqJ8KEd8@kan}276D6m>V#{vP(}F)8A6Gs7(#M~qCa;Gs5c-tCui&8iN1!qI z-FA3hcH6Okb$6fVoaUTTo~GoKoN6E!(FI|m=1Ri41{t5CrGNaV^`t%pTfMrGaipkI zltSqd5AXDNi+psXG5T@rcYU{U6r8gPNXvkub5*Z6??NX@P91`lwg5Cl9`AFnQ5qUJl9(krW+t-J?m zX=~$HEzaW;f2EG6)nKcVGCBq=Iz8ma8%cX8GkRAqr;pol*b#OFq*!NpCE_VL7rTz< z#4N?q1kO42QGn}e$TR0s4WaW6VuD;}1HcvNs7+jU^Lc&!@(GLg%&vE}Y zz4`v(@#Y9cq&l8Qk>k+&&33%FzS>;Gxb=Pn>H~TKO%Y30WC0*P2bj(7V{4(Ymc*{1 zL~I0c(Dwq2q#q;y_ayBv5?uXRg0-M#UDdHJ^_MLI5gm@b~zrDYCeOIAW)!PTuJPcuXS)M)f7uPagyW!e*mwvde zHWmZB_Dh=0ELzGFTV0uJY_FEgmh&Dc^hhT0-pvyps_KYd6XNV7qRi-g9TM?c{c-~kHh#;&%`DJ@;!vMRtBW^f zpw*;G9TY@y$|240ct7v&v)7BEyFwg5Lrx`x;(h16cZ8~?Nam`I66c)fIhVYW&9RCS z*8>59cMQzgGK1CoP^!Kpai+w2|L*wi4~OmU;yP}8#p!goe|+`*!}s6bzI!zt?*MYp zxwmrN;7U}P)1$n5o9}-AnnIx=U4ONC_SMB_zj^-riwk$@psKteO*I=`aS5pq38DzM z^nO#~gr}YltC+1N+)pm{2{!x$>iVS*FKfesQ}ys!M~%}`S-G}LKoA!WyM>?;Av(C) zbT6(h?)Q(!JnP{&A$p>K&N+|di3}eBb{4sJu%NB;MTTqU*}zZZwcrZEs;989y0ki@ zB!QEr8Kym_BT#nW0=YoqB!NbSpb(8(P`$sZt+*(&q?Ai8b-L=^uy85%UaLVeYr|Ty z#YxbsE3Fd|hv^Pp{r>*)>cz!o8%o?i9$x=Aee+-5{6GKkcQ>z&RL0MqeKia_6eM8~ z2NHzS{&0A>zd24f8Sg*&)#Vre@M(HXGL>h)*>snVtJYH?0c2dm^-Em;R4_)X&%7+Y z_tIl4XI@|})@WUs&Y1nUF4A9A)cl%ASbY7p1{6P}p`W5kcI|ZHfFrSrN8FCxC(p0$ zj{8GOw|9?|YV6_^1JEqhuK`!VJhgEn@&87dYfBVamL zF*qhFGv`TpmNH4n#rX^&2)VlQ890@MlXIjZ6*v{#NxjN??a_}i`{SKHyeh{lntcA|ci;c;-4AbG-t(Te?qck&H(?i`ujoJus6%CP zeb)`K?l zTPSr9jYd&#O=Yzv4f)#SC>x1&Ng`Pk?HAWy{-mPL>w-TBh(7TlmslT=wKCF{J1oVK z>%HHO!}IIQ{c)O))0|5>P6y|Vm+oTp)y1YYBxt&UaG}9?T3V24tCGhx>C+0x$ciSa z_?iEsXruzvtb8n#RkO%kbx(Cvo!7!8W&4ttU{(CirDZX*X|J49J&HkfT{tdM0lf*A z`G%GUG%w9lhY)1)$9H=B{ruA17UBQ+AHMnBzkJh&{_5g-yx48xmB-P6w{U3`&Zz7G z&}rBA*>8&;_W5T2=JD?C&D$UE`eEGk!{yhV8wZM3Q>ST-=C$g4J{3e65lOH*K-f&9 zt`!}vUJ+oeVOzRRQF9j!{mVz;?O#Z+PD0fV{3rsjSf{hgUnHZ7f^c2pu1?|L>G^KV zFRqaJ?d`*UIwqDZAmk{9x{xYDLb1pWIx=|zhpX>j>{RA;YpYvmU0$roTXiVWvL)bv ztF?iwI13f4@E6gXRUDH`;6R)fao%Gqy5}NQuyRQ$&2yTjd7g3=tW@owRMD%SshGay zsEa8B1`&@gs~6Gffk6&b-rl_27m!y!JfwT-FMH%ZZgyS2^BSr;X}u4N17R=Xs+9vT zWR~zM&>D&MOwq*Iu;nUCm-DQYQiC77Q8M8nJWz_1-N-1EP$qHENvf_me*9c%$ zahWqBjVJBM)nPJTYqbZ;C-UJheE26P1K(o_e{eJ$xp;!4r;a==7AF-r`98R-?O0(` zb+dH;>dk)2N&#bZeJ~~zIlFf+mN~0K(|Rv1u~1za0JeGsJQcB6=pGmQ+bE>gganGz z2QzZ1^C48oIdCYxLT~35O>u)BKON>NNkQ*J>_xn~E(~Kg4x}C!T_H7cvKH$Y#^Th~XBwjRgN4ox)5ELZ-90`$ z^h3OUaUF)J#Ew9*nrB3-gF;&B_S;pcl}6e4vE{doI8yCqGkI&ywILf)RsE2d^o#n5 zA9{r!!S<(@S9WsCJG7FhB@tsfCOaQT-&yQXr@6d+*dOw-R6i`yVXngCdXT4A*_uaKJsGJm1vF&5847LvT-4F+Qmuu3sVQWTPKH5aHPj3pJQ=QF2^3o=8g zDl6x?l$2AdsJ&E}rLCyVK#bj%HgbziDOZmYid6!U!!FJ9Jn>v|xAD$LAtP#a!Hu0$ zhYXIL)TtLvELu!Bh}404k6oScTtwpjhsU(%`(Gb#zdHJ1*TVoK)*BZL!66A!YeG>a zI$MPgTF(^=!#lKeQVY$abCxqO17Lae#lC~A>7Ty<(aWDn53YFYC$i3GpLyTuZ2;aN zJOBqD6}rov?x*tnI2{=eIUf#3_0ClTsNPke5Wzb^Z!a~X$&x!<{ba36TxD@S31s2g ztc>>-ueMqSGqKE!TB<;@6Q-PzoVn`+P=zmpWR=X-_Ek$)%;4pmxfHXw7A`j`f-J>H zRjRm7U#_!_#urt}MWKo>i2*U9>UU^#IC=-Z{$@g91z)W(qL@F@Xb@z9J#i9U3XE;jnw_o0O7cTU@vwXfMr=kmenOdhx@y);BRyfv5V|i%=TlG~$a9SUyAgkypH2Boh z>lZyf)L0fscu%y}Al4cjhqdovtGvhRrilqw)gP3J+|bAC%Zo2^nVG(SdwZB?oMW9C z)KIlKddyISyk}2Z6+Fed5J7|+4a-9FV);QV*0flK5F=0kaTRWOa#1N7#?XX{POK@a zmI4K;P_aq87$bcKO)9h1dq|TP!&Ajd!7LKVYUJv=-jy4JPZzVe^mR~{qTIScbIJk} zb{#Qr#=>5MuK=rlikOK7i&c|wHHup5iK@Sez3T-z`HKW@f0KUr*EijB+P(-~Pvp^& z)o-wxpWLEtZprF^tD3kvf@0n7OjhgC>gr`z4OYM8u-eQ8#6y8o`-oq*%c=j^@ZzaB zN#VVAC}$tlrASgz2&!~5nU&XU zU8@I?#$GNg4l3*mH1t(+aC+eHzxi?ZMf~D7*ZpM&#e)k7on4TH`x+^yF(8mkI(Y#F zpleNHHR73bT@6lyP#8b8yo)Wd%CZxvnVq2FXRVfjCZ4OYS>Gv-ebk`Mu8Au@D)D!RF#XF1kvh1YqhqZi8KPhf%Fh$j!M}SiIu&0 zMXZ0dNfE_V?VMzVtX80-)eeGIbL9#zg<2*>^<##*tIx?;t!mMQVr*boxoUy>5P_;d zvON;ZG0!|BlURtQs<)?pYuYwAXvVd*^|nl)qp+$b{ zn2WlKJR6VFwhzcj9eBh*wA&23&34aoo~p$_;M`#bIjRQIMsZ`{0e!G6kHu`NOi{6} z4CaM90nCJEsxo9QDKcRx2Y|_Gi9kuJPBFjAOLo;oxBMb5ap%?trs~udwX%&5noVrM zQL8y+kj#?IDrSai)UuYP=A?7d=^pY!D0dx+r#==4Q<LV&YCJ{OMjS`UVT0b!CDBham(rjqx~xtap!_L zW3mW@?Ms0zsaI7JH??Pmu3FbA%dxO8g;KSxiLosC)ir`&1O|Ak`m23oADw!SS`7;=GJ z5w-*bE4d}fz%!HyCI%sJC6T9GHOqd=IAE;4SeXS2LQyCTrC8ZSu^f5>Z>^UI3uaLc z(Qm_+Cw%km4k`L){;6vgm=Q-t>wID(tsqdld+-4J=f4ckpH=jKFyXPZ}v=O93 zDMtk^b8<$ntze;bkp_Z>|Nj!(UikNMIX+>mrD5xNI5H_DSZVMSz!nry?b#QmfkOy= z-{%AW_=k6j4=-Q8d3$#=)t_Kp+glh?EC4e?*=)n#{rb~?{NMPiTX^v+x%jN_w$b+^ zv{+tl+PHXUyHM#uZvLZXqyO^->q)AXXNsp@$!qfz|#!C@E4Wi5|$I_&p39Wt>6JuRJv5-OMl zjLcM=Pr=W=DwAqo3gc{PZ1PnIotM@_ugdvSf-DuLF)UO8d$A=ys@NIYF4k+jg$oF{ z`B)wZSko*i$;@apYenxI5lZ3dFhx98-KJEgLRLy>t^k8(u=snU>`5aoSlpF4SNB$2 znWUc0cab-v`7Q-3`g9gL4$fDRmPup|0{hqgU;oqn?c4mt>;0F%z53+q&G=>SBD4$9 zib>Qs5rGTqsY2=(ucz=INfo^>YAdqWWm}lGPYoI~vo5KYLu@KeTebyG{TYmOE&zp~ zI4Yf!ZlLk{N)&GIA0Fp9%amD#JW?UAal{a-1q*H*BSX;W86`-fdE)tar0VcPz@RKa zB4r93Q9NtOhP?~q*50W4pIjHRHMc?msji%waOoPoM=hEc*aN1Ltb|6mSU_WK-OT9BWM1)7j-OF0rZA7=~Y z#po~^JKs@70Ks{X2-2J8juW^g z<4Is4A%L@XRKJ*D;fG>$X8)Gvz(z5!iD7GRvG!h+McEoz)AD#MMCKC+xBgfaWI%Q5 zi1M=+S6_VcDY^b%e)sM4@>QDWZ1$FOHDciqx-krWH}<>1cUw2$h;;PRU3q(WyuID$ zM=QCmBSc;xD0)C*szVt9yV+T+9n2>vRb_~S;4CR?3FmrwEsNd&HdlznDC|&`igKYP zDXvyvTG5qw5iCVh%ef0QFVcBxqRP3X0I*ibma#V;~W20(_EtONa5f;E%@o}|wObub#|6Ab70;b+}Tykd3tA(=20D15g zz-baLdA9i05^Qiy6-xy+=6gxu+%k=IUeWmq&SdSiWL41Ms~Z4Sa6CX3KqtYJnKc{M)>ws_U3n5ZLdVU0wDzPBs;3XZoP0N@su+eY zbVKL{ce#P#@1Jct`Q5kfn{Qv?|kq?(fNQec0=rZHG6(^ z{myN!hG(N2Nkd9<9$DAszB1Wtjit0RDR>y+ZJX6IpM)w4$4txDI z^3LU4fj0K3zwRV}+#UDFo1-4IS|{&mbQBfbltrP0egKaQ#kxVT)&D!7;G8#;=B(qA zTeeuOLR3na3eVsQd7lX_8hc!wT)QW&5lIKKJ)!+-j} z{<$B!-6z+68!Xi*Or?tc${Jc)-TcCWb#4e@k+H=&Tv`~P5lh>Bt{WgNJnV*KTLr1E zf@ovo)Y_C4mQo>*dhbGj5V-HL_g+4~L`${4{PE%KyT^2x6e!JIVPj4)U%=@44xCDd z!`0@+=XAuB-!UX43eHCtdt@giW!5=yo>gXbRfAZIGxJl~U^^3L!_uw)P4y5V+kR73 z0eWjQV&Tu6>QeB#%gyF$^Wuva&%gR)&+~u&um9zThwmg;m(&mp*%k^5>yfo3nTwNZ zbUk@z)vqx`?}H=fkb?2Djp!(xbMcPFgA?{u{+*Z~>thuLF(}4i7e8VYsLRYmrbG=FF+I?TXsY7KN~CG=a3~-LJoVF~n}$y(Rws-QB#u zyPv0SuE?uTxk92`%0RInhTUhEyZ-7S9NzI=xh<9p(rleOQ^_fnlqAiplMoUvbXDs! zj|QHrlb^G2YcEMC!2?kRX8|cVj1@8QbWG-~@zv*_eg5}f{OaHR`udCKw}*$9$Cvz1 z?6Y$aEEP>^z1M=T{{w}2p0RL8ZU`YpAAK0((8s~K3dD`uiET${U@qufp`yfCl$4OY zgXmoBK#IcxRT!;=2rOr*-da2>VO;_N>n#;8J|Ee$pJ%-J;r`X{-^E?rQtW*s%4`jP z9obrd_g(&91j2iI5+hiP8+8Rzx<=aoICvSd_N?v?I1Zvt==? zWw&Ib2ZO0GqAF)Y=a9OJA(RGkzyI#-%QyG8$7w$wQXW#3$ilqIJ!|x17vn`7KO=-N z?Q%$6E+TT!49Aito{MnR{t;V_1-Sl?DEO$2)LPVbgthR4Uy6vlZ)Ig5B;unR#_jHE z`~0)(uYUXWi@*Q;+2_y4=UcoB!@q1Kk{l(FgG^Q_RAo0-AI`I3xq2!eH{*8Gbwe12 zI7B~q7hA@XS^&_h8p$~;p(Z4+q`{c}Qqs_A)M)t#Rb7BT7bd2F!8l>AZMsq#H;o~P zR~c@9+<)_5zV9yk;qr6XdgqE|^$WLlZ|h!0%S8Vo5Z<4PYTxIsuG=`gw~ytCk-U^@ zJ#B-e)V4#BmSVLYezHZ;^^B3D~7q)%e_VIV$zj}3h zmmk>Lj);_!#;hCSNIUPk7h}KK$)_^E&HH!L!`*(K=8~j{Py~IR~PlA9kC~X4q`{&88cBE3LIpi* zpem(U;6IfDZ1%vl!jsk#ec4hu_XIQ0m6-zMVu#<+U6C)_D2Z`8}R53sR47m`1>#$uL=opY`hs9;KZJeK`F?GMv& z+ea*}dBDrmm5r_h#E8-RV*p0hkd%bz~>BZIOo9n;Z zZC{MTi!DCuAPADgEq?i{PyYA+@iA>v?>cX#J=0m8%r6h#&wqJMg16V6cJE)>(YDaKg-TEVTV+s} zZaLI;MBxgxASK@Kj}Lbbxk78*OM3O{rX#N@ee!JFc0koy0lF>(xx7H1`@^vr!Tt zT5qZfb_Jkd%QibjqOK1es8}o`7-OQ4>Nsw`{Q8Tp|KZDLUtRi3M_YzIqZi-_e8tXSFtG8 z-ml_X+mFRmewHj2`K)drFTLy>ctUWVd~}(zF2%%JxKx*@@nQk%f>qWGsaSX4Bb1|Z z1}aW{VM95s+;yGLvu*}I_c%$%Pxl4-qk@I{QP;kuZuNZkWIRhbE!2mnP2+IYZ>?9b zaY0qBJ4Vja@idsW~(qv&?@W8bCRZ{jxSxOEr*%&&iV zdoxdoAGP!;_p{`zr4Z6~fMIaK;SeKr$bH8b-F!Dqw<+Dul9`>LZ>au`OJC3%>tj14iRo$l4>w1C$YF*9Jlu}OF!pr61et)>z^RalU znle!E&o2VGGAH3wXT_ZNt0C@w^$*wGCvF;W@7~GR7>$-6mI~?YH{^8pn z-`&5`USvobX6OrU-0o_;cz!XAn=XtmF0X#`^_O@5|9`xDllE^pBTBANaktxka{bB0 zZWqXV@}2Lhy6R&bde=E{76oTC%ilVZlQKdnCPb&gbM)2qu>C&3qUJ4r)7+2bz_WS+g@tbdc zoM(w)L>#YnzB4G>M~A8bG&maK;4bOz;@Lxdn5O-^`-2=oCZD>($K#>T-MH_EZW!am zb~_GZ+znyd`3;WSzKj=mjmOtBzbm?z`Tm&a>{tW3q3f>VCc18jL)Y~&#I7I6`7-O{ ztH=HKw~ytngxL=g2JnNwesTHY^XI$E-PQFo&V1PofB&n$dr7yi%l$;knZgjSFE5@y zzuFEXiSs`6nBz=*EV%WXLQgyXmgfh;^X1Ce|!Wk&##~P(Cg=)-rqg^ z{`cSg_~UD49s5nB0oZ-0(E6cPwzQKEUGDRo)4;)m?rgUD3UK5-y_MSe?=S<+PI zNy!3B$n z)FDsIgfR3-+E2XC(>_nL-s8J>kGKDN7UR-xpePdA~-}9kcm_uv6@Y(4y-9P6>#V} zj4^6~GE2z|!K*@iFGhc`mKUuJlh%6?EDFVTO#jIM=^xWrA4`n>QF;3}1nYhE_F=*7 zs<&h*>U;0!nrNvsLWorlSP?|g3RaI(+V79)I7Jsey}sORFVNB5ZcOu>Qh9uwzWc)~ zCx}^lahE$E`(R8_grtxd58Nd;mOf4n?yJy=FC|bY;-|3hK)&o+f{*8lC)ok&dWuKVtt#LKefi(Xp_cyMjPhAq-k^{+2k^Ca_O zPE!Jwadgiw#%Ir-q4(RapAU1M`P=lvyEm_hO9wP4xfhqa>kA*E%Mm6AllK$%soRu3 z?1SEdcyMD-^N~2I8lEUysjnQB`ssM!dB>?6d)N2WciZj)uP|;WJn-Ae?P-u<>n}FY z2kg{)FX5ki+b#~XOnNAfddT?|+82iqpN$(*&$E-#(%KsO z=!b}%gT6jAIB9K^+eqTVwQWVsKupdyKrsSH;ZmIv%UV(^sUtGE;tJ5JHuDrblTwDd z7IJoop6aqrWlm+nATB`YkOEY53v5yM@>4V{U1bYD&=Y@Bo>~pf&)wy~Kluu0^yH^4 zsg@x7S`|i(Itr?%y}!Up1)U|)u!yS)EKxej^qBILBe~0AxbFL_zC#z{1<4m*5<5-# z58wR${`Kt-(si@_TZK9xs+`V^~+l!J0QjEFp-KL}HFd{h!_viB`tfIW*lM(ywm(&ChTr;8&}lPDT=q6zH#7xV z+htqw9c}+FYrjy%OX@nA_ho-KKi*8`F>hjj88@9`WFb)JJY8Non?x5s5&NrFwVZJZ-Z|D2lS?}E?UYCOD-g@|S#JNBgoPj2S1Lz2{fqY~+ z<~%|PQhH#7obx!jUEX+%j$E@+T^NH=ow0KoiB+eRV5;6fv=pFNoes3#dew(aiFNkC zQN2hq;$W%r=P|Oi5EWxGgy1acOc<@4+cjWn5s${RXKVB(C37-Hm&FdawS-h_V1dTr z(bh%ZqZchzZsyGO2ZYdduHzt@C6$u7s&9049b`$NH*YjXa=cJwELOh+hR!|vKWYj; zE^YnDkwpDDVSI13x_a8Lc){n(*0j3%07i3Ms8)Dt{0GtqB26p%tX>%A<2*g`bXU@Y zMD0G^J^$kB#bvi0DF9GL4V%$J(3$Zd-@%)=KRg^>3VOSzG9ka7em z)WPt~#l(Ez*$dC9B*r`!*$Y2t8IVTQ9pVOP1R9G3&R&WW6?W41$AOX$*mq$Q-KHCM zajY0fZOhdnER#h5)M+6~Mh~?T#v)~5C?iFTS^=a7fwI@xrOD5o2cDRC!4j?4gLNyk z3TV}(YQuO|C2`KyF@j4yH#8=+uG^wWL)mTd*7wy)Wr2+P!`6C2$y0PO`{JDAwrw4- zBXH4mSA!pX=mSM(S0h&G<@VVQqfeCV ztkv1?-0=DCLa(pzcGF*s$5Rrq!(5Si~LzS?a{S+jWJYIo2pQnCb~bzg9eLcrRp zkDNk9&X0thvSTC`6f#P^ zi4L9Vsx=D#VVC{3yKoa7I(v&&ii`eyU()juo~oV;oh5~ERd)^36FFAvI%xg*Y|F_3 za=L3NfRr&E5ow)4D%A?A1Ixgf@mqF9)fVUyFoKsrVG|2vsaLSaL)5~+ zPJAQ{h&WB+11tDYh@918ah_71<}}T%QKi9mT)LRZS_W)IXDUPtt)*bwyu2X}Z9OF{ z;j?g!+m^LtnQ5=P=bIN_J-_^PJM22>TW?9R9j$rs>h)tb=gHTTQ`ZDIDKb56`$s1u zXg-IWMG;O!y`K^+E0QobxV2J)=H;z@Le~OlLPyS5pvjTSNW6hL%F*-Q$pOnlK0fgM zO*-6`a<6zGr_p=wk72qkZ{x%9avCoBZaZu)LfmBXa=$;`et&#?oyr4ry6J}TVz}P= zi;dq5ZW!I*6w8!SU34skt&#&nk>GtOz6i(aC1tceL7afHch=iZyi(`37n@PXAR54h zFgh9#f?;KCt@6-%t(ByjQA)L0hJ9KojZw>%p6UiBt!=j&-N!p;fhWzWRFGbselFyC z4C1G(t`zBF?^^G!EP2kw9yujt76xI$Vx2Bp?=)F@All!+Qi>E~yER?5^!8A!%K<$W zrh4a`z_IvDonCx)@%e8*d-2(2=m}uf>Nk)DSe4vK`Op~vmsP6R>Ns19?un9)PdlzH z{^LSTsQ70Qy;h+0$8?yt;J>y`PzttR8zR<0S$0yYP77i6bHRIXUN^4n;Mnn_JKXBw zO`6{2bSLGAWkM}OpE_qvV_`ORUO~=$^J@PtJciD9ySq3JF2d3dCK!#l5I?pt;2FF!f(;VIy|M6RKd3@dKZvfDy0P!Ljh6@nVe%tDW@)Z7h5@EnJaoP)@@$10AuS&XmSK9ByB^5Dsd-3pGE7v)jL~u zZFLpS#el&jYZo=igi^NK?&_=SFMspNm%sjG_eo%PKj(YjaSIGtT7lNyi*mlflWlUr z7Gjl?k;35V+RDUUy<=_bpb9CsdiUvVsU%wo;1)l~YFaDSW*c@G4xKZLRKT}&YR zIZL8#c(&PG$1wD9vx%FFVLOB_DrT9*Wzr^9WW6Ot&@+~TPQY8(I)vu-6jnr6Z>Mt@ zuC(89=rd_X+xy057!q5|gbSlOuBHw7C~2RjL!OTnSyyZ=EnQ;G7GUY^z*XMZx}WLF z=wQ?e@6E7*;KV>))fEmt%>OTCZ^9!+6AzV5i!K^Sy>B9A?OjV3DXyJf#!}#b9oAuerMFXnXng%|HIv zUw!_Y*N0cZ9jdf*agSs~L@yWeQ|})MBMf_n4sGTq@}@ztCp)O81^~_${u7KJ=$AVZ zPygCKj#y)ld$bvb0rO~znjR5*bfkSdP@d{-%J1C!Z`S)iZIAC-d8F9V!dl70ZUkCG z=G5g|SHO_5Jn6ifG)XsV4^kfLj*{AQJjB!M`IBimF3Z*Ar#Ym=-j$~DrLn{33pho3 z$ea%pLoe7qRYdL>7UFHMde&U>lu~$+;=#Fu6QOA=?JYXCvr>iJ1U`Q6*~#9^*7Am? zkOCk@Gj)`}%?4E>!(}0OU#c|>^#2@I4x3J~HUH1nosLoFjYvjlApPv7w8*UdP>s_{IE*eDc!%X>kxT5C> zJs_1^M~Z^SUY(ea9#Ie6BW4q^mx;=u-N*B{^7vi3`?fy((DLdcEz5j5PS?pFd-3{- zM8!P4RHu(S7YX8c(He3VS8FX>*`*b)QL#@cEOUw_91e#iT%|MzN3LRS)LoTg!14-vvrDfN)Ud~$L ziJjGEzFgL(6jKs0$rymq&P=VelJ^F6B#l}@u~@5FYLS+Gt5Zs? z7O5^!qS+$W^axl zW>u_=Xp&-yEQ`y@os-<9{XL)m*dBi0wp%&Io9nCBScX5Qc`^GW*C$6o3+A<;V&B@{ z#lv|564?;&BSv~9@)g=rkNbVzTIeD57%EYkrS-Dr^}H&e&Tx9G)#TU0G<5j)`lPC5z2)|_^r3oWP8QYsq1^xx89k7DZCSsL162%~tF&DxW&~HVs>nWCqw$GcO#StXHMF92 zWlC_(xzeysLBgTO*>fa2&jh-BVn4@pbG$k%3->d`3>!c_WHKUgk0$ZP=xy3=)mX=H zrbuUJB=teFs}NW8Pu(mGS{gm2y^B9t|G*}dkEmMi(pJU41rIqTZ`w*Qo@FdZY95s2 zN|Zgdhp_$F&OgffqojIT;ykAphj>iW>{H?xJA3I^C4okvgf5}?=y>wJ1;`udEye~| zGb37v)-p9ICGWL`I1z7eQ`uCY@HucOPh)J^6XM zO5L};?o5%qcVgZ&4wGJu6PjXJs_Ugw6_TRy13wk`faY8Em3C`&n`V}tN`bjchcdBC zEVf$3uJo2`&eVz~X^%>aou>2XT=AWPg9#@GMt9d?8hP1D!AgE>WQ~WW5P}G?3K*-i z_>f{$kOHr%x^Iu$`B756efRUX-z@3WULFo%j*_E!p$iBTtQln1ZwSvBfGZj9$Rm0_ zg(OReaX4|i_K|dl1ueZZ^zov8f7T593-jqPLCxQ!Q5p@JvG=Sutaz7$+d_Nf^iGzAFmL zrI$X3G5A=bnZ0^y|+q#&Wi~dXXKCu1em1U* zrx=$M4uYd2FBEnA73J%jdqFP-@A(*og zS`Y%)6#2|To&1_cif)X2)~?Ce*~~T zY{35c&@eb_i^2eQoMrRKhWLuhu0FQ)eSZ9D+aJW$#8Y%0bFC0u@Dw_GYILDKNbjY| zo*P!{O%St`T61a0CIW#WbhsV#klAC8C6}`02d&v6$9c+HFguu*7d==~imRs33CMf}+w0|OYSQ1oyS;yZ-tX%9?yf1!vdilgbW;-#;WL7m7F~4Tfxz@~ zOK}kPaA@&ZAD*ozu79K3&h~#di!wu!%r_?zj*b6 z%&FK;zkZCNxmfhhb7ie|w$4H<=z7|QHdGR++W-e}-b|Sp8g5Uy^5b#PQzHHAlfzJL z&sKks7HM4+ow(?Fa?RIsKi`(y?;jq1*m*lH{wi`Z>-9#aXpFNBkuO)hQ*bO^G(D6p zxAWfiYSy^$eK6_jhJL;yThg~intn;!*Ym?Y$2#+*mn-iX?d}HF(QvL*OkJ}6Y>JOc zEgb3e`ug*~`~3RNjbpmIz5VtN-~aRf^{?OE{+Q%&6Q`m@1W0$JiCUN{Q6)i8GCvAw zt&v99rie$xI?@E`8dJT7d4(P{*D1GZD{c;0@#zT5=Pu0(R*VRI2y@UllzQX5*ZrKGXsKS#rFl1p!@KY9|K)%GR(AKv z-OKsKM4@%Jvv(f|01WSoPNRX%1*5~ zF*#bT?Hp5>r|EF;$Ak0k;M#n9$6D|1`g!o)9nuucpKXgup&3b`iy|o4Ia(zG`Qcz; zklXE_9LffbX;vmd5R7YUTWxzQb@US~yKxh#rGW^^W)Vc123zdenL3Fk4+VV?Av8~o zj-D8prM&sO1^v$VCeHJ5X#n@ENRtO7T!JDCEQ zv?lD12dw`q#;gR{tviLi*){Has~rTDe#!TWvUAZns zwXAuU!8Gv^W_d+A5M%+RG;)}zhpIJgVK5c&6)ktPi2k{L`~SX+3*DW6E^VC_KTqj!T3&x~b9@zVK0Ces?0UKO zE=}DeZz$^r3~NJuyXe-!={##2vAB7(!#^t z`R;bxRuKt}AOxkjwP>*1n|BadV`C)u`q;}_>YB@1Wp6Cp#dDWHFkSLq(SsD{au+IX zbJQF3gNN3-?HRNpd)G=+Axn|b8$~NAXW0uk@s728PxI`S;$-3}-{%4mFJ_-tJz+yVF`z?Ps{p#(irxZ1SRbCyCu zp%{V?w7@a;070VZ+lMl)Xtb>Wb>@|N>G$;J@n^c#HFW8Yn`v=OggqO@pL)5gr?DT* z&P%1*T1aVfN!E1!N!I%C{g2;2oZqJiEx+h)J~_Pj;`H19{OhvzH(y>IUqPiy*e)Y6 z$U#UPgRsEfjpB3|0n-O!*1vD7Czyw>4BfuqiMm9RiP}>_!V^j>)>Xy&Bm4`do|8)Dq{cry9lP~|n>(kpvR}_z)eRLSE zOUnfN*1?1sBOUsfZfain{~n@WzX)PkCZz6rkFG_jsqTG!kn??WTMXShPuOVNOGQP~ zycDh;kG^_exo4)55FoNKSqHN=*VzqeCG!01%<6rmOx zLpnDI{(g8n8EHsxH!7Jgljqu@!{PES=iNPi`Q_)o{SSY?91cJH_|t#?!ymu-=DYRr zoM?`5rl1A96lrbK2-zjDX_0BYhJ`@0yM{h4q=TPW2$%x{>}g@F_;lZP%%ct9325Z( z$+7it1XTE*y6a20af!7u={3ui?;jqv{e1rRhi|?w05o6qH!prYxzw?u-4q{oL1k`5 zn2BODjokI5*CD^8fIel$zrysx!MgbHVq6fqi(ONp&s)u#ThDbWxV=s5VX2iv4RK;k z8!V8orq;Q~;57C_QdIz9deah&VciD)r)XV*7zWBJTj?bVuG>EJePO-cYHc}}X1UON zPBF~a%kk!Lbu%Akg|(V1i|C0XMNeiI7+XjNiNn)B(LzgkmSDaZmqGr{mrNU>3{lqKFr78r_J5nK7PN|5`&*( z)DYczrslFVcbT+#80O)-nNvTR8w(zrn3bGy5VbOtEoZMdy_Z_`y2BJ&nvE%&z%Nq) zLfLaEp%i_l`X4>qwV6xwZJs#n5BYB2e;>YIw{v5eZ@!9Ya$dxDlO$%#zgoj#Og@-f z^laoz|6YCE@HC$$W1X7Rgwv8`Ut23$fswunS8@fBTSDj_m78G@pj(CBA;NkvurXfH zY+?ZPCaxQlm5uW%YYSVvqT{E_%U_*dyt?+M+S4{)xqtnaKfM3xVSRY$GQ(1lDZqM9E_+jO zYvPNJG1{#*aB7z3(3OY|cB;7)3>gV*xDdvpCJR>p5jM`C*7nvD))BN&GB20lV+_89 z*2+UI<@f*Xn?L>74=qUXKo1!Nns)*jqFhK|!i^G&Oj|V%ey2+*O)j5tnE%WhodU11gby^O~bVyhu*Kkc;&lh=y zUXrwI9$PR|a-OvSD87+vT2$3qSOgfWQ+tw?L(qT~ub~S_qI_V+u~vHMjZ33SQ!h2I zedDE_K0W%Ez8~81%D+iBE`EOfA{|fZ|NP(n+uiMBE;aEKC>_#~ISFvSk^2-w1n>2O z)o)r$?!7WL2^*9!JXC3&YZVQ@?kGYY*N|I`!J5%P+{UEnRV(nq-udWaqm~st#%T&+ zDpID3DTUVuXCdo%YRP0JQm(Ia){aPxe_=WpH350@E` z3<<)akngM)u7DSQS<>5{_e64t$LNEn;3;{I-X|!$YJESY$ibtNSxKlj?{{_^X7DVuAJoe%!mRwe|W^$*xaE>4)Kb%4(6u+I!D#8O)o z*)wlF$>Gg>^Z8A<4tv;kpAWB=Pt&Kz<6&Nw>#OUpKKu6m=d#}I`?+?BPGS!<1t|rS zM%EYJIy}L};GbSKi@Cl-(vL1`4tmmABec0YcEZ>YFHp->-|Aju@G*MObkP&Lv(}`@ zJi)n^!bHx4H`v~Pv;E8e{r&OP;l(E}+)=CI9^gZ*e`SURH3hakFm$b`(=Yd=|E9AQ zK#L}fNa5;ZCTte)&@dH+)g?=IrN5j;^Bks_rZ{0}LF}=Ch(OQ`wKFxQ zOjO9hlG4cDDEH7fb(T;$uy4{bOzfw)_z>fKSdQ1r@p@hkDJI4csZT+V@-*u?)+AhM zBeX!H#udGG8g;NkRTKsqyV>EB(W<{Z1uG(t1|*>{+r*w`{uv@@ckcuzJ0gm zy_1hi2z?%Huu{t7`ElPi(Gt$v5*Vn@`ayVXABfEx%mI=v1cUB;&?xR8qZ(Xud&t{k zlU7>cuFuf13I5bvid1aK=!4^#4~^yahx70M+jn1m{drvzwa`jyeT!^TA{YWF9%vUi zy$>W(XLe#v#`OCC_h7YNQBPx%HvAwp#+p>QqRh5$CAJA=d>KstOqCt_Q{7i z#p4p@l;$Z-F@@;#@VG|Biw`X{5#J=hmV#aJ&TDe;DG8Ncp&nUmgZ*NR(AYFd8PicV z8)h?dHeaA#H71-IYqbK00Qu_Wj`i2_O2KZXIRT=NvLIgoTHy& zC(J_k?ctnKT&dl=`*8Bj=TP65`q+{`ytv}^*vm1S$c; z`gneHtzFjt#-1=qheNGXc)<`D0lTVJQ}p8y=Cs7LDh8@r;PMTF&%&P~p zGevFAxg@nd+}EGJznfq5t9eSZ7Wi7inp+Ht7W77WG)h05mZxsk-*B*+6igD>{#F~e z6ALGqk3^wvWtElU)r=06HSnBx@`PngiEb!Rl4(>P~wLm zzBGGmwkc?fl&$NBq~8oUqmeC3NoB}eI%)G14~OaPuiw7;`t82tKdj$8^!NMT9`Dwc z-G1M0!{c4tPIT`x)4ikByDioSX}j|+CQ6g<)XKJjXf2hf`4Fa*q|;-~M#W^P`@tDS z@1ACbz(L~%M>GagNWEzxWG|ZF@9HOieY&Yswzd@zM^JEyW_7VP3cMXUl*zrZcr!rN_OvQfeko(=vxN!CQiZ_dW$lB*``3txoTzlWEnZNG<3C)mrMF>sld= zQ7}X?+hik*P#c#r zrRNwjo)nl9hs8%~u`~^-@Kq{+FJjCEpphDENy%Z}gIzo(I!yEF<<)=u`XBz`fBw%8 zywd;kzy8y=x!kwA$Nb>yEw5aC%0DeNB?(iW!XDl3Is3M{ws&87hHz5Vz*`;sLjzL^ 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 QPXGV_07*qoM6N<$f~<5rQUCw| literal 0 HcmV?d00001 diff --git a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx index 4db20123..5c4b0b2f 100644 --- a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx +++ b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx @@ -21,6 +21,7 @@ import GroqLogo from "@/media/llmprovider/groq.png"; import KoboldCPPLogo from "@/media/llmprovider/koboldcpp.png"; import TextGenWebUILogo from "@/media/llmprovider/text-generation-webui.png"; import CohereLogo from "@/media/llmprovider/cohere.png"; +import LiteLLMLogo from "@/media/llmprovider/litellm.png"; import PreLoader from "@/components/Preloader"; import OpenAiOptions from "@/components/LLMSelection/OpenAiOptions"; import GenericOpenAiOptions from "@/components/LLMSelection/GenericOpenAiOptions"; @@ -38,12 +39,13 @@ import PerplexityOptions from "@/components/LLMSelection/PerplexityOptions"; import OpenRouterOptions from "@/components/LLMSelection/OpenRouterOptions"; import GroqAiOptions from "@/components/LLMSelection/GroqAiOptions"; import CohereAiOptions from "@/components/LLMSelection/CohereAiOptions"; +import KoboldCPPOptions from "@/components/LLMSelection/KoboldCPPOptions"; +import TextGenWebUIOptions from "@/components/LLMSelection/TextGenWebUIOptions"; +import LiteLLMOptions from "@/components/LLMSelection/LiteLLMOptions"; import LLMItem from "@/components/LLMSelection/LLMItem"; import { CaretUpDown, MagnifyingGlass, X } from "@phosphor-icons/react"; import CTAButton from "@/components/lib/CTAButton"; -import KoboldCPPOptions from "@/components/LLMSelection/KoboldCPPOptions"; -import TextGenWebUIOptions from "@/components/LLMSelection/TextGenWebUIOptions"; export const AVAILABLE_LLM_PROVIDERS = [ { @@ -186,6 +188,14 @@ export const AVAILABLE_LLM_PROVIDERS = [ description: "Run Cohere's powerful Command models.", requiredConfig: ["CohereApiKey"], }, + { + name: "LiteLLM", + value: "litellm", + logo: LiteLLMLogo, + options: (settings) => , + description: "Run LiteLLM's OpenAI compatible proxy for various LLMs.", + requiredConfig: ["LiteLLMBasePath"], + }, { name: "Generic OpenAI", value: "generic-openai", diff --git a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx index 5c6b3798..b6ae8cb2 100644 --- a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx +++ b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx @@ -17,6 +17,8 @@ import OpenRouterLogo from "@/media/llmprovider/openrouter.jpeg"; import GroqLogo from "@/media/llmprovider/groq.png"; import KoboldCPPLogo from "@/media/llmprovider/koboldcpp.png"; import TextGenWebUILogo from "@/media/llmprovider/text-generation-webui.png"; +import LiteLLMLogo from "@/media/llmprovider/litellm.png"; + import CohereLogo from "@/media/llmprovider/cohere.png"; import ZillizLogo from "@/media/vectordbs/zilliz.png"; import AstraDBLogo from "@/media/vectordbs/astraDB.png"; @@ -168,6 +170,13 @@ export const LLM_SELECTION_PRIVACY = { ], logo: CohereLogo, }, + litellm: { + name: "LiteLLM", + description: [ + "Your model and chats are only accessible on the server running LiteLLM", + ], + logo: LiteLLMLogo, + }, }; export const VECTOR_DB_PRIVACY = { diff --git a/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx index 966253f4..25b46522 100644 --- a/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx +++ b/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx @@ -17,6 +17,8 @@ import OpenRouterLogo from "@/media/llmprovider/openrouter.jpeg"; import GroqLogo from "@/media/llmprovider/groq.png"; import KoboldCPPLogo from "@/media/llmprovider/koboldcpp.png"; import TextGenWebUILogo from "@/media/llmprovider/text-generation-webui.png"; +import LiteLLMLogo from "@/media/llmprovider/litellm.png"; + import CohereLogo from "@/media/llmprovider/cohere.png"; import OpenAiOptions from "@/components/LLMSelection/OpenAiOptions"; import GenericOpenAiOptions from "@/components/LLMSelection/GenericOpenAiOptions"; @@ -34,14 +36,15 @@ import PerplexityOptions from "@/components/LLMSelection/PerplexityOptions"; import OpenRouterOptions from "@/components/LLMSelection/OpenRouterOptions"; import GroqAiOptions from "@/components/LLMSelection/GroqAiOptions"; import CohereAiOptions from "@/components/LLMSelection/CohereAiOptions"; +import KoboldCPPOptions from "@/components/LLMSelection/KoboldCPPOptions"; +import TextGenWebUIOptions from "@/components/LLMSelection/TextGenWebUIOptions"; +import LiteLLMOptions from "@/components/LLMSelection/LiteLLMOptions"; import LLMItem from "@/components/LLMSelection/LLMItem"; import System from "@/models/system"; import paths from "@/utils/paths"; import showToast from "@/utils/toast"; import { useNavigate } from "react-router-dom"; -import KoboldCPPOptions from "@/components/LLMSelection/KoboldCPPOptions"; -import TextGenWebUIOptions from "@/components/LLMSelection/TextGenWebUIOptions"; const TITLE = "LLM Preference"; const DESCRIPTION = @@ -164,6 +167,13 @@ const LLMS = [ options: (settings) => , description: "Run Cohere's powerful Command models.", }, + { + name: "LiteLLM", + value: "litellm", + logo: LiteLLMLogo, + options: (settings) => , + description: "Run LiteLLM's OpenAI compatible proxy for various LLMs.", + }, { name: "Generic OpenAI", value: "generic-openai", diff --git a/server/.env.example b/server/.env.example index 5e0233b7..4be9ab75 100644 --- a/server/.env.example +++ b/server/.env.example @@ -79,6 +79,12 @@ JWT_SECRET="my-random-string-for-seeding" # Please generate random string at lea # GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=4096 # GENERIC_OPEN_AI_API_KEY=sk-123abc +# LLM_PROVIDER='litellm' +# LITE_LLM_MODEL_PREF='gpt-3.5-turbo' +# LITE_LLM_MODEL_TOKEN_LIMIT=4096 +# LITE_LLM_BASE_PATH='http://127.0.0.1:4000' +# LITE_LLM_API_KEY='sk-123abc' + # LLM_PROVIDER='cohere' # COHERE_API_KEY= # COHERE_MODEL_PREF='command-r' diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 7b4f21ee..68d1d0dd 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -408,6 +408,12 @@ const SystemSettings = { TextGenWebUITokenLimit: process.env.TEXT_GEN_WEB_UI_MODEL_TOKEN_LIMIT, TextGenWebUIAPIKey: !!process.env.TEXT_GEN_WEB_UI_API_KEY, + // LiteLLM Keys + LiteLLMModelPref: process.env.LITE_LLM_MODEL_PREF, + LiteLLMTokenLimit: process.env.LITE_LLM_MODEL_TOKEN_LIMIT, + LiteLLMBasePath: process.env.LITE_LLM_BASE_PATH, + LiteLLMApiKey: !!process.env.LITE_LLM_API_KEY, + // Generic OpenAI Keys GenericOpenAiBasePath: process.env.GENERIC_OPEN_AI_BASE_PATH, GenericOpenAiModelPref: process.env.GENERIC_OPEN_AI_MODEL_PREF, diff --git a/server/utils/AiProviders/liteLLM/index.js b/server/utils/AiProviders/liteLLM/index.js new file mode 100644 index 00000000..5973826c --- /dev/null +++ b/server/utils/AiProviders/liteLLM/index.js @@ -0,0 +1,178 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); +const { + writeResponseChunk, + clientAbortedHandler, +} = require("../../helpers/chat/responses"); + +class LiteLLM { + constructor(embedder = null, modelPreference = null) { + const { OpenAI: OpenAIApi } = require("openai"); + if (!process.env.LITE_LLM_BASE_PATH) + throw new Error( + "LiteLLM must have a valid base path to use for the api." + ); + + this.basePath = process.env.LITE_LLM_BASE_PATH; + this.openai = new OpenAIApi({ + baseURL: this.basePath, + apiKey: process.env.LITE_LLM_API_KEY ?? null, + }); + this.model = modelPreference ?? process.env.LITE_LLM_MODEL_PREF ?? null; + this.maxTokens = process.env.LITE_LLM_MODEL_TOKEN_LIMIT ?? 1024; + if (!this.model) throw new Error("LiteLLM must have a valid model set."); + this.limits = { + history: this.promptWindowLimit() * 0.15, + system: this.promptWindowLimit() * 0.15, + user: this.promptWindowLimit() * 0.7, + }; + + if (!embedder) + console.warn( + "No embedding provider defined for LiteLLM - falling back to NativeEmbedder for embedding!" + ); + this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.defaultTemp = 0.7; + this.log(`Inference API: ${this.basePath} Model: ${this.model}`); + } + + log(text, ...args) { + console.log(`\x1b[36m[${this.constructor.name}]\x1b[0m ${text}`, ...args); + } + + #appendContext(contextTexts = []) { + if (!contextTexts || !contextTexts.length) return ""; + return ( + "\nContext:\n" + + contextTexts + .map((text, i) => { + return `[CONTEXT ${i}]:\n${text}\n[END CONTEXT ${i}]\n\n`; + }) + .join("") + ); + } + + streamingEnabled() { + return "streamGetChatCompletion" in this; + } + + // Ensure the user set a value for the token limit + // and if undefined - assume 4096 window. + promptWindowLimit() { + const limit = process.env.LITE_LLM_MODEL_TOKEN_LIMIT || 4096; + if (!limit || isNaN(Number(limit))) + throw new Error("No token context limit was set."); + return Number(limit); + } + + // Short circuit since we have no idea if the model is valid or not + // in pre-flight for generic endpoints + isValidChatCompletionModel(_modelName = "") { + return true; + } + + constructPrompt({ + systemPrompt = "", + contextTexts = [], + chatHistory = [], + userPrompt = "", + }) { + const prompt = { + role: "system", + content: `${systemPrompt}${this.#appendContext(contextTexts)}`, + }; + return [prompt, ...chatHistory, { role: "user", content: userPrompt }]; + } + + async isSafe(_input = "") { + // Not implemented so must be stubbed + return { safe: true, reasons: [] }; + } + + async getChatCompletion(messages = null, { temperature = 0.7 }) { + const result = await this.openai.chat.completions + .create({ + model: this.model, + messages, + temperature, + max_tokens: parseInt(this.maxTokens), // LiteLLM requires int + }) + .catch((e) => { + throw new Error(e.response.data.error.message); + }); + + if (!result.hasOwnProperty("choices") || result.choices.length === 0) + return null; + return result.choices[0].message.content; + } + + async streamGetChatCompletion(messages = null, { temperature = 0.7 }) { + const streamRequest = await this.openai.chat.completions.create({ + model: this.model, + stream: true, + messages, + temperature, + max_tokens: parseInt(this.maxTokens), // LiteLLM requires int + }); + return streamRequest; + } + + handleStream(response, stream, responseProps) { + const { uuid = uuidv4(), sources = [] } = responseProps; + + return new Promise(async (resolve) => { + let fullText = ""; + + const handleAbort = () => clientAbortedHandler(resolve, fullText); + response.on("close", handleAbort); + + for await (const chunk of stream) { + const message = chunk?.choices?.[0]; + const token = message?.delta?.content; + + if (token) { + fullText += token; + writeResponseChunk(response, { + uuid, + sources: [], + type: "textResponseChunk", + textResponse: token, + close: false, + error: false, + }); + } + + // LiteLLM does not give a finish reason in stream until the final chunk + if (message.finish_reason || message.finish_reason === "stop") { + writeResponseChunk(response, { + uuid, + sources, + type: "textResponseChunk", + textResponse: "", + close: true, + error: false, + }); + response.removeListener("close", handleAbort); + resolve(fullText); + } + } + }); + } + + // Simple wrapper for dynamic embedder & normalize interface for all LLM implementations + async embedTextInput(textInput) { + return await this.embedder.embedTextInput(textInput); + } + async embedChunks(textChunks = []) { + return await this.embedder.embedChunks(textChunks); + } + + async compressMessages(promptArgs = {}, rawHistory = []) { + const { messageArrayCompressor } = require("../../helpers/chat"); + const messageArray = this.constructPrompt(promptArgs); + return await messageArrayCompressor(this, messageArray, rawHistory); + } +} + +module.exports = { + LiteLLM, +}; diff --git a/server/utils/helpers/customModels.js b/server/utils/helpers/customModels.js index caf5a77c..31a3eb2c 100644 --- a/server/utils/helpers/customModels.js +++ b/server/utils/helpers/customModels.js @@ -16,6 +16,7 @@ const SUPPORT_CUSTOM_MODELS = [ "openrouter", "lmstudio", "koboldcpp", + "litellm", "elevenlabs-tts", ]; @@ -44,6 +45,8 @@ async function getCustomModels(provider = "", apiKey = null, basePath = null) { return await getLMStudioModels(basePath); case "koboldcpp": return await getKoboldCPPModels(basePath); + case "litellm": + return await liteLLMModels(basePath, apiKey); case "elevenlabs-tts": return await getElevenLabsModels(apiKey); default: @@ -164,6 +167,25 @@ async function localAIModels(basePath = null, apiKey = null) { return { models, error: null }; } +async function liteLLMModels(basePath = null, apiKey = null) { + const { OpenAI: OpenAIApi } = require("openai"); + const openai = new OpenAIApi({ + baseURL: basePath || process.env.LITE_LLM_BASE_PATH, + apiKey: apiKey || process.env.LITE_LLM_API_KEY || null, + }); + const models = await openai.models + .list() + .then((results) => results.data) + .catch((e) => { + console.error(`LiteLLM:listModels`, e.message); + return []; + }); + + // Api Key was successful so lets save it for future uses + if (models.length > 0 && !!apiKey) process.env.LITE_LLM_API_KEY = apiKey; + return { models, error: null }; +} + async function getLMStudioModels(basePath = null) { try { const { OpenAI: OpenAIApi } = require("openai"); diff --git a/server/utils/helpers/index.js b/server/utils/helpers/index.js index 72fbfc6e..dde8d7ab 100644 --- a/server/utils/helpers/index.js +++ b/server/utils/helpers/index.js @@ -86,6 +86,9 @@ function getLLMProvider({ provider = null, model = null } = {}) { case "cohere": const { CohereLLM } = require("../AiProviders/cohere"); return new CohereLLM(embedder, model); + case "litellm": + const { LiteLLM } = require("../AiProviders/liteLLM"); + return new LiteLLM(embedder, model); case "generic-openai": const { GenericOpenAiLLM } = require("../AiProviders/genericOpenAi"); return new GenericOpenAiLLM(embedder, model); diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index e2b1d2e1..8630d85a 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -160,6 +160,24 @@ const KEY_MAPPING = { checks: [], }, + // LiteLLM Settings + LiteLLMModelPref: { + envKey: "LITE_LLM_MODEL_PREF", + checks: [isNotEmpty], + }, + LiteLLMTokenLimit: { + envKey: "LITE_LLM_MODEL_TOKEN_LIMIT", + checks: [nonZero], + }, + LiteLLMBasePath: { + envKey: "LITE_LLM_BASE_PATH", + checks: [isValidURL], + }, + LiteLLMApiKey: { + envKey: "LITE_LLM_API_KEY", + checks: [], + }, + // Generic OpenAI InferenceSettings GenericOpenAiBasePath: { envKey: "GENERIC_OPEN_AI_BASE_PATH", @@ -469,6 +487,7 @@ function supportedLLM(input = "") { "koboldcpp", "textgenwebui", "cohere", + "litellm", "generic-openai", ].includes(input); return validSelection ? null : `${input} is not a valid LLM provider.`; From 7e0b638a2c21fe1900c54f2f2d7fae245e7f0f96 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Thu, 16 May 2024 14:15:59 -0700 Subject: [PATCH 13/55] Patch confluence URL patterns(#1426) * patch confluence patterns --------- Co-authored-by: shatfield4 --- collector/utils/extensions/Confluence/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/collector/utils/extensions/Confluence/index.js b/collector/utils/extensions/Confluence/index.js index b18ae314..1732d072 100644 --- a/collector/utils/extensions/Confluence/index.js +++ b/collector/utils/extensions/Confluence/index.js @@ -12,7 +12,7 @@ const { function validSpaceUrl(spaceUrl = "") { // Atlassian default URL match const atlassianPattern = new UrlPattern( - "https\\://(:subdomain).atlassian.net/wiki/spaces/(:spaceKey)/*" + "https\\://(:subdomain).atlassian.net/wiki/spaces/(:spaceKey)*" ); const atlassianMatch = atlassianPattern.match(spaceUrl); if (atlassianMatch) { @@ -21,8 +21,8 @@ function validSpaceUrl(spaceUrl = "") { let customMatch = null; [ - "https\\://(:subdomain.):domain.:tld/wiki/spaces/(:spaceKey)/*", // Custom Confluence space - "https\\://(:subdomain.):domain.:tld/display/(:spaceKey)/*", // Custom Confluence space + Human-readable space tag. + "https\\://(:subdomain.):domain.:tld/wiki/spaces/(:spaceKey)*", // Custom Confluence space + "https\\://(:subdomain.):domain.:tld/display/(:spaceKey)*", // Custom Confluence space + Human-readable space tag. ].forEach((matchPattern) => { if (!!customMatch) return; const pattern = new UrlPattern(matchPattern); From 01cf2fed170de0f7ceec134709aa2b87c3bc8135 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Thu, 16 May 2024 17:25:05 -0700 Subject: [PATCH 14/55] Make native embedder the fallback for all LLMs (#1427) --- server/utils/AiProviders/anthropic/index.js | 7 ++----- server/utils/AiProviders/azureOpenAi/index.js | 8 ++------ server/utils/AiProviders/cohere/index.js | 3 ++- server/utils/AiProviders/gemini/index.js | 7 ++----- server/utils/AiProviders/genericOpenAi/index.js | 6 +----- server/utils/AiProviders/groq/index.js | 2 +- server/utils/AiProviders/huggingface/index.js | 7 +------ server/utils/AiProviders/koboldCPP/index.js | 6 +----- server/utils/AiProviders/liteLLM/index.js | 6 +----- server/utils/AiProviders/lmStudio/index.js | 7 ++----- server/utils/AiProviders/localAi/index.js | 7 ++----- server/utils/AiProviders/mistral/index.js | 7 ++----- server/utils/AiProviders/native/index.js | 2 +- server/utils/AiProviders/ollama/index.js | 7 ++----- server/utils/AiProviders/openAi/index.js | 8 ++------ server/utils/AiProviders/openRouter/index.js | 2 +- server/utils/AiProviders/perplexity/index.js | 2 +- server/utils/AiProviders/textGenWebUI/index.js | 2 +- server/utils/AiProviders/togetherAi/index.js | 7 ++----- 19 files changed, 29 insertions(+), 74 deletions(-) diff --git a/server/utils/AiProviders/anthropic/index.js b/server/utils/AiProviders/anthropic/index.js index d5ee1f9d..215fa5fb 100644 --- a/server/utils/AiProviders/anthropic/index.js +++ b/server/utils/AiProviders/anthropic/index.js @@ -3,6 +3,7 @@ const { writeResponseChunk, clientAbortedHandler, } = require("../../helpers/chat/responses"); +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); class AnthropicLLM { constructor(embedder = null, modelPreference = null) { @@ -23,11 +24,7 @@ class AnthropicLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID ANTHROPIC SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use Anthropic as your LLM." - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/azureOpenAi/index.js b/server/utils/AiProviders/azureOpenAi/index.js index a2ab556d..3678567e 100644 --- a/server/utils/AiProviders/azureOpenAi/index.js +++ b/server/utils/AiProviders/azureOpenAi/index.js @@ -1,4 +1,4 @@ -const { AzureOpenAiEmbedder } = require("../../EmbeddingEngines/azureOpenAi"); +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { writeResponseChunk, clientAbortedHandler, @@ -23,11 +23,7 @@ class AzureOpenAiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for AzureOpenAiLLM - falling back to AzureOpenAiEmbedder for embedding!" - ); - this.embedder = !embedder ? new AzureOpenAiEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/cohere/index.js b/server/utils/AiProviders/cohere/index.js index a97a15fc..6357d503 100644 --- a/server/utils/AiProviders/cohere/index.js +++ b/server/utils/AiProviders/cohere/index.js @@ -19,7 +19,8 @@ class CohereLLM { system: this.promptWindowLimit() * 0.15, user: this.promptWindowLimit() * 0.7, }; - this.embedder = !!embedder ? embedder : new NativeEmbedder(); + + this.embedder = embedder ?? new NativeEmbedder(); } #appendContext(contextTexts = []) { diff --git a/server/utils/AiProviders/gemini/index.js b/server/utils/AiProviders/gemini/index.js index 962b1201..3dd307af 100644 --- a/server/utils/AiProviders/gemini/index.js +++ b/server/utils/AiProviders/gemini/index.js @@ -1,3 +1,4 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { writeResponseChunk, clientAbortedHandler, @@ -26,11 +27,7 @@ class GeminiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID GEMINI LLM SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use Gemini as your LLM." - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; // not used for Gemini } diff --git a/server/utils/AiProviders/genericOpenAi/index.js b/server/utils/AiProviders/genericOpenAi/index.js index 686d4c67..dc0264e4 100644 --- a/server/utils/AiProviders/genericOpenAi/index.js +++ b/server/utils/AiProviders/genericOpenAi/index.js @@ -27,11 +27,7 @@ class GenericOpenAiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for GenericOpenAiLLM - falling back to NativeEmbedder for embedding!" - ); - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; this.log(`Inference API: ${this.basePath} Model: ${this.model}`); } diff --git a/server/utils/AiProviders/groq/index.js b/server/utils/AiProviders/groq/index.js index 01d92f00..24a430e6 100644 --- a/server/utils/AiProviders/groq/index.js +++ b/server/utils/AiProviders/groq/index.js @@ -20,7 +20,7 @@ class GroqLLM { user: this.promptWindowLimit() * 0.7, }; - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/huggingface/index.js b/server/utils/AiProviders/huggingface/index.js index 6a79880c..d25725c2 100644 --- a/server/utils/AiProviders/huggingface/index.js +++ b/server/utils/AiProviders/huggingface/index.js @@ -1,5 +1,4 @@ const { NativeEmbedder } = require("../../EmbeddingEngines/native"); -const { OpenAiEmbedder } = require("../../EmbeddingEngines/openAi"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -26,11 +25,7 @@ class HuggingFaceLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for HuggingFaceLLM - falling back to Native for embedding!" - ); - this.embedder = !embedder ? new OpenAiEmbedder() : new NativeEmbedder(); + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.2; } diff --git a/server/utils/AiProviders/koboldCPP/index.js b/server/utils/AiProviders/koboldCPP/index.js index 4b1ff3f6..90186aab 100644 --- a/server/utils/AiProviders/koboldCPP/index.js +++ b/server/utils/AiProviders/koboldCPP/index.js @@ -26,11 +26,7 @@ class KoboldCPPLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for KoboldCPPLLM - falling back to NativeEmbedder for embedding!" - ); - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; this.log(`Inference API: ${this.basePath} Model: ${this.model}`); } diff --git a/server/utils/AiProviders/liteLLM/index.js b/server/utils/AiProviders/liteLLM/index.js index 5973826c..6152ea29 100644 --- a/server/utils/AiProviders/liteLLM/index.js +++ b/server/utils/AiProviders/liteLLM/index.js @@ -26,11 +26,7 @@ class LiteLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for LiteLLM - falling back to NativeEmbedder for embedding!" - ); - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; this.log(`Inference API: ${this.basePath} Model: ${this.model}`); } diff --git a/server/utils/AiProviders/lmStudio/index.js b/server/utils/AiProviders/lmStudio/index.js index 48f689fb..6345fb04 100644 --- a/server/utils/AiProviders/lmStudio/index.js +++ b/server/utils/AiProviders/lmStudio/index.js @@ -1,3 +1,4 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -27,11 +28,7 @@ class LMStudioLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID LM STUDIO SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use LMStudio as your LLM." - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/localAi/index.js b/server/utils/AiProviders/localAi/index.js index 50477528..8bc4d047 100644 --- a/server/utils/AiProviders/localAi/index.js +++ b/server/utils/AiProviders/localAi/index.js @@ -1,3 +1,4 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -19,11 +20,7 @@ class LocalAiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID LOCAL AI SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use LocalAI as your LLM." - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/mistral/index.js b/server/utils/AiProviders/mistral/index.js index 8410d4cb..c2546299 100644 --- a/server/utils/AiProviders/mistral/index.js +++ b/server/utils/AiProviders/mistral/index.js @@ -1,3 +1,4 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -20,11 +21,7 @@ class MistralLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for MistralLLM - falling back to OpenAiEmbedder for embedding!" - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.0; } diff --git a/server/utils/AiProviders/native/index.js b/server/utils/AiProviders/native/index.js index e13b68a2..0cbd8747 100644 --- a/server/utils/AiProviders/native/index.js +++ b/server/utils/AiProviders/native/index.js @@ -23,7 +23,7 @@ class NativeLLM { system: this.promptWindowLimit() * 0.15, user: this.promptWindowLimit() * 0.7, }; - this.embedder = embedder || new NativeEmbedder(); + this.embedder = embedder ?? new NativeEmbedder(); this.cacheDir = path.resolve( process.env.STORAGE_DIR ? path.resolve(process.env.STORAGE_DIR, "models", "downloaded") diff --git a/server/utils/AiProviders/ollama/index.js b/server/utils/AiProviders/ollama/index.js index 73269d6d..609a7601 100644 --- a/server/utils/AiProviders/ollama/index.js +++ b/server/utils/AiProviders/ollama/index.js @@ -3,6 +3,7 @@ const { writeResponseChunk, clientAbortedHandler, } = require("../../helpers/chat/responses"); +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); // Docs: https://github.com/jmorganca/ollama/blob/main/docs/api.md class OllamaAILLM { @@ -18,11 +19,7 @@ class OllamaAILLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID OLLAMA SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use Ollama as your LLM." - ); - this.embedder = embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/openAi/index.js b/server/utils/AiProviders/openAi/index.js index 43d7c287..8037d23d 100644 --- a/server/utils/AiProviders/openAi/index.js +++ b/server/utils/AiProviders/openAi/index.js @@ -1,4 +1,4 @@ -const { OpenAiEmbedder } = require("../../EmbeddingEngines/openAi"); +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -18,11 +18,7 @@ class OpenAiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - console.warn( - "No embedding provider defined for OpenAiLLM - falling back to OpenAiEmbedder for embedding!" - ); - this.embedder = !embedder ? new OpenAiEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/openRouter/index.js b/server/utils/AiProviders/openRouter/index.js index a8301083..bb8cf447 100644 --- a/server/utils/AiProviders/openRouter/index.js +++ b/server/utils/AiProviders/openRouter/index.js @@ -36,7 +36,7 @@ class OpenRouterLLM { user: this.promptWindowLimit() * 0.7, }; - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; if (!fs.existsSync(cacheFolder)) diff --git a/server/utils/AiProviders/perplexity/index.js b/server/utils/AiProviders/perplexity/index.js index a17ec43f..d3f50de7 100644 --- a/server/utils/AiProviders/perplexity/index.js +++ b/server/utils/AiProviders/perplexity/index.js @@ -28,7 +28,7 @@ class PerplexityLLM { user: this.promptWindowLimit() * 0.7, }; - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; } diff --git a/server/utils/AiProviders/textGenWebUI/index.js b/server/utils/AiProviders/textGenWebUI/index.js index dfce76a5..72f116f8 100644 --- a/server/utils/AiProviders/textGenWebUI/index.js +++ b/server/utils/AiProviders/textGenWebUI/index.js @@ -23,7 +23,7 @@ class TextGenWebUILLM { user: this.promptWindowLimit() * 0.7, }; - this.embedder = !embedder ? new NativeEmbedder() : embedder; + this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; this.log(`Inference API: ${this.basePath} Model: ${this.model}`); } diff --git a/server/utils/AiProviders/togetherAi/index.js b/server/utils/AiProviders/togetherAi/index.js index 577a4b74..cdfef339 100644 --- a/server/utils/AiProviders/togetherAi/index.js +++ b/server/utils/AiProviders/togetherAi/index.js @@ -1,3 +1,4 @@ +const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); @@ -23,11 +24,7 @@ class TogetherAiLLM { user: this.promptWindowLimit() * 0.7, }; - if (!embedder) - throw new Error( - "INVALID TOGETHER AI SETUP. No embedding engine has been set. Go to instance settings and set up an embedding interface to use Together AI as your LLM." - ); - this.embedder = embedder; + this.embedder = !embedder ? new NativeEmbedder() : embedder; this.defaultTemp = 0.7; } From cae6cee1b52216f75d81b8182268c7e59e5afc72 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Thu, 16 May 2024 17:51:04 -0700 Subject: [PATCH 15/55] Do not go through LLM to embed when embedding documents (#1428) --- server/utils/helpers/index.js | 4 ++-- server/utils/vectorDbProviders/astra/index.js | 12 ++++-------- server/utils/vectorDbProviders/chroma/index.js | 12 ++++-------- server/utils/vectorDbProviders/lance/index.js | 12 ++++-------- server/utils/vectorDbProviders/milvus/index.js | 12 ++++-------- server/utils/vectorDbProviders/pinecone/index.js | 12 ++++-------- server/utils/vectorDbProviders/qdrant/index.js | 12 ++++-------- server/utils/vectorDbProviders/weaviate/index.js | 12 ++++-------- server/utils/vectorDbProviders/zilliz/index.js | 12 ++++-------- 9 files changed, 34 insertions(+), 66 deletions(-) diff --git a/server/utils/helpers/index.js b/server/utils/helpers/index.js index dde8d7ab..d9a1ba09 100644 --- a/server/utils/helpers/index.js +++ b/server/utils/helpers/index.js @@ -100,6 +100,7 @@ function getLLMProvider({ provider = null, model = null } = {}) { } function getEmbeddingEngineSelection() { + const { NativeEmbedder } = require("../EmbeddingEngines/native"); const engineSelection = process.env.EMBEDDING_ENGINE; switch (engineSelection) { case "openai": @@ -117,7 +118,6 @@ function getEmbeddingEngineSelection() { const { OllamaEmbedder } = require("../EmbeddingEngines/ollama"); return new OllamaEmbedder(); case "native": - const { NativeEmbedder } = require("../EmbeddingEngines/native"); return new NativeEmbedder(); case "lmstudio": const { LMStudioEmbedder } = require("../EmbeddingEngines/lmstudio"); @@ -126,7 +126,7 @@ function getEmbeddingEngineSelection() { const { CohereEmbedder } = require("../EmbeddingEngines/cohere"); return new CohereEmbedder(); default: - return null; + return new NativeEmbedder(); } } diff --git a/server/utils/vectorDbProviders/astra/index.js b/server/utils/vectorDbProviders/astra/index.js index 5f0b086f..50e8ba34 100644 --- a/server/utils/vectorDbProviders/astra/index.js +++ b/server/utils/vectorDbProviders/astra/index.js @@ -3,11 +3,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); const { v4: uuidv4 } = require("uuid"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { sourceIdentifier } = require("../../chats"); const AstraDB = { @@ -149,12 +145,13 @@ const AstraDB = { return { vectorized: true, error: null }; } + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -164,10 +161,9 @@ const AstraDB = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); if (!!vectorValues && vectorValues.length > 0) { for (const [i, vector] of vectorValues.entries()) { diff --git a/server/utils/vectorDbProviders/chroma/index.js b/server/utils/vectorDbProviders/chroma/index.js index d87b3aad..d17883b7 100644 --- a/server/utils/vectorDbProviders/chroma/index.js +++ b/server/utils/vectorDbProviders/chroma/index.js @@ -3,11 +3,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); const { v4: uuidv4 } = require("uuid"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { parseAuthHeader } = require("../../http"); const { sourceIdentifier } = require("../../chats"); @@ -192,12 +188,13 @@ const Chroma = { // We have to do this manually as opposed to using LangChains `Chroma.fromDocuments` // because we then cannot atomically control our namespace to granularly find/remove documents // from vectordb. + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -207,10 +204,9 @@ const Chroma = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); const submission = { ids: [], embeddings: [], diff --git a/server/utils/vectorDbProviders/lance/index.js b/server/utils/vectorDbProviders/lance/index.js index 7efb6aa0..db266295 100644 --- a/server/utils/vectorDbProviders/lance/index.js +++ b/server/utils/vectorDbProviders/lance/index.js @@ -1,9 +1,5 @@ const lancedb = require("vectordb"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); @@ -190,12 +186,13 @@ const LanceDb = { // We have to do this manually as opposed to using LangChains `xyz.fromDocuments` // because we then cannot atomically control our namespace to granularly find/remove documents // from vectordb. + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -205,11 +202,10 @@ const LanceDb = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; const submissions = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); if (!!vectorValues && vectorValues.length > 0) { for (const [i, vector] of vectorValues.entries()) { diff --git a/server/utils/vectorDbProviders/milvus/index.js b/server/utils/vectorDbProviders/milvus/index.js index c4c91c22..27309233 100644 --- a/server/utils/vectorDbProviders/milvus/index.js +++ b/server/utils/vectorDbProviders/milvus/index.js @@ -8,11 +8,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { v4: uuidv4 } = require("uuid"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { sourceIdentifier } = require("../../chats"); const Milvus = { @@ -184,12 +180,13 @@ const Milvus = { return { vectorized: true, error: null }; } + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -199,10 +196,9 @@ const Milvus = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); if (!!vectorValues && vectorValues.length > 0) { for (const [i, vector] of vectorValues.entries()) { diff --git a/server/utils/vectorDbProviders/pinecone/index.js b/server/utils/vectorDbProviders/pinecone/index.js index cf71c893..9b68ef1b 100644 --- a/server/utils/vectorDbProviders/pinecone/index.js +++ b/server/utils/vectorDbProviders/pinecone/index.js @@ -3,11 +3,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); const { v4: uuidv4 } = require("uuid"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { sourceIdentifier } = require("../../chats"); const PineconeDB = { @@ -135,12 +131,13 @@ const PineconeDB = { // because we then cannot atomically control our namespace to granularly find/remove documents // from vectordb. // https://github.com/hwchase17/langchainjs/blob/2def486af734c0ca87285a48f1a04c057ab74bdf/langchain/src/vectorstores/pinecone.ts#L167 + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -150,10 +147,9 @@ const PineconeDB = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); if (!!vectorValues && vectorValues.length > 0) { for (const [i, vector] of vectorValues.entries()) { diff --git a/server/utils/vectorDbProviders/qdrant/index.js b/server/utils/vectorDbProviders/qdrant/index.js index 2497c3f3..e8511d0b 100644 --- a/server/utils/vectorDbProviders/qdrant/index.js +++ b/server/utils/vectorDbProviders/qdrant/index.js @@ -3,11 +3,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); const { v4: uuidv4 } = require("uuid"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { sourceIdentifier } = require("../../chats"); const QDrant = { @@ -209,12 +205,13 @@ const QDrant = { // We have to do this manually as opposed to using LangChains `Qdrant.fromDocuments` // because we then cannot atomically control our namespace to granularly find/remove documents // from vectordb. + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -224,10 +221,9 @@ const QDrant = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); const submission = { ids: [], vectors: [], diff --git a/server/utils/vectorDbProviders/weaviate/index.js b/server/utils/vectorDbProviders/weaviate/index.js index 9e784967..f19329a4 100644 --- a/server/utils/vectorDbProviders/weaviate/index.js +++ b/server/utils/vectorDbProviders/weaviate/index.js @@ -3,11 +3,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); const { v4: uuidv4 } = require("uuid"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { camelCase } = require("../../helpers/camelcase"); const { sourceIdentifier } = require("../../chats"); @@ -251,12 +247,13 @@ const Weaviate = { // We have to do this manually as opposed to using LangChains `Chroma.fromDocuments` // because we then cannot atomically control our namespace to granularly find/remove documents // from vectordb. + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -266,10 +263,9 @@ const Weaviate = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); const submission = { ids: [], vectors: [], diff --git a/server/utils/vectorDbProviders/zilliz/index.js b/server/utils/vectorDbProviders/zilliz/index.js index 0efe6996..a7ee0438 100644 --- a/server/utils/vectorDbProviders/zilliz/index.js +++ b/server/utils/vectorDbProviders/zilliz/index.js @@ -8,11 +8,7 @@ const { TextSplitter } = require("../../TextSplitter"); const { SystemSettings } = require("../../../models/systemSettings"); const { v4: uuidv4 } = require("uuid"); const { storeVectorResult, cachedVectorInformation } = require("../../files"); -const { - toChunks, - getLLMProvider, - getEmbeddingEngineSelection, -} = require("../../helpers"); +const { toChunks, getEmbeddingEngineSelection } = require("../../helpers"); const { sourceIdentifier } = require("../../chats"); // Zilliz is basically a copy of Milvus DB class with a different constructor @@ -185,12 +181,13 @@ const Zilliz = { return { vectorized: true, error: null }; } + const EmbedderEngine = getEmbeddingEngineSelection(); const textSplitter = new TextSplitter({ chunkSize: TextSplitter.determineMaxChunkSize( await SystemSettings.getValueOrFallback({ label: "text_splitter_chunk_size", }), - getEmbeddingEngineSelection()?.embeddingMaxChunkLength + EmbedderEngine?.embeddingMaxChunkLength ), chunkOverlap: await SystemSettings.getValueOrFallback( { label: "text_splitter_chunk_overlap" }, @@ -200,10 +197,9 @@ const Zilliz = { const textChunks = await textSplitter.splitText(pageContent); console.log("Chunks created from document:", textChunks.length); - const LLMConnector = getLLMProvider(); const documentVectors = []; const vectors = []; - const vectorValues = await LLMConnector.embedChunks(textChunks); + const vectorValues = await EmbedderEngine.embedChunks(textChunks); if (!!vectorValues && vectorValues.length > 0) { for (const [i, vector] of vectorValues.entries()) { From f1401395342488566820cbf189b8eeeb8c53da7f Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Fri, 17 May 2024 14:03:25 -0700 Subject: [PATCH 16/55] Patch WSS upgrade for manual HTTPS certs (#1429) * Patch WSS upgrade for manual HTTPS certs * update comment * refactor --- server/.gitignore | 5 ++++- server/index.js | 15 +++++++++------ server/utils/boot/index.js | 11 +++++++---- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/server/.gitignore b/server/.gitignore index b22a054f..adcf7aa4 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -18,4 +18,7 @@ public/ # For legacy copies of repo documents vector-cache -yarn-error.log \ No newline at end of file +yarn-error.log + +# Local SSL Certs for HTTPS +sslcert \ No newline at end of file diff --git a/server/index.js b/server/index.js index 7874045b..59d8fec6 100644 --- a/server/index.js +++ b/server/index.js @@ -36,7 +36,12 @@ app.use( }) ); -require("express-ws")(app); +if (!!process.env.ENABLE_HTTPS) { + bootSSL(app, process.env.SERVER_PORT || 3001); +} else { + require("express-ws")(app); // load WebSockets in non-SSL mode. +} + app.use("/api", apiRouter); systemEndpoints(apiRouter); extensionEndpoints(apiRouter); @@ -109,8 +114,6 @@ app.all("*", function (_, response) { response.sendStatus(404); }); -if (!!process.env.ENABLE_HTTPS) { - bootSSL(app, process.env.SERVER_PORT || 3001); -} else { - bootHTTP(app, process.env.SERVER_PORT || 3001); -} +// In non-https mode we need to boot at the end since the server has not yet +// started and is `.listen`ing. +if (!process.env.ENABLE_HTTPS) bootHTTP(app, process.env.SERVER_PORT || 3001); diff --git a/server/utils/boot/index.js b/server/utils/boot/index.js index ea95e1f5..2022f66e 100644 --- a/server/utils/boot/index.js +++ b/server/utils/boot/index.js @@ -12,16 +12,18 @@ function bootSSL(app, port = 3001) { const privateKey = fs.readFileSync(process.env.HTTPS_KEY_PATH); const certificate = fs.readFileSync(process.env.HTTPS_CERT_PATH); const credentials = { key: privateKey, cert: certificate }; + const server = https.createServer(credentials, app); - https - .createServer(credentials, app) + server .listen(port, async () => { await setupTelemetry(); new CommunicationKey(true); console.log(`Primary server in HTTPS mode listening on port ${port}`); }) .on("error", catchSigTerms); - return app; + + require("express-ws")(app, server); // Apply same certificate + server for WSS connections + return { app, server }; } catch (e) { console.error( `\x1b[31m[SSL BOOT FAILED]\x1b[0m ${e.message} - falling back to HTTP boot.`, @@ -46,7 +48,8 @@ function bootHTTP(app, port = 3001) { console.log(`Primary server in HTTP mode listening on port ${port}`); }) .on("error", catchSigTerms); - return app; + + return { app, server: null }; } function catchSigTerms() { From 3794ef8dfd7f183e072b19b4f5a8442bdce2708e Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Fri, 17 May 2024 17:33:19 -0700 Subject: [PATCH 17/55] patch: use workspace LLM for embed chats and fallback to system resolves #1439 --- server/utils/chats/embed.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/utils/chats/embed.js b/server/utils/chats/embed.js index 98b096fb..8488aedd 100644 --- a/server/utils/chats/embed.js +++ b/server/utils/chats/embed.js @@ -29,6 +29,7 @@ async function streamChatWithForEmbed( const uuid = uuidv4(); const LLMConnector = getLLMProvider({ + provider: embed?.workspace?.chatProvider, model: chatModel ?? embed.workspace?.chatModel, }); const VectorDb = getVectorDbClass(); From 1a5aacb001259fa98fbb97548d4ce0c8410cd470 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Fri, 17 May 2024 21:31:29 -0700 Subject: [PATCH 18/55] Support multi-model whispers (#1444) --- .../utils/WhisperProviders/localWhisper.js | 16 ++-- .../NativeTranscriptionOptions/index.jsx | 93 ++++++++++++++----- .../TranscriptionPreference/index.jsx | 37 ++++---- server/models/systemSettings.js | 2 + server/utils/collectorApi/index.js | 1 + server/utils/helpers/updateENV.js | 15 +++ 6 files changed, 118 insertions(+), 46 deletions(-) diff --git a/collector/utils/WhisperProviders/localWhisper.js b/collector/utils/WhisperProviders/localWhisper.js index 46dbe226..af13c8a9 100644 --- a/collector/utils/WhisperProviders/localWhisper.js +++ b/collector/utils/WhisperProviders/localWhisper.js @@ -1,19 +1,23 @@ const fs = require("fs"); const path = require("path"); const { v4 } = require("uuid"); +const defaultWhisper = "Xenova/whisper-small"; // Model Card: https://huggingface.co/Xenova/whisper-small +const fileSize = { + "Xenova/whisper-small": "250mb", + "Xenova/whisper-large": "1.56GB", +}; class LocalWhisper { - constructor() { - // Model Card: https://huggingface.co/Xenova/whisper-small - this.model = "Xenova/whisper-small"; + constructor({ options }) { + this.model = options?.WhisperModelPref ?? defaultWhisper; + this.fileSize = fileSize[this.model]; this.cacheDir = path.resolve( process.env.STORAGE_DIR ? path.resolve(process.env.STORAGE_DIR, `models`) : path.resolve(__dirname, `../../../server/storage/models`) ); - this.modelPath = path.resolve(this.cacheDir, "Xenova", "whisper-small"); - + this.modelPath = path.resolve(this.cacheDir, ...this.model.split("/")); // Make directory when it does not exist in existing installations if (!fs.existsSync(this.cacheDir)) fs.mkdirSync(this.cacheDir, { recursive: true }); @@ -104,7 +108,7 @@ class LocalWhisper { async client() { if (!fs.existsSync(this.modelPath)) { this.#log( - `The native whisper model has never been run and will be downloaded right now. Subsequent runs will be faster. (~250MB)` + `The native whisper model has never been run and will be downloaded right now. Subsequent runs will be faster. (~${this.fileSize})` ); } diff --git a/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx b/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx index 07ee1212..d2e81a68 100644 --- a/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx +++ b/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx @@ -1,38 +1,89 @@ import { Gauge } from "@phosphor-icons/react"; -export default function NativeTranscriptionOptions() { +import { useState } from "react"; + +export default function NativeTranscriptionOptions({ settings }) { + const [model, setModel] = useState(settings?.WhisperModelPref); + return (
-
-
- -

- Using the local whisper model on machines with limited RAM or CPU - can stall AnythingLLM when processing media files. -
- We recommend at least 2GB of RAM and upload files <10Mb. -
-
- - The built-in model will automatically download on the first use. - -

-
-
+
); } + +function LocalWarning({ model }) { + switch (model) { + case "Xenova/whisper-small": + return ; + case "Xenova/whisper-large": + return ; + default: + return ; + } +} + +function WhisperSmall() { + return ( +
+
+ +

+ Running the whisper-small model on a machine with limited RAM + or CPU can stall AnythingLLM when processing media files. +
+ We recommend at least 2GB of RAM and upload files <10Mb. +
+
+ + This model will automatically download on the first use. (250mb) + +

+
+
+ ); +} + +function WhisperLarge() { + return ( +
+
+ +

+ Using the whisper-large model on machines with limited RAM or + CPU can stall AnythingLLM when processing media files. This model is + substantially larger than the whisper-small. +
+ We recommend at least 8GB of RAM and upload files <10Mb. +
+
+ + This model will automatically download on the first use. (1.56GB) + +

+
+
+ ); +} diff --git a/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx b/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx index 5fbd196c..07907af7 100644 --- a/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx +++ b/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx @@ -12,6 +12,23 @@ import LLMItem from "@/components/LLMSelection/LLMItem"; import { CaretUpDown, MagnifyingGlass, X } from "@phosphor-icons/react"; import CTAButton from "@/components/lib/CTAButton"; +const PROVIDERS = [ + { + name: "OpenAI", + value: "openai", + logo: OpenAiLogo, + options: (settings) => , + description: "Leverage the OpenAI Whisper-large model using your API key.", + }, + { + name: "AnythingLLM Built-In", + value: "local", + logo: AnythingLLMIcon, + options: (settings) => , + description: "Run a built-in whisper model on this instance privately.", + }, +]; + export default function TranscriptionModelPreference() { const [saving, setSaving] = useState(false); const [hasChanges, setHasChanges] = useState(false); @@ -68,24 +85,6 @@ export default function TranscriptionModelPreference() { fetchKeys(); }, []); - const PROVIDERS = [ - { - name: "OpenAI", - value: "openai", - logo: OpenAiLogo, - options: , - description: - "Leverage the OpenAI Whisper-large model using your API key.", - }, - { - name: "AnythingLLM Built-In", - value: "local", - logo: AnythingLLMIcon, - options: , - description: "Run a built-in whisper model on this instance privately.", - }, - ]; - useEffect(() => { const filtered = PROVIDERS.filter((provider) => provider.name.toLowerCase().includes(searchQuery.toLowerCase()) @@ -228,7 +227,7 @@ export default function TranscriptionModelPreference() { {selectedProvider && PROVIDERS.find( (provider) => provider.value === selectedProvider - )?.options} + )?.options(settings)}
diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 68d1d0dd..c8e239f1 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -150,6 +150,8 @@ const SystemSettings = { // - then it can be shared. // -------------------------------------------------------- WhisperProvider: process.env.WHISPER_PROVIDER || "local", + WhisperModelPref: + process.env.WHISPER_MODEL_PREF || "Xenova/whisper-small", // -------------------------------------------------------- // TTS/STT Selection Settings & Configs diff --git a/server/utils/collectorApi/index.js b/server/utils/collectorApi/index.js index 1a1431ac..6971f640 100644 --- a/server/utils/collectorApi/index.js +++ b/server/utils/collectorApi/index.js @@ -17,6 +17,7 @@ class CollectorApi { #attachOptions() { return { whisperProvider: process.env.WHISPER_PROVIDER || "local", + WhisperModelPref: process.env.WHISPER_MODEL_PREF, openAiKey: process.env.OPEN_AI_KEY || null, }; } diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index 8630d85a..48c98e95 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -356,6 +356,11 @@ const KEY_MAPPING = { checks: [isNotEmpty, supportedTranscriptionProvider], postUpdate: [], }, + WhisperModelPref: { + envKey: "WHISPER_MODEL_PREF", + checks: [validLocalWhisper], + postUpdate: [], + }, // System Settings AuthToken: { @@ -468,6 +473,16 @@ function supportedTTSProvider(input = "") { return validSelection ? null : `${input} is not a valid TTS provider.`; } +function validLocalWhisper(input = "") { + const validSelection = [ + "Xenova/whisper-small", + "Xenova/whisper-large", + ].includes(input); + return validSelection + ? null + : `${input} is not a valid Whisper model selection.`; +} + function supportedLLM(input = "") { const validSelection = [ "openai", From 9ace0e67e68aa5dbe9c29c2fc66d981de18469f6 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Fri, 17 May 2024 21:44:55 -0700 Subject: [PATCH 19/55] Validate max_tokens is number (#1445) --- server/utils/AiProviders/genericOpenAi/index.js | 5 ++++- server/utils/agents/aibitat/plugins/summarize.js | 1 - server/utils/agents/aibitat/providers/genericOpenAi.js | 5 ++++- server/utils/http/index.js | 6 ++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/server/utils/AiProviders/genericOpenAi/index.js b/server/utils/AiProviders/genericOpenAi/index.js index dc0264e4..46b8aefb 100644 --- a/server/utils/AiProviders/genericOpenAi/index.js +++ b/server/utils/AiProviders/genericOpenAi/index.js @@ -2,6 +2,7 @@ const { NativeEmbedder } = require("../../EmbeddingEngines/native"); const { handleDefaultStreamResponseV2, } = require("../../helpers/chat/responses"); +const { toValidNumber } = require("../../http"); class GenericOpenAiLLM { constructor(embedder = null, modelPreference = null) { @@ -18,7 +19,9 @@ class GenericOpenAiLLM { }); this.model = modelPreference ?? process.env.GENERIC_OPEN_AI_MODEL_PREF ?? null; - this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS ?? 1024; + this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS + ? toValidNumber(process.env.GENERIC_OPEN_AI_MAX_TOKENS, 1024) + : 1024; if (!this.model) throw new Error("GenericOpenAI must have a valid model set."); this.limits = { diff --git a/server/utils/agents/aibitat/plugins/summarize.js b/server/utils/agents/aibitat/plugins/summarize.js index 526de116..de1657c9 100644 --- a/server/utils/agents/aibitat/plugins/summarize.js +++ b/server/utils/agents/aibitat/plugins/summarize.js @@ -1,6 +1,5 @@ const { Document } = require("../../../../models/documents"); const { safeJsonParse } = require("../../../http"); -const { validate } = require("uuid"); const { summarizeContent } = require("../utils/summarize"); const Provider = require("../providers/ai-provider"); diff --git a/server/utils/agents/aibitat/providers/genericOpenAi.js b/server/utils/agents/aibitat/providers/genericOpenAi.js index a1b2db3e..9a753ca2 100644 --- a/server/utils/agents/aibitat/providers/genericOpenAi.js +++ b/server/utils/agents/aibitat/providers/genericOpenAi.js @@ -2,6 +2,7 @@ const OpenAI = require("openai"); const Provider = require("./ai-provider.js"); const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); +const { toValidNumber } = require("../../../http/index.js"); /** * The agent provider for the Generic OpenAI provider. @@ -24,7 +25,9 @@ class GenericOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { this._client = client; this.model = model; this.verbose = true; - this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS ?? 1024; + this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS + ? toValidNumber(process.env.GENERIC_OPEN_AI_MAX_TOKENS, 1024) + : 1024; } get client() { diff --git a/server/utils/http/index.js b/server/utils/http/index.js index 6400c36b..e812b8ab 100644 --- a/server/utils/http/index.js +++ b/server/utils/http/index.js @@ -91,6 +91,11 @@ function isValidUrl(urlString = "") { return false; } +function toValidNumber(number = null, fallback = null) { + if (isNaN(Number(number))) return fallback; + return Number(number); +} + module.exports = { reqBody, multiUserMode, @@ -101,4 +106,5 @@ module.exports = { parseAuthHeader, safeJsonParse, isValidUrl, + toValidNumber, }; From 396e04b0cca008795719db6f5d7de1965848d935 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Sat, 18 May 2024 21:29:23 -0700 Subject: [PATCH 20/55] Icon Button Tooltips (#1451) - add tooltips to footer buttons to clear ambiguity on what they might mean - Updated Generic OpenAI connector to not have a ton of inputs in one row --- frontend/.gitignore | 2 - frontend/src/components/Footer/index.jsx | 88 ++++++---- .../GenericOpenAiOptions/index.jsx | 152 +++++++++--------- .../src/components/SettingsButton/index.jsx | 39 +++-- .../src/components/SettingsSidebar/index.jsx | 4 +- .../ChatContainer/PromptInput/index.jsx | 28 +++- 6 files changed, 183 insertions(+), 130 deletions(-) diff --git a/frontend/.gitignore b/frontend/.gitignore index 78720603..77e294d0 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -9,10 +9,8 @@ lerna-debug.log* node_modules dist -lib dist-ssr *.local -!frontend/components/lib # Editor directories and files .vscode/* diff --git a/frontend/src/components/Footer/index.jsx b/frontend/src/components/Footer/index.jsx index 10cd80cd..6e80f0df 100644 --- a/frontend/src/components/Footer/index.jsx +++ b/frontend/src/components/Footer/index.jsx @@ -14,6 +14,8 @@ import { import React, { useEffect, useState } from "react"; import SettingsButton from "../SettingsButton"; import { isMobile } from "react-device-detect"; +import { Tooltip } from "react-tooltip"; +import { v4 } from "uuid"; export const MAX_ICONS = 3; export const ICON_COMPONENTS = { @@ -47,36 +49,48 @@ export default function Footer() { return (
- - - - - - - - - + + + + + + + + + + + + + + + {!isMobile && }
@@ -105,3 +119,17 @@ export default function Footer() { ); } + +export function ToolTipWrapper({ id = v4(), children }) { + return ( +
+ {children} + +
+ ); +} diff --git a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx index ac143e94..d1088063 100644 --- a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx +++ b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx @@ -1,80 +1,84 @@ export default function GenericOpenAiOptions({ settings }) { return ( -
-
- - +
+
+
+ + +
+
+ + +
+
+ + +
-
- - -
-
- - -
-
- - e.target.blur()} - defaultValue={settings?.GenericOpenAiTokenLimit} - required={true} - autoComplete="off" - /> -
-
- - +
+
+ + e.target.blur()} + defaultValue={settings?.GenericOpenAiTokenLimit} + required={true} + autoComplete="off" + /> +
+
+ + +
); diff --git a/frontend/src/components/SettingsButton/index.jsx b/frontend/src/components/SettingsButton/index.jsx index ac2d22cd..19a4a17a 100644 --- a/frontend/src/components/SettingsButton/index.jsx +++ b/frontend/src/components/SettingsButton/index.jsx @@ -3,6 +3,7 @@ import paths from "@/utils/paths"; import { ArrowUUpLeft, Wrench } from "@phosphor-icons/react"; import { Link } from "react-router-dom"; import { useMatch } from "react-router-dom"; +import { ToolTipWrapper } from "../Footer"; export default function SettingsButton() { const isInSettings = !!useMatch("/settings/*"); @@ -12,22 +13,32 @@ export default function SettingsButton() { if (isInSettings) return ( - - - + + + + + ); return ( - - - + + + + + ); } diff --git a/frontend/src/components/SettingsSidebar/index.jsx b/frontend/src/components/SettingsSidebar/index.jsx index 6b8f79e5..2d59d0ff 100644 --- a/frontend/src/components/SettingsSidebar/index.jsx +++ b/frontend/src/components/SettingsSidebar/index.jsx @@ -329,7 +329,7 @@ const SidebarOptions = ({ user = null }) => (
From bea36d65a076a5ba2c5b849e6b12edafb68f63f4 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Sat, 18 May 2024 21:30:33 -0700 Subject: [PATCH 21/55] General Workspace settings UI updates (#1452) General Workspace settings updates 05/17 - Move vector count to vector database - Modify hint on LLM Temperature --- .../ChatSettings/ChatTemperatureSettings/index.jsx | 14 +++++++++----- .../WorkspaceSettings/GeneralAppearance/index.jsx | 2 -- .../VectorCount/index.jsx | 3 --- .../WorkspaceSettings/VectorDatabase/index.jsx | 6 +++++- 4 files changed, 14 insertions(+), 11 deletions(-) rename frontend/src/pages/WorkspaceSettings/{GeneralAppearance => VectorDatabase}/VectorCount/index.jsx (88%) diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx index 5cbcdc3b..08565f58 100644 --- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx @@ -20,19 +20,23 @@ export default function ChatTemperatureSettings({ LLM Temperature

- This setting controls how "random" or dynamic your chat - responses will be. + This setting controls how "creative" your LLM responses will + be.
- The higher the number (1.0 maximum) the more random and incoherent. + The higher the number the more creative. For some models this can lead + to incoherent responses when set too high.
- Recommended: {defaults.temp} +
+ + Most LLMs have various acceptable ranges of valid values. Consult + your LLM provider for that information. +

e.target.blur()} defaultValue={workspace?.openAiTemp ?? defaults.temp} diff --git a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/index.jsx b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/index.jsx index 5e4053f0..101a3a9b 100644 --- a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/index.jsx @@ -2,7 +2,6 @@ import Workspace from "@/models/workspace"; import { castToType } from "@/utils/types"; import showToast from "@/utils/toast"; import { useEffect, useRef, useState } from "react"; -import VectorCount from "./VectorCount"; import WorkspaceName from "./WorkspaceName"; import SuggestedChatMessages from "./SuggestedChatMessages"; import DeleteWorkspace from "./DeleteWorkspace"; @@ -51,7 +50,6 @@ export default function GeneralInfo({ slug }) { onSubmit={handleUpdate} className="w-1/2 flex flex-col gap-y-6" > -

Number of vectors

-

- Total number of vectors in your vector database. -

{totalVectors}

diff --git a/frontend/src/pages/WorkspaceSettings/VectorDatabase/index.jsx b/frontend/src/pages/WorkspaceSettings/VectorDatabase/index.jsx index 0a9a0e87..97d63291 100644 --- a/frontend/src/pages/WorkspaceSettings/VectorDatabase/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/VectorDatabase/index.jsx @@ -6,6 +6,7 @@ import VectorDBIdentifier from "./VectorDBIdentifier"; import MaxContextSnippets from "./MaxContextSnippets"; import DocumentSimilarityThreshold from "./DocumentSimilarityThreshold"; import ResetDatabase from "./ResetDatabase"; +import VectorCount from "./VectorCount"; export default function VectorDatabase({ workspace }) { const [hasChanges, setHasChanges] = useState(false); @@ -38,7 +39,10 @@ export default function VectorDatabase({ workspace }) { onSubmit={handleUpdate} className="w-1/2 flex flex-col gap-y-6" > - +
+ + +
Date: Sun, 19 May 2024 19:47:47 +0200 Subject: [PATCH 22/55] Add API endpoint for updating pin status (#1449) --- server/endpoints/api/workspace/index.js | 67 +++++++++++++++++++++++++ server/swagger/openapi.json | 67 +++++++++++++++++++++++++ 2 files changed, 134 insertions(+) diff --git a/server/endpoints/api/workspace/index.js b/server/endpoints/api/workspace/index.js index e7ea17d0..7cd2dd47 100644 --- a/server/endpoints/api/workspace/index.js +++ b/server/endpoints/api/workspace/index.js @@ -447,6 +447,73 @@ function apiWorkspaceEndpoints(app) { } ); + app.post( + "/v1/workspace/:slug/update-pin", + [validApiKey], + async (request, response) => { + /* + #swagger.tags = ['Workspaces'] + #swagger.description = 'Add or remove pin from a document in a workspace by its unique slug.' + #swagger.path = '/workspace/{slug}/update-pin' + #swagger.parameters['slug'] = { + in: 'path', + description: 'Unique slug of workspace to find', + required: true, + type: 'string' + } + #swagger.requestBody = { + description: 'JSON object with the document path and pin status to update.', + required: true, + type: 'object', + content: { + "application/json": { + example: { + docPath: "custom-documents/my-pdf.pdf-hash.json", + pinStatus: true + } + } + } + } + #swagger.responses[200] = { + description: 'OK', + content: { + "application/json": { + schema: { + type: 'object', + example: { + message: 'Pin status updated successfully' + } + } + } + } + } + #swagger.responses[404] = { + description: 'Document not found' + } + #swagger.responses[500] = { + description: 'Internal Server Error' + } + */ + try { + const { slug = null } = request.params; + const { docPath, pinStatus = false } = reqBody(request); + const workspace = await Workspace.get({ slug }); + + const document = await Document.get({ + workspaceId: workspace.id, + docpath: docPath, + }); + if (!document) return response.sendStatus(404).end(); + + await Document.update(document.id, { pinned: pinStatus }); + return response.status(200).json({ message: 'Pin status updated successfully' }).end(); + } catch (error) { + console.error("Error processing the pin status update:", error); + return response.status(500).end(); + } + } + ); + app.post( "/v1/workspace/:slug/chat", [validApiKey], diff --git a/server/swagger/openapi.json b/server/swagger/openapi.json index e0ee35a5..b98891c9 100644 --- a/server/swagger/openapi.json +++ b/server/swagger/openapi.json @@ -1999,6 +1999,73 @@ } } } + },"/v1/workspace/{slug}/update-pin": { + "post": { + "tags": [ + "Workspaces" + ], + "description": "Add or remove pin from a document in a workspace by its unique slug.", + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique slug of workspace to find" + }, + { + "name": "Authorization", + "in": "header", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "message": "Pin status updated successfully" + } + } + } + } + }, + "404": { + "description": "Document not found" + }, + "500": { + "description": "Internal Server Error" + } + }, + "requestBody": { + "description": "JSON object with the document path and pin status to update.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docPath": { + "type": "string", + "example": "custom-documents/my-pdf.pdf-hash.json" + }, + "pinStatus": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } }, "/v1/workspace/{slug}/chat": { "post": { From 5bf4b4db58040e367c3ce5a76d4f482aa7dd1a11 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Sun, 19 May 2024 11:20:23 -0700 Subject: [PATCH 23/55] [FEAT] Add support for Voyage AI embedder (#1401) * add support for voyageai embedder * remove unneeded import * linting * Add ENV examples Update how chunks are processed for Voyage use correct langchain import Add data handling --------- Co-authored-by: Timothy Carambat --- docker/.env.example | 4 ++ .../VoyageAiOptions/index.jsx | 50 ++++++++++++++++++ .../src/media/embeddingprovider/voyageai.png | Bin 0 -> 20060 bytes .../EmbeddingPreference/index.jsx | 10 ++++ .../Steps/DataHandling/index.jsx | 9 ++++ server/.env.example | 4 ++ server/endpoints/api/workspace/index.js | 9 ++-- server/models/systemSettings.js | 3 ++ server/swagger/openapi.json | 22 ++++---- .../utils/EmbeddingEngines/voyageAi/index.js | 45 ++++++++++++++++ server/utils/helpers/index.js | 3 ++ server/utils/helpers/updateENV.js | 7 +++ 12 files changed, 150 insertions(+), 16 deletions(-) create mode 100644 frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx create mode 100644 frontend/src/media/embeddingprovider/voyageai.png create mode 100644 server/utils/EmbeddingEngines/voyageAi/index.js diff --git a/docker/.env.example b/docker/.env.example index 7fedf944..23789af4 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -124,6 +124,10 @@ GID='1000' # COHERE_API_KEY= # EMBEDDING_MODEL_PREF='embed-english-v3.0' +# EMBEDDING_ENGINE='voyageai' +# VOYAGEAI_API_KEY= +# EMBEDDING_MODEL_PREF='voyage-large-2-instruct' + ########################################### ######## Vector Database Selection ######## ########################################### diff --git a/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx new file mode 100644 index 00000000..33ce693d --- /dev/null +++ b/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx @@ -0,0 +1,50 @@ +export default function VoyageAiOptions({ settings }) { + return ( +
+
+
+ + +
+
+ + +
+
+
+ ); +} diff --git a/frontend/src/media/embeddingprovider/voyageai.png b/frontend/src/media/embeddingprovider/voyageai.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd57eaac410eebba278abadf2a2ed882de7959c GIT binary patch literal 20060 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 G^gjUK3_@f8 literal 0 HcmV?d00001 diff --git a/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx b/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx index 8f234b5a..5a0f51c1 100644 --- a/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx +++ b/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx @@ -10,6 +10,8 @@ import LocalAiLogo from "@/media/llmprovider/localai.png"; import OllamaLogo from "@/media/llmprovider/ollama.png"; import LMStudioLogo from "@/media/llmprovider/lmstudio.png"; import CohereLogo from "@/media/llmprovider/cohere.png"; +import VoyageAiLogo from "@/media/embeddingprovider/voyageai.png"; + import PreLoader from "@/components/Preloader"; import ChangeWarningModal from "@/components/ChangeWarning"; import OpenAiOptions from "@/components/EmbeddingSelection/OpenAiOptions"; @@ -19,6 +21,7 @@ import NativeEmbeddingOptions from "@/components/EmbeddingSelection/NativeEmbedd import OllamaEmbeddingOptions from "@/components/EmbeddingSelection/OllamaOptions"; import LMStudioEmbeddingOptions from "@/components/EmbeddingSelection/LMStudioOptions"; import CohereEmbeddingOptions from "@/components/EmbeddingSelection/CohereOptions"; +import VoyageAiOptions from "@/components/EmbeddingSelection/VoyageAiOptions"; import EmbedderItem from "@/components/EmbeddingSelection/EmbedderItem"; import { CaretUpDown, MagnifyingGlass, X } from "@phosphor-icons/react"; @@ -78,6 +81,13 @@ const EMBEDDERS = [ options: (settings) => , description: "Run powerful embedding models from Cohere.", }, + { + name: "Voyage AI", + value: "voyageai", + logo: VoyageAiLogo, + options: (settings) => , + description: "Run powerful embedding models from Voyage AI.", + }, ]; export default function GeneralEmbeddingPreference() { diff --git a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx index b6ae8cb2..35358636 100644 --- a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx +++ b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx @@ -28,6 +28,8 @@ import LanceDbLogo from "@/media/vectordbs/lancedb.png"; import WeaviateLogo from "@/media/vectordbs/weaviate.png"; import QDrantLogo from "@/media/vectordbs/qdrant.png"; import MilvusLogo from "@/media/vectordbs/milvus.png"; +import VoyageAiLogo from "@/media/embeddingprovider/voyageai.png"; + import React, { useState, useEffect } from "react"; import paths from "@/utils/paths"; import { useNavigate } from "react-router-dom"; @@ -292,6 +294,13 @@ export const EMBEDDING_ENGINE_PRIVACY = { ], logo: CohereLogo, }, + voyageai: { + name: "Voyage AI", + description: [ + "Data sent to Voyage AI's servers is shared according to the terms of service of voyageai.com.", + ], + logo: VoyageAiLogo, + }, }; export default function DataHandling({ setHeader, setForwardBtn, setBackBtn }) { diff --git a/server/.env.example b/server/.env.example index 4be9ab75..e38250be 100644 --- a/server/.env.example +++ b/server/.env.example @@ -121,6 +121,10 @@ JWT_SECRET="my-random-string-for-seeding" # Please generate random string at lea # COHERE_API_KEY= # EMBEDDING_MODEL_PREF='embed-english-v3.0' +# EMBEDDING_ENGINE='voyageai' +# VOYAGEAI_API_KEY= +# EMBEDDING_MODEL_PREF='voyage-large-2-instruct' + ########################################### ######## Vector Database Selection ######## ########################################### diff --git a/server/endpoints/api/workspace/index.js b/server/endpoints/api/workspace/index.js index 7cd2dd47..cbbf1f23 100644 --- a/server/endpoints/api/workspace/index.js +++ b/server/endpoints/api/workspace/index.js @@ -498,15 +498,18 @@ function apiWorkspaceEndpoints(app) { const { slug = null } = request.params; const { docPath, pinStatus = false } = reqBody(request); const workspace = await Workspace.get({ slug }); - + const document = await Document.get({ workspaceId: workspace.id, docpath: docPath, }); if (!document) return response.sendStatus(404).end(); - + await Document.update(document.id, { pinned: pinStatus }); - return response.status(200).json({ message: 'Pin status updated successfully' }).end(); + return response + .status(200) + .json({ message: "Pin status updated successfully" }) + .end(); } catch (error) { console.error("Error processing the pin status update:", error); return response.status(500).end(); diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index c8e239f1..a5bb6a23 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -426,6 +426,9 @@ const SystemSettings = { // Cohere API Keys CohereApiKey: !!process.env.COHERE_API_KEY, CohereModelPref: process.env.COHERE_MODEL_PREF, + + // VoyageAi API Keys + VoyageAiApiKey: !!process.env.VOYAGEAI_API_KEY, }; }, diff --git a/server/swagger/openapi.json b/server/swagger/openapi.json index b98891c9..8616943c 100644 --- a/server/swagger/openapi.json +++ b/server/swagger/openapi.json @@ -1999,7 +1999,8 @@ } } } - },"/v1/workspace/{slug}/update-pin": { + }, + "/workspace/{slug}/update-pin": { "post": { "tags": [ "Workspaces" @@ -2037,6 +2038,9 @@ } } }, + "403": { + "description": "Forbidden" + }, "404": { "description": "Document not found" }, @@ -2047,20 +2051,12 @@ "requestBody": { "description": "JSON object with the document path and pin status to update.", "required": true, + "type": "object", "content": { "application/json": { - "schema": { - "type": "object", - "properties": { - "docPath": { - "type": "string", - "example": "custom-documents/my-pdf.pdf-hash.json" - }, - "pinStatus": { - "type": "boolean", - "example": true - } - } + "example": { + "docPath": "custom-documents/my-pdf.pdf-hash.json", + "pinStatus": true } } } diff --git a/server/utils/EmbeddingEngines/voyageAi/index.js b/server/utils/EmbeddingEngines/voyageAi/index.js new file mode 100644 index 00000000..b25d3208 --- /dev/null +++ b/server/utils/EmbeddingEngines/voyageAi/index.js @@ -0,0 +1,45 @@ +class VoyageAiEmbedder { + constructor() { + if (!process.env.VOYAGEAI_API_KEY) + throw new Error("No Voyage AI API key was set."); + + const { + VoyageEmbeddings, + } = require("@langchain/community/embeddings/voyage"); + const voyage = new VoyageEmbeddings({ + apiKey: process.env.VOYAGEAI_API_KEY, + }); + + this.voyage = voyage; + this.model = process.env.EMBEDDING_MODEL_PREF || "voyage-large-2-instruct"; + + // Limit of how many strings we can process in a single pass to stay with resource or network limits + this.batchSize = 128; // Voyage AI's limit per request is 128 https://docs.voyageai.com/docs/rate-limits#use-larger-batches + this.embeddingMaxChunkLength = 4000; // https://docs.voyageai.com/docs/embeddings - assume a token is roughly 4 letters with some padding + } + + async embedTextInput(textInput) { + const result = await this.voyage.embedDocuments( + Array.isArray(textInput) ? textInput : [textInput], + { modelName: this.model } + ); + return result || []; + } + + async embedChunks(textChunks = []) { + try { + const embeddings = await this.voyage.embedDocuments(textChunks, { + modelName: this.model, + batchSize: this.batchSize, + }); + return embeddings; + } catch (error) { + console.error("Voyage AI Failed to embed:", error); + throw error; + } + } +} + +module.exports = { + VoyageAiEmbedder, +}; diff --git a/server/utils/helpers/index.js b/server/utils/helpers/index.js index d9a1ba09..e60202a6 100644 --- a/server/utils/helpers/index.js +++ b/server/utils/helpers/index.js @@ -125,6 +125,9 @@ function getEmbeddingEngineSelection() { case "cohere": const { CohereEmbedder } = require("../EmbeddingEngines/cohere"); return new CohereEmbedder(); + case "voyageai": + const { VoyageAiEmbedder } = require("../EmbeddingEngines/voyageAi"); + return new VoyageAiEmbedder(); default: return new NativeEmbedder(); } diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index 48c98e95..40154163 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -350,6 +350,12 @@ const KEY_MAPPING = { checks: [isNotEmpty], }, + // VoyageAi Options + VoyageAiApiKey: { + envKey: "VOYAGEAI_API_KEY", + checks: [isNotEmpty], + }, + // Whisper (transcription) providers WhisperProvider: { envKey: "WHISPER_PROVIDER", @@ -545,6 +551,7 @@ function supportedEmbeddingModel(input = "") { "ollama", "lmstudio", "cohere", + "voyageai", ]; return supported.includes(input) ? null From 47056702382ed208c02a3b26d9440b5ed2ec4e80 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Sun, 19 May 2024 11:51:08 -0700 Subject: [PATCH 24/55] Update Github connector with more obvious alert of Github connector limitations (#1457) --- .../Connectors/Github/index.jsx | 118 ++++++++++++------ 1 file changed, 78 insertions(+), 40 deletions(-) diff --git a/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/Github/index.jsx b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/Github/index.jsx index de6ed77e..00b1cc46 100644 --- a/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/Github/index.jsx +++ b/frontend/src/components/Modals/MangeWorkspace/DataConnectors/Connectors/Github/index.jsx @@ -3,7 +3,7 @@ import System from "@/models/system"; import showToast from "@/utils/toast"; import pluralize from "pluralize"; import { TagsInput } from "react-tag-input-component"; -import { Warning } from "@phosphor-icons/react"; +import { Info, Warning } from "@phosphor-icons/react"; import { Tooltip } from "react-tooltip"; const DEFAULT_BRANCHES = ["main", "master"]; @@ -92,45 +92,7 @@ export default function GithubOptions() {

Github Access Token

{" "}

optional - {!accessToken && ( - - )} - -

- Without a{" "} - e.stopPropagation()} - > - Personal Access Token - - , the GitHub API may limit the number of files that - can be collected due to rate limits. You can{" "} - e.stopPropagation()} - > - create a temporary Access Token - {" "} - to avoid this issue. -

- +

@@ -180,6 +142,7 @@ export default function GithubOptions() {

+
diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index a5bb6a23..70913fd9 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -354,6 +354,8 @@ const SystemSettings = { // Gemini Keys GeminiLLMApiKey: !!process.env.GEMINI_API_KEY, GeminiLLMModelPref: process.env.GEMINI_LLM_MODEL_PREF || "gemini-pro", + GeminiSafetySetting: + process.env.GEMINI_SAFETY_SETTING || "BLOCK_MEDIUM_AND_ABOVE", // LMStudio Keys LMStudioBasePath: process.env.LMSTUDIO_BASE_PATH, diff --git a/server/utils/AiProviders/gemini/index.js b/server/utils/AiProviders/gemini/index.js index 3dd307af..0c2cc769 100644 --- a/server/utils/AiProviders/gemini/index.js +++ b/server/utils/AiProviders/gemini/index.js @@ -29,6 +29,7 @@ class GeminiLLM { this.embedder = embedder ?? new NativeEmbedder(); this.defaultTemp = 0.7; // not used for Gemini + this.safetyThreshold = this.#fetchSafetyThreshold(); } #appendContext(contextTexts = []) { @@ -43,6 +44,41 @@ class GeminiLLM { ); } + // BLOCK_NONE can be a special candidate for some fields + // https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-attributes#how_to_remove_automated_response_blocking_for_select_safety_attributes + // so if you are wondering why BLOCK_NONE still failed, the link above will explain why. + #fetchSafetyThreshold() { + const threshold = + process.env.GEMINI_SAFETY_SETTING ?? "BLOCK_MEDIUM_AND_ABOVE"; + const safetyThresholds = [ + "BLOCK_NONE", + "BLOCK_ONLY_HIGH", + "BLOCK_MEDIUM_AND_ABOVE", + "BLOCK_LOW_AND_ABOVE", + ]; + return safetyThresholds.includes(threshold) + ? threshold + : "BLOCK_MEDIUM_AND_ABOVE"; + } + + #safetySettings() { + return [ + { + category: "HARM_CATEGORY_HATE_SPEECH", + threshold: this.safetyThreshold, + }, + { + category: "HARM_CATEGORY_SEXUALLY_EXPLICIT", + threshold: this.safetyThreshold, + }, + { category: "HARM_CATEGORY_HARASSMENT", threshold: this.safetyThreshold }, + { + category: "HARM_CATEGORY_DANGEROUS_CONTENT", + threshold: this.safetyThreshold, + }, + ]; + } + streamingEnabled() { return "streamGetChatCompletion" in this; } @@ -143,6 +179,7 @@ class GeminiLLM { )?.content; const chatThread = this.gemini.startChat({ history: this.formatMessages(messages), + safetySettings: this.#safetySettings(), }); const result = await chatThread.sendMessage(prompt); const response = result.response; @@ -164,6 +201,7 @@ class GeminiLLM { )?.content; const chatThread = this.gemini.startChat({ history: this.formatMessages(messages), + safetySettings: this.#safetySettings(), }); const responseStream = await chatThread.sendMessageStream(prompt); if (!responseStream.stream) diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index 40154163..c8811c9d 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -52,6 +52,10 @@ const KEY_MAPPING = { envKey: "GEMINI_LLM_MODEL_PREF", checks: [isNotEmpty, validGeminiModel], }, + GeminiSafetySetting: { + envKey: "GEMINI_SAFETY_SETTING", + checks: [validGeminiSafetySetting], + }, // LMStudio Settings LMStudioBasePath: { @@ -528,6 +532,18 @@ function validGeminiModel(input = "") { : `Invalid Model type. Must be one of ${validModels.join(", ")}.`; } +function validGeminiSafetySetting(input = "") { + const validModes = [ + "BLOCK_NONE", + "BLOCK_ONLY_HIGH", + "BLOCK_MEDIUM_AND_ABOVE", + "BLOCK_LOW_AND_ABOVE", + ]; + return validModes.includes(input) + ? null + : `Invalid Safety setting. Must be one of ${validModes.join(", ")}.`; +} + function validAnthropicModel(input = "") { const validModels = [ "claude-instant-1.2", From 0125390281f0f5ac443a4455447b9099978e6ef6 Mon Sep 17 00:00:00 2001 From: cosark <121065588+cosark@users.noreply.github.com> Date: Tue, 21 May 2024 12:09:55 -0700 Subject: [PATCH 27/55] Adding one-click deploy button for RepoCloud.io to README.md (#1472) Update README.md Adding button enabling community access to one-click deploy template for self-hosting on RepoCloud.io --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf50f209..a23c362c 100644 --- a/README.md +++ b/README.md @@ -140,9 +140,9 @@ This monorepo consists of three main sections: ## 🛳 Self Hosting Mintplex Labs & the community maintain a number of deployment methods, scripts, and templates that you can use to run AnythingLLM locally. Refer to the table below to read how to deploy on your preferred environment or to automatically deploy. -| Docker | AWS | GCP | Digital Ocean | Render.com | +| Docker | AWS | GCP | Digital Ocean | Render.com | RepoCloud | |----------------------------------------|----:|-----|---------------|------------| -| [![Deploy on Docker][docker-btn]][docker-deploy] | [![Deploy on AWS][aws-btn]][aws-deploy] | [![Deploy on GCP][gcp-btn]][gcp-deploy] | [![Deploy on DigitalOcean][do-btn]][do-deploy] | [![Deploy on Render.com][render-btn]][render-deploy] | +| [![Deploy on Docker][docker-btn]][docker-deploy] | [![Deploy on AWS][aws-btn]][aws-deploy] | [![Deploy on GCP][gcp-btn]][gcp-deploy] | [![Deploy on DigitalOcean][do-btn]][do-deploy] | [![Deploy on Render.com][render-btn]][render-deploy] | [![Deploy on RepoCloud][repocloud-btn]][repocloud-deploy] | | Railway | | --------------------------------------------------- | @@ -235,3 +235,5 @@ This project is [MIT](./LICENSE) licensed. [render-deploy]: https://render.com/deploy?repo=https://github.com/Mintplex-Labs/anything-llm&branch=render [railway-btn]: https://railway.app/button.svg [railway-deploy]: https://railway.app/template/HNSCS1?referralCode=WFgJkn +[repocloud-btn]: https://d16t0pc4846x52.cloudfront.net/deploylobe.svg +[repocloud-deploy]: https://repocloud.io/details/?app_id=276 From 4ede4c71fcf6be959d520303f7acbe2a896fa89f Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Tue, 21 May 2024 14:14:17 -0500 Subject: [PATCH 28/55] patch: Readme deployment table --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a23c362c..dfedb4f9 100644 --- a/README.md +++ b/README.md @@ -140,13 +140,13 @@ This monorepo consists of three main sections: ## 🛳 Self Hosting Mintplex Labs & the community maintain a number of deployment methods, scripts, and templates that you can use to run AnythingLLM locally. Refer to the table below to read how to deploy on your preferred environment or to automatically deploy. -| Docker | AWS | GCP | Digital Ocean | Render.com | RepoCloud | +| Docker | AWS | GCP | Digital Ocean | Render.com | |----------------------------------------|----:|-----|---------------|------------| -| [![Deploy on Docker][docker-btn]][docker-deploy] | [![Deploy on AWS][aws-btn]][aws-deploy] | [![Deploy on GCP][gcp-btn]][gcp-deploy] | [![Deploy on DigitalOcean][do-btn]][do-deploy] | [![Deploy on Render.com][render-btn]][render-deploy] | [![Deploy on RepoCloud][repocloud-btn]][repocloud-deploy] | +| [![Deploy on Docker][docker-btn]][docker-deploy] | [![Deploy on AWS][aws-btn]][aws-deploy] | [![Deploy on GCP][gcp-btn]][gcp-deploy] | [![Deploy on DigitalOcean][do-btn]][do-deploy] | [![Deploy on Render.com][render-btn]][render-deploy] | -| Railway | -| --------------------------------------------------- | -| [![Deploy on Railway][railway-btn]][railway-deploy] | +| Railway | RepoCloud | +| --- | --- | +| [![Deploy on Railway][railway-btn]][railway-deploy] | [![Deploy on RepoCloud][repocloud-btn]][repocloud-deploy] | [or set up a production AnythingLLM instance without Docker →](./BARE_METAL.md) From b23cb1a90fd5ebe062a4567f1e68cd7200fbcac7 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Tue, 21 May 2024 14:43:39 -0500 Subject: [PATCH 29/55] Improve RAG results via chunkHeader append (#1473) --- .../ChatHistory/Citation/index.jsx | 7 ++++- server/utils/TextSplitter/index.js | 26 +++++++++++++++++-- server/utils/vectorDbProviders/astra/index.js | 4 +++ .../utils/vectorDbProviders/chroma/index.js | 4 +++ server/utils/vectorDbProviders/lance/index.js | 4 +++ .../utils/vectorDbProviders/milvus/index.js | 4 +++ .../utils/vectorDbProviders/pinecone/index.js | 4 +++ .../utils/vectorDbProviders/qdrant/index.js | 4 +++ .../utils/vectorDbProviders/weaviate/index.js | 4 +++ .../utils/vectorDbProviders/zilliz/index.js | 4 +++ 10 files changed, 62 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx index a3a579c9..de4c4f72 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx @@ -115,6 +115,11 @@ function SkeletonLine() { ); } +function omitChunkHeader(text) { + if (!text.startsWith("")) return text; + return text.split("")[1].trim(); +} + function CitationDetailModal({ source, onClose }) { const { references, title, chunks } = source; const { isUrl, text: webpageUrl, href: linkTo } = parseChunkSource(source); @@ -167,7 +172,7 @@ function CitationDetailModal({ source, onClose }) {

- {HTMLDecode(text)} + {HTMLDecode(omitChunkHeader(text))}

{!!score && ( diff --git a/server/utils/TextSplitter/index.js b/server/utils/TextSplitter/index.js index f79fb87f..4162fa74 100644 --- a/server/utils/TextSplitter/index.js +++ b/server/utils/TextSplitter/index.js @@ -17,6 +17,7 @@ class TextSplitter { Config: { chunkSize: number, chunkOverlap: number, + chunkHeaderMeta: object | null, // Gets appended to top of each chunk as metadata } ------ */ @@ -44,6 +45,18 @@ class TextSplitter { return prefValue > limit ? limit : prefValue; } + stringifyHeader() { + if (!this.config.chunkHeaderMeta) return null; + let content = ""; + Object.entries(this.config.chunkHeaderMeta).map(([key, value]) => { + if (!key || !value) return; + content += `${key}: ${value}\n`; + }); + + if (!content) return null; + return `\n${content}\n\n`; + } + #setSplitter(config = {}) { // if (!config?.splitByFilename) {// TODO do something when specific extension is present? } return new RecursiveSplitter({ @@ -51,6 +64,7 @@ class TextSplitter { chunkOverlap: isNaN(config?.chunkOverlap) ? 20 : Number(config?.chunkOverlap), + chunkHeader: this.stringifyHeader(), }); } @@ -61,11 +75,12 @@ class TextSplitter { // Wrapper for Langchain default RecursiveCharacterTextSplitter class. class RecursiveSplitter { - constructor({ chunkSize, chunkOverlap }) { + constructor({ chunkSize, chunkOverlap, chunkHeader = null }) { const { RecursiveCharacterTextSplitter, } = require("@langchain/textsplitters"); this.log(`Will split with`, { chunkSize, chunkOverlap }); + this.chunkHeader = chunkHeader; this.engine = new RecursiveCharacterTextSplitter({ chunkSize, chunkOverlap, @@ -77,7 +92,14 @@ class RecursiveSplitter { } async _splitText(documentText) { - return this.engine.splitText(documentText); + if (!this.chunkHeader) return this.engine.splitText(documentText); + const strings = await this.engine.splitText(documentText); + const documents = await this.engine.createDocuments(strings, [], { + chunkHeader: this.chunkHeader, + }); + return documents + .filter((doc) => !!doc.pageContent) + .map((doc) => doc.pageContent); } } diff --git a/server/utils/vectorDbProviders/astra/index.js b/server/utils/vectorDbProviders/astra/index.js index 50e8ba34..30ff2bbf 100644 --- a/server/utils/vectorDbProviders/astra/index.js +++ b/server/utils/vectorDbProviders/astra/index.js @@ -157,6 +157,10 @@ const AstraDB = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/chroma/index.js b/server/utils/vectorDbProviders/chroma/index.js index d17883b7..90956a94 100644 --- a/server/utils/vectorDbProviders/chroma/index.js +++ b/server/utils/vectorDbProviders/chroma/index.js @@ -200,6 +200,10 @@ const Chroma = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/lance/index.js b/server/utils/vectorDbProviders/lance/index.js index db266295..54c12c04 100644 --- a/server/utils/vectorDbProviders/lance/index.js +++ b/server/utils/vectorDbProviders/lance/index.js @@ -198,6 +198,10 @@ const LanceDb = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/milvus/index.js b/server/utils/vectorDbProviders/milvus/index.js index 27309233..d720c265 100644 --- a/server/utils/vectorDbProviders/milvus/index.js +++ b/server/utils/vectorDbProviders/milvus/index.js @@ -192,6 +192,10 @@ const Milvus = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/pinecone/index.js b/server/utils/vectorDbProviders/pinecone/index.js index 9b68ef1b..d1aeb2f6 100644 --- a/server/utils/vectorDbProviders/pinecone/index.js +++ b/server/utils/vectorDbProviders/pinecone/index.js @@ -143,6 +143,10 @@ const PineconeDB = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/qdrant/index.js b/server/utils/vectorDbProviders/qdrant/index.js index e8511d0b..ff55c06f 100644 --- a/server/utils/vectorDbProviders/qdrant/index.js +++ b/server/utils/vectorDbProviders/qdrant/index.js @@ -217,6 +217,10 @@ const QDrant = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/weaviate/index.js b/server/utils/vectorDbProviders/weaviate/index.js index f19329a4..978e2557 100644 --- a/server/utils/vectorDbProviders/weaviate/index.js +++ b/server/utils/vectorDbProviders/weaviate/index.js @@ -259,6 +259,10 @@ const Weaviate = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); diff --git a/server/utils/vectorDbProviders/zilliz/index.js b/server/utils/vectorDbProviders/zilliz/index.js index a7ee0438..ebb59157 100644 --- a/server/utils/vectorDbProviders/zilliz/index.js +++ b/server/utils/vectorDbProviders/zilliz/index.js @@ -193,6 +193,10 @@ const Zilliz = { { label: "text_splitter_chunk_overlap" }, 20 ), + chunkHeaderMeta: { + sourceDocument: metadata?.title, + published: metadata?.published || "unknown", + }, }); const textChunks = await textSplitter.splitText(pageContent); From 196c4c13c4889cf9d8bb6e031e41b43ae31ee4f7 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Tue, 21 May 2024 21:30:37 -0500 Subject: [PATCH 30/55] Fix Swagger docs (#1479) --- server/swagger/index.js | 6 +- server/swagger/init.js | 22 +++ server/swagger/openapi.json | 319 +++--------------------------------- 3 files changed, 48 insertions(+), 299 deletions(-) diff --git a/server/swagger/index.js b/server/swagger/index.js index 9ffdb2b9..12c54cfa 100644 --- a/server/swagger/index.js +++ b/server/swagger/index.js @@ -19,10 +19,10 @@ function waitForElm(selector) { } // Force change the Swagger logo in the header -waitForElm('img[alt="Swagger UI"]').then((elm) => { +waitForElm('.topbar-wrapper').then((elm) => { if (window.SWAGGER_DOCS_ENV === 'development') { - elm.src = 'http://localhost:3000/public/anything-llm.png' + elm.innerHTML = `` } else { - elm.src = `${window.location.origin}/anything-llm.png` + elm.innerHTML = `` } }); \ No newline at end of file diff --git a/server/swagger/init.js b/server/swagger/init.js index b68e3249..4707b582 100644 --- a/server/swagger/init.js +++ b/server/swagger/init.js @@ -40,6 +40,28 @@ const endpointsFiles = [ swaggerAutogen(outputFile, endpointsFiles, doc) .then(({ data }) => { + + // Remove Authorization parameters from arguments. + for (const path of Object.keys(data.paths)) { + if (data.paths[path].hasOwnProperty('get')) { + let parameters = data.paths[path].get?.parameters || []; + parameters = parameters.filter((arg) => arg.name !== 'Authorization'); + data.paths[path].get.parameters = parameters; + } + + if (data.paths[path].hasOwnProperty('post')) { + let parameters = data.paths[path].post?.parameters || []; + parameters = parameters.filter((arg) => arg.name !== 'Authorization'); + data.paths[path].post.parameters = parameters; + } + + if (data.paths[path].hasOwnProperty('delete')) { + let parameters = data.paths[path].delete?.parameters || []; + parameters = parameters.filter((arg) => arg.name !== 'Authorization'); + data.paths[path].delete.parameters = parameters; + } + } + const openApiSpec = { ...data, servers: [{ diff --git a/server/swagger/openapi.json b/server/swagger/openapi.json index 8616943c..ed6f1533 100644 --- a/server/swagger/openapi.json +++ b/server/swagger/openapi.json @@ -17,15 +17,7 @@ "Authentication" ], "description": "Verify the attached Authentication header contains a valid API token.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "Valid auth token was found.", @@ -64,15 +56,7 @@ "Admin" ], "description": "Check to see if the instance is in multi-user-mode first. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -111,15 +95,7 @@ "Admin" ], "description": "Check to see if the instance is in multi-user-mode first. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -169,15 +145,7 @@ "Admin" ], "description": "Create a new user with username and password. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -250,13 +218,6 @@ "type": "string" }, "description": "id of the user in the database." - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -326,13 +287,6 @@ "type": "string" }, "description": "id of the user in the database." - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -380,15 +334,7 @@ "Admin" ], "description": "List all existing invitations to instance regardless of status. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -440,15 +386,7 @@ "Admin" ], "description": "Create a new invite code for someone to use to register with instance. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -523,13 +461,6 @@ "type": "string" }, "description": "id of the invite in the database." - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -586,13 +517,6 @@ "type": "string" }, "description": "id of the workspace in the database." - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -657,15 +581,7 @@ "Admin" ], "description": "All chats in the system ordered by most recent. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -720,15 +636,7 @@ "Admin" ], "description": "Show all multi-user preferences for instance. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -775,15 +683,7 @@ "Admin" ], "description": "Update multi-user preferences for instance. Methods are disabled until multi user mode is enabled via the UI.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -843,15 +743,7 @@ "Documents" ], "description": "Upload a new file to AnythingLLM to be parsed and prepared for embedding.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -927,15 +819,7 @@ "Documents" ], "description": "Upload a valid URL for AnythingLLM to scrape and prepare for embedding.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1009,15 +893,7 @@ "Documents" ], "description": "Upload a file by specifying its raw text content and metadata values without having to upload a file.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1099,15 +975,7 @@ "Documents" ], "description": "List of all locally-stored documents in instance", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1162,15 +1030,7 @@ "Documents" ], "description": "Check available filetypes and MIMEs that can be uploaded.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1232,15 +1092,7 @@ "Documents" ], "description": "Get the known available metadata schema for when doing a raw-text upload and the acceptable type of value for each key.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1296,13 +1148,6 @@ "type": "string" }, "description": "Unique document name to find (name in /documents)" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -1362,15 +1207,7 @@ "Documents" ], "description": "Create a new folder inside the documents storage directory.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1428,15 +1265,7 @@ "Documents" ], "description": "Move files within the documents storage directory.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1499,15 +1328,7 @@ "Workspaces" ], "description": "Create a new workspace", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1571,15 +1392,7 @@ "Workspaces" ], "description": "List all current workspaces", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1641,13 +1454,6 @@ "type": "string" }, "description": "Unique slug of workspace to find" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -1708,13 +1514,6 @@ "type": "string" }, "description": "Unique slug of workspace to delete" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -1760,13 +1559,6 @@ "type": "string" }, "description": "Unique slug of workspace to find" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -1848,13 +1640,6 @@ "type": "string" }, "description": "Unique slug of workspace to find" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -1925,13 +1710,6 @@ "type": "string" }, "description": "Unique slug of workspace to find" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -2015,13 +1793,6 @@ "type": "string" }, "description": "Unique slug of workspace to find" - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -2077,13 +1848,6 @@ "schema": { "type": "string" } - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -2161,13 +1925,6 @@ "schema": { "type": "string" } - }, - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } } ], "responses": { @@ -2252,6 +2009,7 @@ "System Settings" ], "description": "Dump all settings to file storage", + "parameters": [], "responses": { "200": { "description": "OK" @@ -2283,15 +2041,7 @@ "System Settings" ], "description": "Get all current system settings that are defined.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -2339,15 +2089,7 @@ "System Settings" ], "description": "Number of all vectors in connected vector database", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -2389,15 +2131,7 @@ "System Settings" ], "description": "Update a system setting or preference.", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -2456,13 +2190,6 @@ ], "description": "Export all of the chats from the system in a known format. Output depends on the type sent. Will be send with the correct header for the output.", "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - }, { "name": "type", "in": "query", From 9f327d015a6beb618d0a6284a97e2bf00282b859 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 09:58:10 -0500 Subject: [PATCH 31/55] update error handling for OpenAI providers --- server/utils/AiProviders/genericOpenAi/index.js | 2 +- server/utils/AiProviders/groq/index.js | 2 +- server/utils/AiProviders/koboldCPP/index.js | 2 +- server/utils/AiProviders/liteLLM/index.js | 2 +- server/utils/AiProviders/openAi/index.js | 2 +- server/utils/AiProviders/openRouter/index.js | 2 +- server/utils/AiProviders/perplexity/index.js | 2 +- server/utils/AiProviders/textGenWebUI/index.js | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/utils/AiProviders/genericOpenAi/index.js b/server/utils/AiProviders/genericOpenAi/index.js index 46b8aefb..8d0c0f34 100644 --- a/server/utils/AiProviders/genericOpenAi/index.js +++ b/server/utils/AiProviders/genericOpenAi/index.js @@ -97,7 +97,7 @@ class GenericOpenAiLLM { max_tokens: this.maxTokens, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/groq/index.js b/server/utils/AiProviders/groq/index.js index 24a430e6..ba081219 100644 --- a/server/utils/AiProviders/groq/index.js +++ b/server/utils/AiProviders/groq/index.js @@ -103,7 +103,7 @@ class GroqLLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/koboldCPP/index.js b/server/utils/AiProviders/koboldCPP/index.js index 90186aab..15163648 100644 --- a/server/utils/AiProviders/koboldCPP/index.js +++ b/server/utils/AiProviders/koboldCPP/index.js @@ -92,7 +92,7 @@ class KoboldCPPLLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/liteLLM/index.js b/server/utils/AiProviders/liteLLM/index.js index 6152ea29..2c7fa823 100644 --- a/server/utils/AiProviders/liteLLM/index.js +++ b/server/utils/AiProviders/liteLLM/index.js @@ -93,7 +93,7 @@ class LiteLLM { max_tokens: parseInt(this.maxTokens), // LiteLLM requires int }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/openAi/index.js b/server/utils/AiProviders/openAi/index.js index 8037d23d..9e55074c 100644 --- a/server/utils/AiProviders/openAi/index.js +++ b/server/utils/AiProviders/openAi/index.js @@ -130,7 +130,7 @@ class OpenAiLLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/openRouter/index.js b/server/utils/AiProviders/openRouter/index.js index bb8cf447..301ed704 100644 --- a/server/utils/AiProviders/openRouter/index.js +++ b/server/utils/AiProviders/openRouter/index.js @@ -142,7 +142,7 @@ class OpenRouterLLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/perplexity/index.js b/server/utils/AiProviders/perplexity/index.js index d3f50de7..d821b2e3 100644 --- a/server/utils/AiProviders/perplexity/index.js +++ b/server/utils/AiProviders/perplexity/index.js @@ -93,7 +93,7 @@ class PerplexityLLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) diff --git a/server/utils/AiProviders/textGenWebUI/index.js b/server/utils/AiProviders/textGenWebUI/index.js index 72f116f8..71d50577 100644 --- a/server/utils/AiProviders/textGenWebUI/index.js +++ b/server/utils/AiProviders/textGenWebUI/index.js @@ -89,7 +89,7 @@ class TextGenWebUILLM { temperature, }) .catch((e) => { - throw new Error(e.response.data.error.message); + throw new Error(e.message); }); if (!result.hasOwnProperty("choices") || result.choices.length === 0) From a256db132dd6f8bad7309655826243090c69fcf0 Mon Sep 17 00:00:00 2001 From: Shixian Sheng Date: Wed, 22 May 2024 11:06:39 -0400 Subject: [PATCH 32/55] Fixed links (#1485) * Update CHROMA_SETUP.md * Update ASTRA_SETUP.md --- server/utils/vectorDbProviders/astra/ASTRA_SETUP.md | 2 +- server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/utils/vectorDbProviders/astra/ASTRA_SETUP.md b/server/utils/vectorDbProviders/astra/ASTRA_SETUP.md index e3749f07..f91885c5 100644 --- a/server/utils/vectorDbProviders/astra/ASTRA_SETUP.md +++ b/server/utils/vectorDbProviders/astra/ASTRA_SETUP.md @@ -10,7 +10,7 @@ **Instructions** -- [Create an Astra account or sign in to an existing Astra account](astra.datastax.com) +- [Create an Astra account or sign in to an existing Astra account](https://astra.datastax.com) - Create an Astra Serverless(Vector) Database. - Make sure DB is in active state. - Get `API ENDPOINT`and `Application Token` from Overview screen diff --git a/server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md b/server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md index 46dac0db..e6d6fee9 100644 --- a/server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md +++ b/server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md @@ -1,6 +1,6 @@ # How to setup a local (or remote) Chroma Vector Database -[Official Chroma Docs](https://docs.trychroma.com/usage-guide#running-chroma-in-clientserver-mode) for reference. +[Official Chroma Docs](https://docs.trychroma.com/guides#running-chroma-in-clientserver-mode) for reference. ### How to get started From 8c5a30db9da64e94033a138e173c846985ce999d Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Wed, 22 May 2024 10:53:49 -0500 Subject: [PATCH 33/55] Support dynamic context length - VoyageAI (#1489) --- .../GeneralSettings/LLMPreference/index.jsx | 9 +++++---- server/utils/EmbeddingEngines/voyageAi/index.js | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx index 5c4b0b2f..70d1d135 100644 --- a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx +++ b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx @@ -394,16 +394,17 @@ export default function GeneralLLMPreference() { >
{`${selectedLLMObject.name}
- {selectedLLMObject.name} + {selectedLLMObject?.name || "None selected"}
- {selectedLLMObject.description} + {selectedLLMObject?.description || + "You need to select an LLM"}
diff --git a/server/utils/EmbeddingEngines/voyageAi/index.js b/server/utils/EmbeddingEngines/voyageAi/index.js index b25d3208..fe2a3964 100644 --- a/server/utils/EmbeddingEngines/voyageAi/index.js +++ b/server/utils/EmbeddingEngines/voyageAi/index.js @@ -15,7 +15,22 @@ class VoyageAiEmbedder { // Limit of how many strings we can process in a single pass to stay with resource or network limits this.batchSize = 128; // Voyage AI's limit per request is 128 https://docs.voyageai.com/docs/rate-limits#use-larger-batches - this.embeddingMaxChunkLength = 4000; // https://docs.voyageai.com/docs/embeddings - assume a token is roughly 4 letters with some padding + this.embeddingMaxChunkLength = this.#getMaxEmbeddingLength(); + } + + // https://docs.voyageai.com/docs/embeddings + #getMaxEmbeddingLength() { + switch (this.model) { + case "voyage-large-2-instruct": + case "voyage-law-2": + case "voyage-code-2": + case "voyage-large-2": + return 16_000; + case "voyage-2": + return 4_000; + default: + return 4_000; + } } async embedTextInput(textInput) { From e2439c6d4c3cfdacd96cd1b7b92d1f89c3cc8459 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 11:34:15 -0500 Subject: [PATCH 34/55] patch endpoint without exception handler --- server/endpoints/workspaces.js | 131 ++++++++++++++++++--------------- 1 file changed, 71 insertions(+), 60 deletions(-) diff --git a/server/endpoints/workspaces.js b/server/endpoints/workspaces.js index 81cbd615..61571659 100644 --- a/server/endpoints/workspaces.js +++ b/server/endpoints/workspaces.js @@ -111,39 +111,45 @@ function workspaceEndpoints(app) { handleFileUpload, ], async function (request, response) { - const Collector = new CollectorApi(); - const { originalname } = request.file; - const processingOnline = await Collector.online(); + try { + const Collector = new CollectorApi(); + const { originalname } = request.file; + const processingOnline = await Collector.online(); - if (!processingOnline) { - response - .status(500) - .json({ - success: false, - error: `Document processing API is not online. Document ${originalname} will not be processed automatically.`, - }) - .end(); - return; + if (!processingOnline) { + response + .status(500) + .json({ + success: false, + error: `Document processing API is not online. Document ${originalname} will not be processed automatically.`, + }) + .end(); + return; + } + + const { success, reason } = + await Collector.processDocument(originalname); + if (!success) { + response.status(500).json({ success: false, error: reason }).end(); + return; + } + + Collector.log( + `Document ${originalname} uploaded processed and successfully. It is now available in documents.` + ); + await Telemetry.sendTelemetry("document_uploaded"); + await EventLogs.logEvent( + "document_uploaded", + { + documentName: originalname, + }, + response.locals?.user?.id + ); + response.status(200).json({ success: true, error: null }); + } catch (e) { + console.log(e.message, e); + response.sendStatus(500).end(); } - - const { success, reason } = await Collector.processDocument(originalname); - if (!success) { - response.status(500).json({ success: false, error: reason }).end(); - return; - } - - Collector.log( - `Document ${originalname} uploaded processed and successfully. It is now available in documents.` - ); - await Telemetry.sendTelemetry("document_uploaded"); - await EventLogs.logEvent( - "document_uploaded", - { - documentName: originalname, - }, - response.locals?.user?.id - ); - response.status(200).json({ success: true, error: null }); } ); @@ -151,37 +157,42 @@ function workspaceEndpoints(app) { "/workspace/:slug/upload-link", [validatedRequest, flexUserRoleValid([ROLES.admin, ROLES.manager])], async (request, response) => { - const Collector = new CollectorApi(); - const { link = "" } = reqBody(request); - const processingOnline = await Collector.online(); + try { + const Collector = new CollectorApi(); + const { link = "" } = reqBody(request); + const processingOnline = await Collector.online(); - if (!processingOnline) { - response - .status(500) - .json({ - success: false, - error: `Document processing API is not online. Link ${link} will not be processed automatically.`, - }) - .end(); - return; + if (!processingOnline) { + response + .status(500) + .json({ + success: false, + error: `Document processing API is not online. Link ${link} will not be processed automatically.`, + }) + .end(); + return; + } + + const { success, reason } = await Collector.processLink(link); + if (!success) { + response.status(500).json({ success: false, error: reason }).end(); + return; + } + + Collector.log( + `Link ${link} uploaded processed and successfully. It is now available in documents.` + ); + await Telemetry.sendTelemetry("link_uploaded"); + await EventLogs.logEvent( + "link_uploaded", + { link }, + response.locals?.user?.id + ); + response.status(200).json({ success: true, error: null }); + } catch (e) { + console.log(e.message, e); + response.sendStatus(500).end(); } - - const { success, reason } = await Collector.processLink(link); - if (!success) { - response.status(500).json({ success: false, error: reason }).end(); - return; - } - - Collector.log( - `Link ${link} uploaded processed and successfully. It is now available in documents.` - ); - await Telemetry.sendTelemetry("link_uploaded"); - await EventLogs.logEvent( - "link_uploaded", - { link }, - response.locals?.user?.id - ); - response.status(200).json({ success: true, error: null }); } ); From e208074ef4c240fe03e4147ab097ec3b52b97619 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 11:50:01 -0500 Subject: [PATCH 35/55] patch path normalization --- collector/utils/files/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collector/utils/files/index.js b/collector/utils/files/index.js index 9b56bb5b..51d0a682 100644 --- a/collector/utils/files/index.js +++ b/collector/utils/files/index.js @@ -122,7 +122,7 @@ function isWithin(outer, inner) { function normalizePath(filepath = "") { const result = path - .normalize(filepath.trim()) + .normalize(filepath.replace(/\s/g, "-").trim()) .replace(/^(\.\.(\/|\\|$))+/, "") .trim(); if (["..", ".", "/"].includes(result)) throw new Error("Invalid path."); From c2d37ccce5f889e9a2a2ae7f30e846d5f1493a67 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Wed, 22 May 2024 12:32:39 -0500 Subject: [PATCH 36/55] Limit return object of `user` when returned in some endpoints (#1492) --- server/endpoints/admin.js | 5 +---- server/endpoints/api/admin/index.js | 5 +---- server/endpoints/system.js | 6 +++--- server/models/user.js | 21 +++++++++++++++++++-- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/server/endpoints/admin.js b/server/endpoints/admin.js index 959e023f..9b836b19 100644 --- a/server/endpoints/admin.js +++ b/server/endpoints/admin.js @@ -33,10 +33,7 @@ function adminEndpoints(app) { [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], async (_request, response) => { try { - const users = (await User.where()).map((user) => { - const { password, ...rest } = user; - return rest; - }); + const users = await User.where(); response.status(200).json({ users }); } catch (e) { console.error(e); diff --git a/server/endpoints/api/admin/index.js b/server/endpoints/api/admin/index.js index 228777ab..95b8e791 100644 --- a/server/endpoints/api/admin/index.js +++ b/server/endpoints/api/admin/index.js @@ -73,10 +73,7 @@ function apiAdminEndpoints(app) { return; } - const users = (await User.where()).map((user) => { - const { password, ...rest } = user; - return rest; - }); + const users = await User.where(); response.status(200).json({ users }); } catch (e) { console.error(e); diff --git a/server/endpoints/system.js b/server/endpoints/system.js index 86aacac4..f4057a40 100644 --- a/server/endpoints/system.js +++ b/server/endpoints/system.js @@ -110,7 +110,7 @@ function systemEndpoints(app) { if (await SystemSettings.isMultiUserMode()) { const { username, password } = reqBody(request); - const existingUser = await User.get({ username: String(username) }); + const existingUser = await User._get({ username: String(username) }); if (!existingUser) { await EventLogs.logEvent( @@ -188,7 +188,7 @@ function systemEndpoints(app) { // Return recovery codes to frontend response.status(200).json({ valid: true, - user: existingUser, + user: User.filterFields(existingUser), token: makeJWT( { id: existingUser.id, username: existingUser.username }, "30d" @@ -201,7 +201,7 @@ function systemEndpoints(app) { response.status(200).json({ valid: true, - user: existingUser, + user: User.filterFields(existingUser), token: makeJWT( { id: existingUser.id, username: existingUser.username }, "30d" diff --git a/server/models/user.js b/server/models/user.js index ecb620ee..a1aeb2c6 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -19,6 +19,12 @@ const User = { return String(value); } }, + + filterFields: function (user = {}) { + const { password, ...rest } = user; + return { ...rest }; + }, + create: async function ({ username, password, role = "default" }) { const passwordCheck = this.checkPasswordComplexity(password); if (!passwordCheck.checkedOK) { @@ -35,7 +41,7 @@ const User = { role, }, }); - return { user, error: null }; + return { user: this.filterFields(user), error: null }; } catch (error) { console.error("FAILED TO CREATE USER.", error.message); return { user: null, error: error.message }; @@ -127,6 +133,17 @@ const User = { }, get: async function (clause = {}) { + try { + const user = await prisma.users.findFirst({ where: clause }); + return user ? this.filterFields({ ...user }) : null; + } catch (error) { + console.error(error.message); + return null; + } + }, + + // Returns user object with all fields + _get: async function (clause = {}) { try { const user = await prisma.users.findFirst({ where: clause }); return user ? { ...user } : null; @@ -162,7 +179,7 @@ const User = { where: clause, ...(limit !== null ? { take: limit } : {}), }); - return users; + return users.map((usr) => this.filterFields(usr)); } catch (error) { console.error(error.message); return []; From 323e37e68448b82839e6fac4065a85aee698db88 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 12:49:12 -0500 Subject: [PATCH 37/55] add fallback footer icon --- frontend/src/components/Footer/index.jsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/Footer/index.jsx b/frontend/src/components/Footer/index.jsx index 6e80f0df..2dfccc3f 100644 --- a/frontend/src/components/Footer/index.jsx +++ b/frontend/src/components/Footer/index.jsx @@ -108,10 +108,13 @@ export default function Footer() { rel="noreferrer" className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border" > - {React.createElement(ICON_COMPONENTS[item.icon], { - weight: "fill", - className: "h-5 w-5", - })} + {React.createElement( + ICON_COMPONENTS?.[item.icon] ?? ICON_COMPONENTS.Info, + { + weight: "fill", + className: "h-5 w-5", + } + )} ))} {!isMobile && } From 3ef009de73c837f9025df8bba62572885c70c72f Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 13:21:26 -0500 Subject: [PATCH 38/55] enfore min and max username lengths to prevent DOS via spam-length names --- server/endpoints/system.js | 2 +- server/models/user.js | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/server/endpoints/system.js b/server/endpoints/system.js index f4057a40..6c941b1c 100644 --- a/server/endpoints/system.js +++ b/server/endpoints/system.js @@ -1024,7 +1024,7 @@ function systemEndpoints(app) { const updates = {}; if (username) { - updates.username = String(username); + updates.username = User.validations.username(String(username)); } if (password) { updates.password = String(password); diff --git a/server/models/user.js b/server/models/user.js index a1aeb2c6..f08548af 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -10,6 +10,20 @@ const User = { "role", "suspended", ], + validations: { + username: (newValue = "") => { + try { + if (String(newValue).length > 100) + throw new Error("Username cannot be longer than 100 characters"); + if (String(newValue).length < 2) + throw new Error("Username must be at least 2 characters"); + return String(newValue); + } catch (e) { + throw new Error(e.message); + } + }, + }, + // validations for the above writable fields. castColumnValue: function (key, value) { switch (key) { @@ -36,9 +50,9 @@ const User = { const hashedPassword = bcrypt.hashSync(password, 10); const user = await prisma.users.create({ data: { - username, + username: this.validations.username(username), password: hashedPassword, - role, + role: String(role), }, }); return { user: this.filterFields(user), error: null }; @@ -75,7 +89,13 @@ const User = { // and force-casts to the proper type; Object.entries(updates).forEach(([key, value]) => { if (this.writable.includes(key)) { - updates[key] = this.castColumnValue(key, value); + if (this.validations.hasOwnProperty(key)) { + updates[key] = this.validations[key]( + this.castColumnValue(key, value) + ); + } else { + updates[key] = this.castColumnValue(key, value); + } return; } delete updates[key]; From 7bace207698e32d5a656d36366d210fe9cd8b6f2 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 22 May 2024 13:42:48 -0500 Subject: [PATCH 39/55] Improve VoyageAI error responses and textChunk handler resolves #1491 --- server/utils/EmbeddingEngines/voyageAi/index.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/utils/EmbeddingEngines/voyageAi/index.js b/server/utils/EmbeddingEngines/voyageAi/index.js index fe2a3964..65126613 100644 --- a/server/utils/EmbeddingEngines/voyageAi/index.js +++ b/server/utils/EmbeddingEngines/voyageAi/index.js @@ -38,7 +38,10 @@ class VoyageAiEmbedder { Array.isArray(textInput) ? textInput : [textInput], { modelName: this.model } ); - return result || []; + + // If given an array return the native Array[Array] format since that should be the outcome. + // But if given a single string, we need to flatten it so that we have a 1D array. + return (Array.isArray(textInput) ? result : result.flat()) || []; } async embedChunks(textChunks = []) { @@ -50,6 +53,12 @@ class VoyageAiEmbedder { return embeddings; } catch (error) { console.error("Voyage AI Failed to embed:", error); + if ( + error.message.includes( + "Cannot read properties of undefined (reading '0')" + ) + ) + throw new Error("Voyage AI failed to embed: Rate limit reached"); throw error; } } From b4b29550b70a27f5c03e5199b3632ad503d4f1ec Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Wed, 22 May 2024 14:19:25 -0700 Subject: [PATCH 40/55] Fix chat width on larger screens (#1493) * fix chat width on larger screens * update loading layout padding --------- Co-authored-by: timothycarambat --- frontend/src/components/ChatBubble/index.jsx | 4 +--- frontend/src/components/DefaultChat/index.jsx | 18 +++++++++--------- .../ChatHistory/Chartable/index.jsx | 4 ++-- .../ChatHistory/HistoricalMessage/index.jsx | 4 +--- .../ChatHistory/PromptReply/index.jsx | 6 +++--- .../ChatContainer/ChatHistory/index.jsx | 2 +- .../WorkspaceChat/LoadingChat/index.jsx | 12 ++++++------ 7 files changed, 23 insertions(+), 27 deletions(-) diff --git a/frontend/src/components/ChatBubble/index.jsx b/frontend/src/components/ChatBubble/index.jsx index 72002ab2..8d311883 100644 --- a/frontend/src/components/ChatBubble/index.jsx +++ b/frontend/src/components/ChatBubble/index.jsx @@ -9,9 +9,7 @@ export default function ChatBubble({ message, type, popMsg }) { return (
-
+
@@ -67,7 +67,7 @@ export default function DefaultChatContainer() { className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`} >
@@ -90,7 +90,7 @@ export default function DefaultChatContainer() { className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`} >
@@ -124,7 +124,7 @@ export default function DefaultChatContainer() { className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`} >
@@ -185,7 +185,7 @@ export default function DefaultChatContainer() { className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`} >
@@ -248,7 +248,7 @@ export default function DefaultChatContainer() { className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`} >
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Chartable/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Chartable/index.jsx index 6a6e6b13..2ce0fa5d 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Chartable/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Chartable/index.jsx @@ -368,7 +368,7 @@ export function Chartable({ props, workspace }) { if (!!props.chatId) { return (
-
+
@@ -389,7 +389,7 @@ export function Chartable({ props, workspace }) { return (
-
+
{renderChart()}
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx index 19817d7d..ae8f10b4 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx @@ -29,9 +29,7 @@ const HistoricalMessage = ({ role === "user" ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR }`} > -
+
{error ? ( diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx index 858c773e..07f8280a 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx @@ -21,7 +21,7 @@ const PromptReply = ({
-
+
@@ -36,7 +36,7 @@ const PromptReply = ({
-
+
-
+
-
+
From acbad2f2cf7c13e03e0a0dc1067041ba4c59930c Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Wed, 22 May 2024 14:27:56 -0700 Subject: [PATCH 41/55] [FEAT] Clear all chats button + export button styles updates (#1495) * implement clear all chats button + export button styles updates * Hide clear button if no chats are visible update clear function --------- Co-authored-by: timothycarambat --- .../src/pages/GeneralSettings/Chats/index.jsx | 78 ++++++++++++++----- server/endpoints/system.js | 4 +- 2 files changed, 60 insertions(+), 22 deletions(-) diff --git a/frontend/src/pages/GeneralSettings/Chats/index.jsx b/frontend/src/pages/GeneralSettings/Chats/index.jsx index d5b3d509..52a3c434 100644 --- a/frontend/src/pages/GeneralSettings/Chats/index.jsx +++ b/frontend/src/pages/GeneralSettings/Chats/index.jsx @@ -7,7 +7,7 @@ import useQuery from "@/hooks/useQuery"; import ChatRow from "./ChatRow"; import showToast from "@/utils/toast"; import System from "@/models/system"; -import { CaretDown, Download } from "@phosphor-icons/react"; +import { CaretDown, Download, Trash } from "@phosphor-icons/react"; import { saveAs } from "file-saver"; const exportOptions = { @@ -49,6 +49,12 @@ export default function WorkspaceChats() { const [showMenu, setShowMenu] = useState(false); const menuRef = useRef(); const openMenuButton = useRef(); + const query = useQuery(); + const [loading, setLoading] = useState(true); + const [chats, setChats] = useState([]); + const [offset, setOffset] = useState(Number(query.get("offset") || 0)); + const [canNext, setCanNext] = useState(false); + const handleDumpChats = async (exportType) => { const chats = await System.exportChats(exportType); if (!!chats) { @@ -62,6 +68,18 @@ export default function WorkspaceChats() { } }; + const handleClearAllChats = async () => { + if ( + !window.confirm( + `Are you sure you want to clear all chats?\n\nThis action is irreversible.` + ) + ) + return false; + await System.deleteChat(-1); + setChats([]); + showToast("Cleared all chats.", "success"); + }; + const toggleMenu = () => { setShowMenu(!showMenu); }; @@ -83,6 +101,16 @@ export default function WorkspaceChats() { }; }, []); + useEffect(() => { + async function fetchChats() { + const { chats: _chats, hasPages = false } = await System.chats(offset); + setChats(_chats); + setCanNext(hasPages); + setLoading(false); + } + fetchChats(); + }, [offset]); + return (
@@ -100,7 +128,7 @@ export default function WorkspaceChats() {
+ {chats.length > 0 && ( + + )}

These are all the recorded chats and messages that have been sent by users ordered by their creation date.

- +
); } -function ChatsContainer() { - const query = useQuery(); - const [loading, setLoading] = useState(true); - const [chats, setChats] = useState([]); - const [offset, setOffset] = useState(Number(query.get("offset") || 0)); - const [canNext, setCanNext] = useState(false); - +function ChatsContainer({ + loading, + chats, + setChats, + offset, + setOffset, + canNext, +}) { const handlePrevious = () => { setOffset(Math.max(offset - 1, 0)); }; @@ -155,20 +200,11 @@ function ChatsContainer() { setOffset(offset + 1); }; - const handleDeleteChat = (chatId) => { + const handleDeleteChat = async (chatId) => { + await System.deleteChat(chatId); setChats((prevChats) => prevChats.filter((chat) => chat.id !== chatId)); }; - useEffect(() => { - async function fetchChats() { - const { chats: _chats, hasPages = false } = await System.chats(offset); - setChats(_chats); - setCanNext(hasPages); - setLoading(false); - } - fetchChats(); - }, [offset]); - if (loading) { return ( { try { const { id } = request.params; - await WorkspaceChats.delete({ id: Number(id) }); + Number(id) === -1 + ? await WorkspaceChats.delete({}, true) + : await WorkspaceChats.delete({ id: Number(id) }); response.json({ success: true, error: null }); } catch (e) { console.error(e); From 96c658b9ab91bc18534c39930651da440fc721ea Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 23 May 2024 08:27:18 -0700 Subject: [PATCH 42/55] K8 Manifest resolves #1463 --- cloud-deployments/k8/manifest.yaml | 214 +++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 cloud-deployments/k8/manifest.yaml diff --git a/cloud-deployments/k8/manifest.yaml b/cloud-deployments/k8/manifest.yaml new file mode 100644 index 00000000..9aeef6a2 --- /dev/null +++ b/cloud-deployments/k8/manifest.yaml @@ -0,0 +1,214 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: anything-llm-volume + annotations: + pv.beta.kubernetes.io/uid: "1000" + pv.beta.kubernetes.io/gid: "1000" +spec: + storageClassName: gp2 + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + awsElasticBlockStore: + # This is the volume UUID from AWS EC2 EBS Volumes list. + volumeID: "{{ anythingllm_awsElasticBlockStore_volumeID }}" + fsType: ext4 + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: topology.kubernetes.io/zone + operator: In + values: + - us-east-1c +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: anything-llm-volume-claim + namespace: "{{ namespace }}" +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: anything-llm + namespace: "{{ namespace }}" + labels: + anything-llm: "true" +spec: + selector: + matchLabels: + k8s-app: anything-llm + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 0% + maxUnavailable: 100% + template: + metadata: + labels: + anything-llm: "true" + k8s-app: anything-llm + app.kubernetes.io/name: anything-llm + app.kubernetes.io/part-of: anything-llm + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: /metrics + prometheus.io/port: "9090" + spec: + serviceAccountName: "default" + terminationGracePeriodSeconds: 10 + securityContext: + fsGroup: 1000 + runAsNonRoot: true + runAsGroup: 1000 + runAsUser: 1000 + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: topology.kubernetes.io/zone + operator: In + values: + - us-east-1c + containers: + - name: anything-llm + resources: + limits: + memory: "1Gi" + cpu: "500m" + requests: + memory: "512Mi" + cpu: "250m" + imagePullPolicy: IfNotPresent + image: "mintplexlabs/anythingllm:render" + securityContext: + allowPrivilegeEscalation: true + capabilities: + add: + - SYS_ADMIN + runAsNonRoot: true + runAsGroup: 1000 + runAsUser: 1000 + command: + # Specify a command to override the Dockerfile's ENTRYPOINT. + - /bin/bash + - -c + - | + set -x -e + sleep 3 + echo "AWS_REGION: $AWS_REGION" + echo "SERVER_PORT: $SERVER_PORT" + echo "NODE_ENV: $NODE_ENV" + echo "STORAGE_DIR: $STORAGE_DIR" + { + cd /app/server/ && + npx prisma generate --schema=./prisma/schema.prisma && + npx prisma migrate deploy --schema=./prisma/schema.prisma && + node /app/server/index.js + echo "Server process exited with status $?" + } & + { + node /app/collector/index.js + echo "Collector process exited with status $?" + } & + wait -n + exit $? + readinessProbe: + httpGet: + path: /v1/api/health + port: 8888 + initialDelaySeconds: 15 + periodSeconds: 5 + successThreshold: 2 + livenessProbe: + httpGet: + path: /v1/api/health + port: 8888 + initialDelaySeconds: 15 + periodSeconds: 5 + failureThreshold: 3 + env: + - name: AWS_REGION + value: "{{ aws_region }}" + - name: AWS_ACCESS_KEY_ID + value: "{{ aws_access_id }}" + - name: AWS_SECRET_ACCESS_KEY + value: "{{ aws_access_secret }}" + - name: SERVER_PORT + value: "3001" + - name: JWT_SECRET + value: "my-random-string-for-seeding" # Please generate random string at least 12 chars long. + - name: STORAGE_DIR + value: "/storage" + - name: NODE_ENV + value: "production" + - name: UID + value: "1000" + - name: GID + value: "1000" + volumeMounts: + - name: anything-llm-server-storage-volume-mount + mountPath: /storage + volumes: + - name: anything-llm-server-storage-volume-mount + persistentVolumeClaim: + claimName: anything-llm-volume-claim +--- +# This serves the UI and the backend. +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: anything-llm-ingress + namespace: "{{ namespace }}" + annotations: + external-dns.alpha.kubernetes.io/hostname: "{{ namespace }}-chat.{{ base_domain }}" + kubernetes.io/ingress.class: "internal-ingress" + nginx.ingress.kubernetes.io/rewrite-target: / + ingress.kubernetes.io/ssl-redirect: "false" +spec: + rules: + - host: "{{ namespace }}-chat.{{ base_domain }}" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: anything-llm-svc + port: + number: 3001 + tls: # < placing a host in the TLS config will indicate a cert should be created + - hosts: + - "{{ namespace }}-chat.{{ base_domain }}" + secretName: letsencrypt-prod +--- +apiVersion: v1 +kind: Service +metadata: + labels: + kubernetes.io/name: anything-llm + name: anything-llm-svc + namespace: "{{ namespace }}" +spec: + ports: + # "port" is external port, and "targetPort" is internal. + - port: 3301 + targetPort: 3001 + name: traffic + - port: 9090 + targetPort: 9090 + name: metrics + selector: + k8s-app: anything-llm \ No newline at end of file From 961630f7d5051766fe76296cc9d3bdc24afbb93f Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 23 May 2024 08:29:25 -0700 Subject: [PATCH 43/55] fix example call param --- server/utils/agents/aibitat/plugins/web-scraping.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/utils/agents/aibitat/plugins/web-scraping.js b/server/utils/agents/aibitat/plugins/web-scraping.js index 2888445b..f5c8d41f 100644 --- a/server/utils/agents/aibitat/plugins/web-scraping.js +++ b/server/utils/agents/aibitat/plugins/web-scraping.js @@ -20,11 +20,11 @@ const webScraping = { examples: [ { prompt: "What is useanything.com about?", - call: JSON.stringify({ uri: "https://useanything.com" }), + call: JSON.stringify({ url: "https://useanything.com" }), }, { prompt: "Scrape https://example.com", - call: JSON.stringify({ uri: "https://example.com" }), + call: JSON.stringify({ url: "https://example.com" }), }, ], parameters: { From cc7e7fb3ac493765d3887b12792120391e77f45f Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 23 May 2024 09:42:30 -0700 Subject: [PATCH 44/55] [FEAT] Add support for gemini-1.5-flash-latest model (#1502) * add support for gemini-1.5-flash-latest * update comment in gemini LLM provider --- .../LLMSelection/GeminiLLMOptions/index.jsx | 6 +++++- frontend/src/hooks/useGetProvidersModels.js | 2 +- server/utils/AiProviders/gemini/index.js | 14 +++++++++++--- server/utils/helpers/updateENV.js | 6 +++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx index d2846704..87e05882 100644 --- a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx +++ b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx @@ -30,7 +30,11 @@ export default function GeminiLLMOptions({ settings }) { required={true} className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5" > - {["gemini-pro", "gemini-1.5-pro-latest"].map((model) => { + {[ + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-flash-latest", + ].map((model) => { return (
diff --git a/frontend/src/components/Modals/Password/index.jsx b/frontend/src/components/Modals/Password/index.jsx index 9305d032..8f86b611 100644 --- a/frontend/src/components/Modals/Password/index.jsx +++ b/frontend/src/components/Modals/Password/index.jsx @@ -9,10 +9,9 @@ import { } from "../../../utils/constants"; import useLogo from "../../../hooks/useLogo"; import illustration from "@/media/illustrations/login-illustration.svg"; -import loginLogo from "@/media/illustrations/login-logo.svg"; export default function PasswordModal({ mode = "single" }) { - const { logo: _initLogo } = useLogo(); + const { loginLogo } = useLogo(); return (
logo {mode === "single" ? : }
diff --git a/frontend/src/hooks/useLogo.js b/frontend/src/hooks/useLogo.js index 4834b7a8..9ae741f7 100644 --- a/frontend/src/hooks/useLogo.js +++ b/frontend/src/hooks/useLogo.js @@ -2,6 +2,6 @@ import { useContext } from "react"; import { LogoContext } from "../LogoContext"; export default function useLogo() { - const { logo, setLogo } = useContext(LogoContext); - return { logo, setLogo }; + const { logo, setLogo, loginLogo, isCustomLogo } = useContext(LogoContext); + return { logo, setLogo, loginLogo, isCustomLogo }; } diff --git a/frontend/src/models/system.js b/frontend/src/models/system.js index f8f12344..d2252be1 100644 --- a/frontend/src/models/system.js +++ b/frontend/src/models/system.js @@ -6,6 +6,7 @@ const System = { cacheKeys: { footerIcons: "anythingllm_footer_links", supportEmail: "anythingllm_support_email", + customAppName: "anythingllm_custom_app_name", }, ping: async function () { return await fetch(`${API_BASE}/ping`) @@ -305,19 +306,58 @@ const System = { ); return { email: supportEmail, error: null }; }, + + fetchCustomAppName: async function () { + const cache = window.localStorage.getItem(this.cacheKeys.customAppName); + const { appName, lastFetched } = cache + ? safeJsonParse(cache, { appName: "", lastFetched: 0 }) + : { appName: "", lastFetched: 0 }; + + if (!!appName && Date.now() - lastFetched < 3_600_000) + return { appName: appName, error: null }; + + const { customAppName, error } = await fetch( + `${API_BASE}/system/custom-app-name`, + { + method: "GET", + cache: "no-cache", + headers: baseHeaders(), + } + ) + .then((res) => res.json()) + .catch((e) => { + console.log(e); + return { customAppName: "", error: e.message }; + }); + + if (!customAppName || !!error) { + window.localStorage.removeItem(this.cacheKeys.customAppName); + return { appName: "", error: null }; + } + + window.localStorage.setItem( + this.cacheKeys.customAppName, + JSON.stringify({ appName: customAppName, lastFetched: Date.now() }) + ); + return { appName: customAppName, error: null }; + }, fetchLogo: async function () { return await fetch(`${API_BASE}/system/logo`, { method: "GET", cache: "no-cache", }) - .then((res) => { - if (res.ok && res.status !== 204) return res.blob(); + .then(async (res) => { + if (res.ok && res.status !== 204) { + const isCustomLogo = res.headers.get("X-Is-Custom-Logo") === "true"; + const blob = await res.blob(); + const logoURL = URL.createObjectURL(blob); + return { isCustomLogo, logoURL }; + } throw new Error("Failed to fetch logo!"); }) - .then((blob) => URL.createObjectURL(blob)) .catch((e) => { console.log(e); - return null; + return { isCustomLogo: false, logoURL: null }; }); }, fetchPfp: async function (id) { diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx new file mode 100644 index 00000000..48efa508 --- /dev/null +++ b/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx @@ -0,0 +1,100 @@ +import Admin from "@/models/admin"; +import System from "@/models/system"; +import showToast from "@/utils/toast"; +import { useEffect, useState } from "react"; + +export default function CustomAppName() { + const [loading, setLoading] = useState(true); + const [hasChanges, setHasChanges] = useState(false); + const [customAppName, setCustomAppName] = useState(""); + const [originalAppName, setOriginalAppName] = useState(""); + const [canCustomize, setCanCustomize] = useState(false); + + useEffect(() => { + const fetchInitialParams = async () => { + const settings = await System.keys(); + if (!settings?.MultiUserMode && !settings?.RequiresAuth) { + setCanCustomize(false); + return false; + } + + const { appName } = await System.fetchCustomAppName(); + setCustomAppName(appName || ""); + setOriginalAppName(appName || ""); + setCanCustomize(true); + setLoading(false); + }; + fetchInitialParams(); + }, []); + + const updateCustomAppName = async (e, newValue = null) => { + e.preventDefault(); + let custom_app_name = newValue; + if (newValue === null) { + const form = new FormData(e.target); + custom_app_name = form.get("customAppName"); + } + const { success, error } = await Admin.updateSystemPreferences({ + custom_app_name, + }); + if (!success) { + showToast(`Failed to update custom app name: ${error}`, "error"); + return; + } else { + showToast("Successfully updated custom app name.", "success"); + window.localStorage.removeItem(System.cacheKeys.customAppName); + setCustomAppName(custom_app_name); + setOriginalAppName(custom_app_name); + setHasChanges(false); + } + }; + + const handleChange = (e) => { + setCustomAppName(e.target.value); + setHasChanges(true); + }; + + if (!canCustomize || loading) return null; + + return ( + +
+

+ Custom App Name +

+

+ Set a custom app name that is displayed on the login page. +

+
+
+ + {originalAppName !== "" && ( + + )} +
+ {hasChanges && ( + + )} + + ); +} diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx index 8b2b5cab..5de37e3f 100644 --- a/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx +++ b/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx @@ -2,7 +2,6 @@ import useLogo from "@/hooks/useLogo"; import System from "@/models/system"; import showToast from "@/utils/toast"; import { useEffect, useRef, useState } from "react"; -import AnythingLLM from "@/media/logo/anything-llm.png"; import { Plus } from "@phosphor-icons/react"; export default function CustomLogo() { @@ -36,7 +35,7 @@ export default function CustomLogo() { return; } - const logoURL = await System.fetchLogo(); + const { logoURL } = await System.fetchLogo(); _setLogo(logoURL); showToast("Image uploaded successfully.", "success"); @@ -51,13 +50,13 @@ export default function CustomLogo() { if (!success) { console.error("Failed to remove logo:", error); showToast(`Failed to remove logo: ${error}`, "error"); - const logoURL = await System.fetchLogo(); + const { logoURL } = await System.fetchLogo(); setLogo(logoURL); setIsDefaultLogo(false); return; } - const logoURL = await System.fetchLogo(); + const { logoURL } = await System.fetchLogo(); _setLogo(logoURL); showToast("Image successfully removed.", "success"); diff --git a/frontend/src/pages/GeneralSettings/Appearance/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/index.jsx index bb2c7989..d7352998 100644 --- a/frontend/src/pages/GeneralSettings/Appearance/index.jsx +++ b/frontend/src/pages/GeneralSettings/Appearance/index.jsx @@ -4,6 +4,7 @@ import FooterCustomization from "./FooterCustomization"; import SupportEmail from "./SupportEmail"; import CustomLogo from "./CustomLogo"; import CustomMessages from "./CustomMessages"; +import CustomAppName from "./CustomAppName"; export default function Appearance() { return ( @@ -25,6 +26,7 @@ export default function Appearance() {

+ diff --git a/server/endpoints/admin.js b/server/endpoints/admin.js index 9b836b19..59d64544 100644 --- a/server/endpoints/admin.js +++ b/server/endpoints/admin.js @@ -355,6 +355,9 @@ function adminEndpoints(app) { ?.value, [] ) || [], + custom_app_name: + (await SystemSettings.get({ label: "custom_app_name" }))?.value || + null, }; response.status(200).json({ settings }); } catch (e) { diff --git a/server/endpoints/system.js b/server/endpoints/system.js index 472e3aa7..6ab30c5c 100644 --- a/server/endpoints/system.js +++ b/server/endpoints/system.js @@ -526,17 +526,24 @@ function systemEndpoints(app) { const defaultFilename = getDefaultFilename(); const logoPath = await determineLogoFilepath(defaultFilename); const { found, buffer, size, mime } = fetchLogo(logoPath); + if (!found) { response.sendStatus(204).end(); return; } + const currentLogoFilename = await SystemSettings.currentLogoFilename(); response.writeHead(200, { + "Access-Control-Expose-Headers": + "Content-Disposition,X-Is-Custom-Logo,Content-Type,Content-Length", "Content-Type": mime || "image/png", "Content-Disposition": `attachment; filename=${path.basename( logoPath )}`, "Content-Length": size, + "X-Is-Custom-Logo": + currentLogoFilename !== null && + currentLogoFilename !== defaultFilename, }); response.end(Buffer.from(buffer, "base64")); return; @@ -573,6 +580,22 @@ function systemEndpoints(app) { } }); + // No middleware protection in order to get this on the login page + app.get("/system/custom-app-name", async (_, response) => { + try { + const customAppName = + ( + await SystemSettings.get({ + label: "custom_app_name", + }) + )?.value ?? null; + response.status(200).json({ customAppName: customAppName }); + } catch (error) { + console.error("Error fetching custom app name:", error); + response.status(500).json({ message: "Internal server error" }); + } + }); + app.get( "/system/pfp/:id", [validatedRequest, flexUserRoleValid([ROLES.all])], diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 70913fd9..52393a02 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -27,6 +27,7 @@ const SystemSettings = { "agent_search_provider", "default_agent_skills", "agent_sql_connections", + "custom_app_name", ], validations: { footer_data: (updates) => { From 649d0d79eba2cf3778e022555218219ab44a78a4 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 23 May 2024 16:43:01 -0700 Subject: [PATCH 52/55] [FEAT] Thread bulk edit UX improvements (#1520) * update thread bulk edit ux to hold cmd/ctrl to appear + rename default new thread to avoid confusion * revert new thread defualt name change * unset undelete threads * comment --------- Co-authored-by: timothycarambat --- .../ActiveWorkspaces/ThreadContainer/index.jsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx index f3c0ac2a..d1c0ba8c 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx @@ -22,11 +22,17 @@ export default function ThreadContainer({ workspace }) { fetchThreads(); }, [workspace.slug]); - // Enable toggling of meta-key (ctrl on win and cmd/fn on others) + // Enable toggling of bulk-deletion by holding meta-key (ctrl on win and cmd/fn on others) useEffect(() => { const handleKeyDown = (event) => { if (["Control", "Meta"].includes(event.key)) { - setCtrlPressed((prev) => !prev); + setCtrlPressed(true); + } + }; + + const handleKeyUp = (event) => { + if (["Control", "Meta"].includes(event.key)) { + setCtrlPressed(false); // when toggling, unset bulk progress so // previously marked threads that were never deleted // come back to life. @@ -37,9 +43,13 @@ export default function ThreadContainer({ workspace }) { ); } }; + window.addEventListener("keydown", handleKeyDown); + window.addEventListener("keyup", handleKeyUp); + return () => { window.removeEventListener("keydown", handleKeyDown); + window.removeEventListener("keyup", handleKeyUp); }; }, []); @@ -56,7 +66,6 @@ export default function ThreadContainer({ workspace }) { const slugs = threads.filter((t) => t.deleted === true).map((t) => t.slug); await Workspace.threads.deleteBulk(workspace.slug, slugs); setThreads((prev) => prev.filter((t) => !t.deleted)); - setCtrlPressed(false); }; function removeThread(threadId) { @@ -89,6 +98,7 @@ export default function ThreadContainer({ workspace }) { ) ? threads.findIndex((thread) => thread?.slug === threadSlug) + 1 : 0; + return (
Date: Thu, 23 May 2024 16:49:30 -0700 Subject: [PATCH 53/55] [FEAT] Bing Search API web search provider (#1519) implement bing search engine for agents --- docker/.env.example | 5 +- .../SearchProviderOptions/index.jsx | 65 ++++++++++++++++++ .../WebSearchSelection/icons/bing.png | Bin 0 -> 75208 bytes .../AgentConfig/WebSearchSelection/index.jsx | 10 +++ server/.env.example | 5 +- server/models/systemSettings.js | 7 +- .../agents/aibitat/plugins/web-browsing.js | 46 +++++++++++++ server/utils/helpers/updateENV.js | 5 ++ 8 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/icons/bing.png diff --git a/docker/.env.example b/docker/.env.example index 23789af4..6368a190 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -232,4 +232,7 @@ GID='1000' # AGENT_GSE_CTX= #------ Serper.dev ----------- https://serper.dev/ -# AGENT_SERPER_DEV_KEY= \ No newline at end of file +# AGENT_SERPER_DEV_KEY= + +#------ Bing Search ----------- https://portal.azure.com/ +# AGENT_BING_SEARCH_API_KEY= \ No newline at end of file diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/SearchProviderOptions/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/SearchProviderOptions/index.jsx index 15d18178..3d579ed4 100644 --- a/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/SearchProviderOptions/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/SearchProviderOptions/index.jsx @@ -6,6 +6,7 @@ export function GoogleSearchOptions({ settings }) { from Google here. @@ -57,6 +58,7 @@ export function SerperDotDevOptions({ settings }) { from Serper.dev. @@ -82,3 +84,66 @@ export function SerperDotDevOptions({ settings }) { ); } + +export function BingSearchOptions({ settings }) { + return ( + <> +

+ You can get a Bing Web Search API subscription key{" "} + + from the Azure portal. + +

+
+
+ + +
+
+

+ To set up a Bing Web Search API subscription: +

+
    +
  1. + Go to the Azure portal:{" "} + + https://portal.azure.com/ + +
  2. +
  3. Create a new Azure account or sign in with an existing one.
  4. +
  5. + Navigate to the "Create a resource" section and search for "Bing + Search v7". +
  6. +
  7. + Select the "Bing Search v7" resource and create a new subscription. +
  8. +
  9. + Choose the pricing tier that suits your needs (free tier available). +
  10. +
  11. Obtain the API key for your Bing Web Search subscription.
  12. +
+ + ); +} diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/icons/bing.png b/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/icons/bing.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe1c8365c61e09ea36409220c2a7f739bdb78b0 GIT binary patch literal 75208 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 literal 0 HcmV?d00001 diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/index.jsx index 0581983f..8e8f054e 100644 --- a/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/WebSearchSelection/index.jsx @@ -2,11 +2,13 @@ import React, { useEffect, useRef, useState } from "react"; import AnythingLLMIcon from "@/media/logo/anything-llm-icon.png"; import GoogleSearchIcon from "./icons/google.png"; import SerperDotDevIcon from "./icons/serper.png"; +import BingSearchIcon from "./icons/bing.png"; import { CaretUpDown, MagnifyingGlass, X } from "@phosphor-icons/react"; import SearchProviderItem from "./SearchProviderItem"; import { SerperDotDevOptions, GoogleSearchOptions, + BingSearchOptions, } from "./SearchProviderOptions"; const SEARCH_PROVIDERS = [ @@ -34,6 +36,14 @@ const SEARCH_PROVIDERS = [ description: "Serper.dev web-search. Free account with a 2,500 calls, but then paid.", }, + { + name: "Bing Search", + value: "bing-search", + logo: BingSearchIcon, + options: (settings) => , + description: + "Web search powered by the Bing Search API. Free for 1000 queries per month.", + }, ]; export default function AgentWebSearchSelection({ diff --git a/server/.env.example b/server/.env.example index e38250be..f51d6177 100644 --- a/server/.env.example +++ b/server/.env.example @@ -228,4 +228,7 @@ TTS_PROVIDER="native" # AGENT_GSE_CTX= #------ Serper.dev ----------- https://serper.dev/ -# AGENT_SERPER_DEV_KEY= \ No newline at end of file +# AGENT_SERPER_DEV_KEY= + +#------ Bing Search ----------- https://portal.azure.com/ +# AGENT_BING_SEARCH_API_KEY= diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 52393a02..ac052319 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -70,7 +70,11 @@ const SystemSettings = { agent_search_provider: (update) => { try { if (update === "none") return null; - if (!["google-search-engine", "serper-dot-dev"].includes(update)) + if ( + !["google-search-engine", "serper-dot-dev", "bing-search"].includes( + update + ) + ) throw new Error("Invalid SERP provider."); return String(update); } catch (e) { @@ -171,6 +175,7 @@ const SystemSettings = { AgentGoogleSearchEngineId: process.env.AGENT_GSE_CTX || null, AgentGoogleSearchEngineKey: process.env.AGENT_GSE_KEY || null, AgentSerperApiKey: process.env.AGENT_SERPER_DEV_KEY || null, + AgentBingSearchApiKey: process.env.AGENT_BING_SEARCH_API_KEY || null, }; }, diff --git a/server/utils/agents/aibitat/plugins/web-browsing.js b/server/utils/agents/aibitat/plugins/web-browsing.js index 198b3ec5..b30688f1 100644 --- a/server/utils/agents/aibitat/plugins/web-browsing.js +++ b/server/utils/agents/aibitat/plugins/web-browsing.js @@ -65,6 +65,9 @@ const webBrowsing = { case "serper-dot-dev": engine = "_serperDotDev"; break; + case "bing-search": + engine = "_bingWebSearch"; + break; default: engine = "_googleSearchEngine"; } @@ -172,6 +175,49 @@ const webBrowsing = { return `No information was found online for the search query.`; return JSON.stringify(data); }, + _bingWebSearch: async function (query) { + if (!process.env.AGENT_BING_SEARCH_API_KEY) { + this.super.introspect( + `${this.caller}: I can't use Bing Web Search because the user has not defined the required API key.\nVisit: https://portal.azure.com/ to create the API key.` + ); + return `Search is disabled and no content was found. This functionality is disabled because the user has not set it up yet.`; + } + + const searchURL = new URL( + "https://api.bing.microsoft.com/v7.0/search" + ); + searchURL.searchParams.append("q", query); + + this.super.introspect( + `${this.caller}: Using Bing Web Search to search for "${ + query.length > 100 ? `${query.slice(0, 100)}...` : query + }"` + ); + + const searchResponse = await fetch(searchURL, { + headers: { + "Ocp-Apim-Subscription-Key": + process.env.AGENT_BING_SEARCH_API_KEY, + }, + }) + .then((res) => res.json()) + .then((data) => { + const searchResults = data.webPages?.value || []; + return searchResults.map((result) => ({ + title: result.name, + link: result.url, + snippet: result.snippet, + })); + }) + .catch((e) => { + console.log(e); + return []; + }); + + if (searchResponse.length === 0) + return `No information was found online for the search query.`; + return JSON.stringify(searchResponse); + }, }); }, }; diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index c95ccd57..d6900ae5 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -399,6 +399,10 @@ const KEY_MAPPING = { envKey: "AGENT_SERPER_DEV_KEY", checks: [], }, + AgentBingSearchApiKey: { + envKey: "AGENT_BING_SEARCH_API_KEY", + checks: [], + }, // TTS/STT Integration ENVS TextToSpeechProvider: { @@ -762,6 +766,7 @@ async function dumpENV() { "AGENT_GSE_CTX", "AGENT_GSE_KEY", "AGENT_SERPER_DEV_KEY", + "AGENT_BING_SEARCH_API_KEY", ]; // Simple sanitization of each value to prevent ENV injection via newline or quote escaping. From 3f78ef413be9e3cf51770a05c3d8ea4eeb644ab6 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Tue, 28 May 2024 17:17:35 -0700 Subject: [PATCH 54/55] [FEAT] Support for gemini-1.0-pro model and fixes to prompt window limit (#1557) support for gemini-1.0-pro model and fixes to prompt window limit --- .../src/components/LLMSelection/GeminiLLMOptions/index.jsx | 1 + frontend/src/hooks/useGetProvidersModels.js | 2 +- server/utils/AiProviders/gemini/index.js | 5 +++++ server/utils/helpers/updateENV.js | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx index 87e05882..cc25ae95 100644 --- a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx +++ b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx @@ -32,6 +32,7 @@ export default function GeminiLLMOptions({ settings }) { > {[ "gemini-pro", + "gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest", ].map((model) => { diff --git a/frontend/src/hooks/useGetProvidersModels.js b/frontend/src/hooks/useGetProvidersModels.js index 6687f0a7..d61d4c36 100644 --- a/frontend/src/hooks/useGetProvidersModels.js +++ b/frontend/src/hooks/useGetProvidersModels.js @@ -10,7 +10,7 @@ export const DISABLED_PROVIDERS = [ ]; const PROVIDER_DEFAULT_MODELS = { openai: [], - gemini: ["gemini-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest"], + gemini: ["gemini-pro","gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest"], anthropic: [ "claude-instant-1.2", "claude-2.0", diff --git a/server/utils/AiProviders/gemini/index.js b/server/utils/AiProviders/gemini/index.js index 30c9ffa3..ef184580 100644 --- a/server/utils/AiProviders/gemini/index.js +++ b/server/utils/AiProviders/gemini/index.js @@ -91,6 +91,10 @@ class GeminiLLM { switch (this.model) { case "gemini-pro": return 30_720; + case "gemini-1.0-pro": + return 30_720; + case "gemini-1.5-flash-latest": + return 1_048_576; case "gemini-1.5-pro-latest": return 1_048_576; default: @@ -101,6 +105,7 @@ class GeminiLLM { isValidChatCompletionModel(modelName = "") { const validModels = [ "gemini-pro", + "gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest", ]; diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index d6900ae5..d5cdc68f 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -532,6 +532,7 @@ function supportedTranscriptionProvider(input = "") { function validGeminiModel(input = "") { const validModels = [ "gemini-pro", + "gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest", ]; From 4324a8bb4f5b50221b58bc646c8dc0d342b0dc8a Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Wed, 29 May 2024 02:01:29 -0700 Subject: [PATCH 55/55] [FEAT] Github repo loader bug fix (#1558) * fix project names with special characters for github repo data connector * linting --- collector/utils/extensions/GithubRepo/RepoLoader/index.js | 6 +++++- frontend/src/hooks/useGetProvidersModels.js | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/collector/utils/extensions/GithubRepo/RepoLoader/index.js b/collector/utils/extensions/GithubRepo/RepoLoader/index.js index dbe26fa2..c842f621 100644 --- a/collector/utils/extensions/GithubRepo/RepoLoader/index.js +++ b/collector/utils/extensions/GithubRepo/RepoLoader/index.js @@ -14,7 +14,11 @@ class RepoLoader { #validGithubUrl() { const UrlPattern = require("url-pattern"); const pattern = new UrlPattern( - "https\\://github.com/(:author)/(:project(*))" + "https\\://github.com/(:author)/(:project(*))", + { + // fixes project names with special characters (.github) + segmentValueCharset: "a-zA-Z0-9-._~%/+", + } ); const match = pattern.match(this.repo); if (!match) return false; diff --git a/frontend/src/hooks/useGetProvidersModels.js b/frontend/src/hooks/useGetProvidersModels.js index d61d4c36..e0a27699 100644 --- a/frontend/src/hooks/useGetProvidersModels.js +++ b/frontend/src/hooks/useGetProvidersModels.js @@ -10,7 +10,12 @@ export const DISABLED_PROVIDERS = [ ]; const PROVIDER_DEFAULT_MODELS = { openai: [], - gemini: ["gemini-pro","gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest"], + gemini: [ + "gemini-pro", + "gemini-1.0-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-flash-latest", + ], anthropic: [ "claude-instant-1.2", "claude-2.0",